Sunday, May 8, 2011

Control Iterations with Scope

To a project manager (PM), delivering a project on time is one of the three top concerns other than budget and user-expectation. In traditional waterfall model, each development stage is defined with a time span attribute in the project schedule. But in modern Agile model, the whole development is broken down into iterations, each of which comprises of a set of work efforts on user stories (as defined in XP). To achieve the “on time” target in this paradigm, PM needs to constantly monitor the user stories backlog to ensure all of them are inline with the project scope, because scope creep is one the primary reason for project delay.

The whole idea of Agile preferred over waterfall is that it “embraces changes”, as it works in iterations and in incremental evolution, in stead of in holistic. But I hope this doesn’t give developers and business users alike a misleading sense that creating requirements can be less serious, with an attitude “if they are not right, we can change in later iterations,” which technically seems right and inline with the idea of “iteration”, but given a project context having time and schedule defined, is wrong. Any divergence from the scope causes extra work effort and time, impacting “on time” delivery of the project.

Moreover, user stories should evolve towards the right direction. That “Requirements constantly change” means the user stories in the backlog are evolving too. And creating new user stories should be a serious work that makes sure they evolve to the right direction, meaning even a user story is in the scope, it still could be evolving to a direction rather than getting closer to its final state. We see a lot of back-and-forth with requirements, and they do cause waste of time and resource, and pull back the project.

So, a PM should constantly check new user stories to ensure they are in scope, and evolving to the right direction.

Still, is these enough for PM to control time in an Agile paradigm? Not really. If he doesn’t define and control the number of iterations for the project, how can he ensure the project’s time span? I will investigate this in next article.

No comments: