Make the Right Moves Each Step of the Way
The premise that software projects cannot follow a fixed plan and expect to succeed due to its complexity, is the basis of agile software development. We have to make course corrections each step of the way. However in agile projects, we can get lost in a set of practices, and miss the element of course correction. This is an attempt to emphasize the importance of investing time and effort into making the right decisions for course correction throughout an agile software project.
This article is not only about projects that follow an agile methodology like Extreme Programming or Scrum religiously, but this is applicable to any software project that has an agile nature, where the project team believes in making incremental changes and frequent course corrections.
A project team should have a weekly planning session with the participation of project leader, customer or customer representative, developers, and QA representatives. The weekly planning meeting should be an investment in time and effort, that would help the team make the best possible moves for the week. Although hours spent in meetings may sound like loss of productivity, the benefits that a project can get from properly conducted planning sessions is immense. Such sessions would help iron out ambiguous or vague requirements, help come up with proper design solutions that would avoid the need of rework, help breakdown stories into detailed tasks and more accurate estimates. Insight gained during such sessions of analysis and assessment is invaluable when deciding on the best possible course for the week.
The team should pick stories based on priority for the week, and for each selected story perform the following tasks:
- Analyze requirements in detail.
- Come up with a solution
- Come up with a detailed task breakdown
- Estimate effort for each task in the story
The outcomes for each selected story should be tracked on a mind map (this can be a single sheet of paper). This mind map can be used by developers as a reference. This will also be a valuable tool to organize thoughts, and will be useful for reference in future.