Progressive Requirements Elaboration

In my former post about progressive elaboration, I promised some “examples” from different domains of software development. This is the first of these. As I said before, progressive elaboration is about acknowledging that we can’t know everything we need to get to done before we start.

One of the difficulties of requirements elicitation is to maintain a consistent level of detail, both in documentation and in our conversation with practitioners, subject matter experts, and individual contributors. Another typical difficulty is understanding whether requirements are sufficient to begin some subsequent activity like design or coding.

While some methodologies have made recommendations, most merely call out the need. This leaves it up to the requirements analyst to build their own practice. In fact, most analysts do not subscribe to any specific methodology that they practice. I have often used these interview questions for analysts that I expect to elicit and organize requirements for software applications.Continue Reading


In his excellent management skills blog, Tom Foster posts a brief series on Procrastination. Brad, a middle manager, procrastinates and brings the organization to a state where they are months behind on a major project. Tom spends a lot of time talking about time-span, as a predictor of management qualification. I appreciate this, as it has made me more aware of my limitations.

I can’t help but ask what is someone to do, to help an employee (or manager, supervisor, or executive) to improve their time span. There are many symptoms of a person who is expected to work beyond his time span. In my experience, most people, get used to working within a certain time span. The longer they are in a role, without specific challenges to increase that time span, the harder it will become for them to improve this capability.

Here are two tools that can be coached into a person, to help them become more effective at longer time span tasks:

1) Progressive Plan Elaboration – Start with a plan that is at a very high level, where the plan deliverables are each about the size of the person’s normal time span without worrying about smaller details. Order these deliverables in a reasonable sequence without worrying about smaller details. Agree on a schedule for starting work on each of these deliverables, and make sure that the plan includes a task to plan the smaller details of each deliverable, before the work on that deliverable is scheduled to begin. This technique works because most of us get hung up around the many details, rather than the basic work structure. We worry about things that we won’t know until we have done some of the work, and so we can’t always plan in detail in advance. For some people who think from the details up, this can be paralyzing, and the top down approach, ignoring the details until we are close up can really help.

2) Iterative Measurement – There are some times when the work cannot be broken up into discrete deliverables, other times, when there are many deliverables being worked on in parallel. Project Plans with these features can be difficult to organize, so we can break things into discrete time boxes or iterations. This specific work (list of tasks) will get done in this time frame (use a iteration time span that is within your graps). Make sure that you are planning each time box in advance, enough to make work assignments and manage schedules.

How could Brad, in Tom Foster’s post, use these two approaches to reduce the impact of procrastination? It sounds like Brad has a team of supervisors who can get the work done. He could probably work with them to set up a deliverable based plan, and have them work the schedule, and report the details of the plan for each deliverable before the work on that deliverable is stared. Alternatively, he could break the work into time boxes that he can manage (2 months) and set goals that are 2 months out and work toward those, re-establishing the goals, every months for a 2 month period. This approach could be called “rolling-wave” planning because there are overlaps between the iterations or time-boxes. If every month, I plan two months out, then I can respond to problems in the now, and adjust the plan, before a crisis becomes intense. By measuring my progress each month, I can feel myself starting to get behind, and I can adjust, rather than simply waiting for time to run out and making a mad dash to the goal.