The transition from chaotic software development to agile has got to be easier than the transition from waterfall to agile. If a team is not following any process — just winging it — adopting a structure, any structure, can only help.
In my experience, people don’t like chaos — complete lack of any process — nor do they like a rigid, tightly-controlled process. Agile software development presents a comfortable middle ground to teams in chaos.
On the other hand, teams that are using the waterfall approach already have some structure. The process may have holes and weak points but at least it offers rules and guidance.
Waterfall teams turn to agile development for one of two reasons:
- Too many projects are late, over-budget, and/or buggy. The company needs better results.
- The competition is getting products and services to market faster. The software development team needs to pick up the pace.
Often, out of frustration, management decides to try something new and agile is a hot buzzword. The team is likely to feel stressed and likely to be resistant to any new approach.
A better way to go about this might be to introduce agile techniques while still using waterfall. Consider the following approach as an example:
- Use planning poker to prepare your development estimates. Forget points. When estimating features, modules, tasks, etc., get the team together and compare estimates. Discuss and arrive at consensus. Use the basic concepts of planning poker to get the team used to the idea of generating estimates together.
- Hold daily 15-minute meetings. Get the team into the habit of making daily commitments and sharing information.
- Hold retrospectives at the end of each project phase and after major deliverables are achieved. Seek continuous improvement.
- Have some developers try pair programming and report back to the group on their experiences.
By adopting some agile techniques and getting the team used to the concepts, full-scale agile adoption will be easier and more likely to succeed.
Oh, and please go through with full-scale agile adoption. Things may improve by simply doing what I describe above but you need to commit to following through to get all the benfits agile software development offers.