I have been working as a project manager for software development projects for more than a decade. My preliminary projects were following the traditional waterfall model. Once the agreement is signed, we kick off the project, approach customers to explain requirements and have a big-bang strategy for the whole project covering between 6-18 months. Then we do design, coding, unit testing, integration testing, system testing, and user acceptance testing and finally deliver the project to a customer.
Our basic communication with the customer during the project is limited to sharing weekly status and progress report & performance review; at times, we share documents for their approval. The team would be casually working firstly; towards the fag end of the project, we used to face big problems in big-bang integration and several bugs in system testing and acceptance testing; the team would be extremely engaged towards the finish. For long, we got habituated to this practice and were not thinking about any alteration.
Like many of you, I too got excited by new buzz word agile, the new approach of software development. I see many certifications on agile and fixed to take global Agile Certified Practitioner (ACP) certification which is the only worldwide certification targeted for agile project managers.
After having some working experience in agile projects and clearing the ACP, I would like to share my important lessons learned with agile compared with the waterfall approach. Change is unalterable hence be flexible for change. The waterfall is dishonorable for change resistant while agile welcomes modifications in requirements, even late in the development process.
Agile practices harness change for the customer’s competitive benefits. The client owns the product backlog ordered by value for the team to execute in iterations. The customers are able to modify the requirement until it is picked up for implementation.
Waterfall method delivers the product at the end, generally in 6-18 months, while agile produces small cycles of production quality software, typically every 2-4 weeks! determines to the customer and adjusts to the product feedback. Once the product has minimum marketable structures, customer releases to market i.e., shorter time to market (TTM) acquiescent better return on investment (RoI) In waterfall, Project manager decides the whole strategy and get the work finished my team.
In agile, the team is self-organized i.e., the team does an assessment, customer commitment, planning, scheduling, resource planning, monitoring, control, execution, and customer management. Project manager role accordingly transforms to offering infrastructure, managing external stakeholders and eliminating team impediments.
In short, we have permitted and motivated team. In waterfall, we spent a big amount of time and effort to gather requirement, design, test releases; mostly antiquated. Agile believes Just Barely Good Enough (JBGE) documents i.e., the single line user story as requirement and code as active design document!!
Instead, agile concentrates on software engineering techniques (like pair programming, test automation, test driven development, and regular integration), collective code ownership, informal communication, and regular customer collaboration.
Agile offers satisfaction to all stakeholders:
- Clients and end users are happy to have a change-friendly development model
- Business is happy to see a quicker time to market and better return on investment
- The team is happy as they become self-driven and could concentrate on engineering practices
- The project manager is happy as his pressure is reduced significantly