Progressive Elaboration

Progressive elaboration is one technique that can be applied to virtually any aspect of software development. In reality it is a simple analysis technique which revolves around the maxim: start with what you know.

In agile software development, we apply this to several activities: requirements, design, and planning.

Progressive elaboration starts with the notion, that you cannot know enough about a software system to get to “done”, before you start. Progressive elaboration is sort of a continuous bootstrap process for knowledge.

While agile proponents also talk about how they embrace change, that is not what progressive elaboration is for. Progressive elaboration is a means to get started before you know enough to get to done. It is a means to prevent knowledge gaps from impeding progress. It is a means of driving out information through completing work, rather than by theoretical analysis.Continue Reading

Two Way Trust

A good friend called me from Austin last year to talk about a work situation. He was contemplating separating from his employer because of what he described as his boss not letting him do the job he was hired to do. As we discussed the situation, it sounded to me like his boss (the founder of a startup) has reached a point where he is afraid of losing control of the enterprise. The longer we talked, it sounded like the boss did not trust his direct reports. It also sounded like he, himself wasn’t trustworthy – he had put his directs in a trick bag, and when they called him on it, his response was not appropriate.Continue Reading