On any project, you need to satisfy your stakeholders. On a software development project, that involves knowing what the stakeholders want, establishing and maintaining close communication from the beginning to the end of the project, and delivering high quality software of high value in a minimum amount of time at the lowest cost possible.
Determining the requirements is where the challenge begins on an agile software development project. After all, agile evolved as an approach because stakeholders were not receiving what they wanted. Furthermore, it was found that many stakeholders did not fully know what they wanted. They were not well apprised of what was possible and experienced changing needs over the course of the project.
Planning Ahead or As You Go
In basic project management in the style of the waterfall method, you need a solid plan, which includes a clear picture of what your project will deliver. Next, you need a way to control and monitor progress toward your objective. During the execution phase of the project, you want to have a productive and engaged team, collectively pouring energy into the effort toward the stated goal.
Unfortunately, it is virtually impossible to think through everything in advance on a software project. By contrast, on a construction project where the product of the project is physical, not easily changed and made up of well-understood technologies in familiar combinations, it is more plausible and advisable to think everything through before starting.
In software, a sort of “rolling wave" is a better way to plan. Localized or incremental thinking tends to win the day, where technical people who know really get to provide key inputs and where those with operational experience can evolve their view of the end state as the project unfolds. Thus, on agile software development projects, it is usually better to think things through as you go and still end up with the results your stakeholders want. It generally depends on the complexity and size of the project.
The Bottom Line
On agile software development projects, there is a push and shove, a top-down versus bottom-up, a yin and a yang. There is a tension between advance planning and planning as you go. If you are managing a large agile project, you can probably feel that tension. It’s your job to resolve it and to find the balance between advance planning and planning as you go, which we will explore in part two.