A highly collaborative and incremental method of project execution that produces ‘high quality’ output with ‘just enough’ input can be termed as AGILE. AGILE means flexible and that’s what the methodology is. Can be molded / redesigned the way the project & end product demands it.
This way every team has a different way / manner of executing an AGILE project and some of the clues that I look for while terming a project as AGILE are –
Lean principles and those of AGILE are extensively been adopted in software development projects and AGILE is gaining a huge popularity in the technology solution development community.
Let’s look at what methodology was popular before AGILE and analyze what AGILE brought to the table:
The traditional model of software development is a vertical model of development wherein the requirements of the project were laid down right in the beginning, post which the design phase began, later the implementation and verification and the process ended with the maintenance phase. This method was observed to be extremely time consuming and very expensive. A lot of wastage (in the form of human hours) was observed and some other negatives were observed –
The entire AGILE project lifecycle can be broken down into three essential steps –
It calls for the start of the product development. It consists of requirement gathering, team building, making requirements, goals and objectives clear to the development team. Basically all of the stake holders involved in the project come to some sort of a common understanding while in this phase and they define / envisage a common objective by the end of this phase. With regards to testing, activities like environment setup, tool identification & purchase, documentation and planning become the part of this phase.
This phase is the key phase of agile project wherein the product is being built, tested, delivered and improved (gradually). When the team begins with the product development, their first target is to deliver the first workable version of the software and at the earliest. The team follows the approach of prioritizing the requirements (based on business needs), determining and allocating the number of hours (efforts) required to deliver those requirements and then delivering the product in the allocated time. At the same time, as the product is being developed, the testers are building their test code (or regression suite) to achieve testing the product based on the development completed (test – driven –development)
The product is successfully deployed on production environment and handed over to the business teams in this phase for product usage. A lot of teams get involved into the project lifecycle now including, support, operations, UAT testing and customers. The marketing teams also get involved in this phase and they start selling the product. As a part of this phase, as and when request for product improvements come, the product is updated and released iteratively.
This post is also available in: French