Would you expect your team's performance to go up? Of course! Even if they still did development in the same old way, they would still do better because:
- The team would be able to work together as a unit, eliminating significant communication delays and challenges.
- You would have direction from someone who could tell you what was important to the customer.
- You would be working on only one project at a time.
- You would not waste time following procedures that were not useful.
You almost cannot fail to see some positive results quickly, but it will only take you so far. When you actually implement Scrum, you'll get additional benefits because:
- The iterative natureof Scrum development (including the re-assessment of priorities between iterations) enables you to build code that is of value to the customer.
- Thefocus on defining acceptance tests concurrent with requirements improves both the quality of the code and the clarity of the requirements.
- The ability of the team to determine how to remove impediments as they arise allows them to improve efficiency.
Phase 1 produced significant improvements by changing the organization of the team: eliminating delays in communication and unproductive procedural overhead. The additional improvements in Phase 2 come from using a better process. Note that the first two benefits of Phase 2 (iteration, test-early) come more from the team's general approach than from the team figuring out how to solve things.
Structure and Process
Over the last eight years, I have worked with dozens of companies, helping them lay out roadmaps for adopting Agile practices. Sometimes, I encounter teams who have show dramatically greater productivity than their counterparts, even though they otherwise follow the same development process. These more effective teams always have the following elements:
- They are organized as work-cells.
- They are co-located.
- They work on only one or two projects at a time.
- They have access to people who can tell them what needs to built.