Introduction to Agile approach
The word agile means able to move quickly. Agile is a software development approach, where requirements and solutions evolve throughout, and the software improves after each iteration. Agile is, in fact, not a methodology. It is not a set of rules to be followed by all. There will be constant collaboration among the developers, testers, managers and clients. It helps all the stakeholders to be adaptive so that the business needs are better addressed.
The Manifesto for Agile Software Development was developed by seventeen people in 2001. A set of values and principles forms the core of agile approach. Agile philosophy has been widely accepted and adopted by the software industry.
In agile methodology, development takes place in iterations. The entire project will be broken down into different bite-size functionalities called user stories. They are delivered continuously in several iterations. Each cycle lasts for two to three weeks.
This reduces the need for detailed planning. In each stage planning, designing, coding, testing and user acceptance testing take place. Testers and developers work side by side. A working software with minimum features will be ready at first.
After each stage product is shown to the customer. They may give feedback or modify their requirements. In the next iterations, customer input and more features will be incorporated. This way customers’ needs are better addressed.
Flexibility and adaptability are the key factors of the agile approach.
The core values of agile are as follows:
Individuals and Interactions over processes and tools
Processes are very important in any organization to instill discipline among the employees. Tools to implement the processes are also important. But individuals and effective communication among them are more important.
Spending a lot of time following unnecessary and avoidable processes proves to be inefficient most of the time. Traditional models may have some dedicated employees to make sure that processes are being followed. Many tools will be built just for the processes. This increases the cost burden unnecessarily.
In agile methodology, individuals and interactions are valued more than the processes and tools. Employees should have the required technical competencies. They should be open to learning new technology. There should be effective communication among the team members and managers. These result in a better product.
Interaction among the employees is very important. When developers start working on a requirement, there should be clarity on what modules each person will be working on.
Regular communication should be there with the testing team also. Interaction helps everyone to remain on the same page.
Requirements may slightly change in between. Regular interaction among the team members helps them to adapt easily to changes. This helps to deliver the modules on time without the cost going beyond the estimation.