For the past 4-5 years at least, AGILE has been making the news almost daily in the industry and with the kind of methods that the teams are following to develop software and the nature of output while following AGILE. The practitioners are very happy with what they are following and the methodology is gaining popularity day by day. AGILE got its name as agile from the agile manifesto. A small group of people got together in 2001 to discuss about the software development methods that they were following and the shortcomings of those. During their discussion they laid down 4 values that they want to imbibe in the new software development methodology. Here are those –
Focus should be more on teams and communications instead of processes & tools
Minimum focus on documentation and maximum on the product to be developed
More focus on collaboration with the customers and less on negotiations that happen
Flexibility to change and quick response to changes
These values became the core values of AGILE and the basic foundation on which the AGILE software development methodology is based on. While following these values in the AGILE projects that I have followed, I have further noticed some key ideas that can help you all while adopting AGILE and I am highlighting those ideas in the form of 7 key ideas over here –
Customer participation in the process of software development: Presence of end user / customer in the AGILE team adds a lot of value to the end product. Since the end user has a clear understanding of what he wants, while the solution is getting developed, he can keep giving comments and feedback on the changes that would add value to the system. Thus helps in creating a better solution.
Requirement gathering: Teams spend very less amount of time in the requirement gathering process. Basically it is just at a high level and bare minimum is what teams are looking for while in requirement gathering phase. It is lean’s Just-In-Time approach. As and when the core functionality / feature are to be developed, requirements are gathered in detail and through exhaustive discussions. This is also the right time when the business has most clarity on the requirement. Also the requirements are ideally in visual format for the team to get the clearest picture about it. The idea behind gathering minimum requirement in the beginning is to minimize the time loss in discussing something which would perhaps never take shape.
Distributed decision making: Instead of making the project managers and the team leaders the key decision makers in the team, in AGILE every member is empowered to take decisions and progress on the app development. The decisions are usually made by the team members such that it is beneficial to the end product and thus the target designed.
Allow requirements to change: Requirements do keep changing in AGILE project due to its constant feedback mechanism. This requires the project managers to constantly update the product backlog. However changing requirements should not frequent causes changes to delivery plans and schedules.
Small releases in iterations: The target in AGILE is to break a bigger problem into multiple smaller sub problems and then providing the solved part of the problem with the end customer. Thus in AGILE small and incremental releases are planned and the product is delivered to the end customer in an incremental manner. It also provides a constant feedback mechanism while the product is getting developed and thus provides a room for improvement.
Testing integrated with project lifecycle: In AGILE testing begins very early and testers start testing the application right after the first sprint. The testing team starts testing the app very early and they do test the functionalities repeatedly. A regression suite is being created for the app and the same suite is being updated in every release. As more and more functionalities are added to the app, more and more test cases are added to the regression framework.
Collaborative product development between all stakeholders: AGILE advocates extensive and exhaustive communication between the stakeholders involved in a project. This facilitates quick problem resolution and efficient product development. As a part of AGILE team, you can expect to discuss a lot, go over a lot of calls and get into a lot of meetings. Daily standups are quite a norm in which every member of the team discusses his latest status, his next plan and the blockers he is facing. This approach keeps project managers and the team members informed about what every member of the team is working into and in case of any obstacle one can come to another’s help.