Agile…Agile!!!! Everybody is talking about Agile. Go for Agile… Simply, go for Agile. What is Agile after all? What is the advantage of agile and more specifically what is in it for me/my organization? When I started digging in, I came to know some very interesting and useful features which I wanted to share with you.
Agile is the project execution framework. It is an approach adapted for software development to help businesses respond to unpredictability. There are various kinds of Agile methodologies as: Unified Process, Scrum, Crystal Clear, Kanban, Extreme Programming, Adaptive Software Development, Feature Driven Development, and Dynamic Systems Development Method (DSDM).
Agile is based on the following features:
- Individuals and interactions – self-organization, coordination, collaboration and motivation of the team
- Working software – working software is more useful and welcome than just presenting documents to clients in meetings
- Customer collaboration – requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.
- Responding to change – agile development is focused on quick responses to change and continuous development.
If you are using let’s say Waterfall model where each step in SDLC comes one after another, and if any major change occurs/realizes in the later stage of development cycle then it’s very difficult to balance the project. Result would be a lot of rework, wastage of efforts, time and frustration.
To handle such kind of a situation, actual project execution process comes into picture. For complex projects Agile is the best option. Agile welcomes the changing requirements even late in the development phase. In this method, the product delivery continues in the sprint/time-box of 2-4 weeks. Hence client is happy and satisfied with the early and continuous deliveries of valuable software. Each sprint involves cross functional people who all work together with coordination and self-discipline throughout the development cycle. The best architectures, requirements and designs emerge from self-organizing team throughout the development life cycle. At last the client’s confidence, his satisfaction and delivery of a valuable product is the most important aspect for increasing the business of an organization.
As a client gets a glance of the product from initial stage of development, he/she can make decisions or any changes very easily at an early stage. Now if the client wanted to change/discard the requirement then the rate of expenditure of efforts or rework would be less.
Many companies claim of using Agile, but actually they are not using it. Either they mix-up the agile roles or swap the resources in between or other tweaks as per their convenience, which is against Agile. Hence to follow Agile properly the change should be at the organization level. The mind-set of people in the organization should change. Gradually it is possible to follow this method truly, just there is this need to initiate and step forward to adopt this method.