Imagine you are a business owner who needs software to automate some crucial business functions. What will you do? Approach a team of developers who in turn will ask you for the required functionalities and based on that information give you a delivery date. You receive the software on the said date but realize that it is obsolete and doesn’t fulfill the business requirements. All the efforts: time and money gone to waste!
The reason behind such failure is the lack of communication between the owner and the development team. Developers designed the software based on the then given business needs; as a result, they failed to incorporate the industry changes that took place during the development process. To tackle such development failures, the concept of Agile Methodology or Agile Software Development came into existence.
Agile methodology advises that a project should be developed and delivered in phases instead of as a whole. The team works in a continuous cycle of planning, executing, and evaluating; receiving continuous feedback from the owner, thereby making the final product relevant for the business environment.
The manifesto of Agile methodology lays down four founding values and twelve supporting principles. These are as follows.
Four Values of Agile Methodology
- Individuals and interactions over processes and tools
The first value of agile methodology focuses on the interaction within the team involved in the development. The basic reason is that communication between individuals is swift and result-oriented as compared to following set processes.
- Working software over comprehensive documentation
Interface design documents, technical specifications, technical prospectus, documentation plans, test plans; the documentation list in traditional approaches is extensive, which consume an ample amount of time. The second value emphasizes on delivering working software instead of focussing only on extensive documentation.
- Customer collaboration over contract negotiation
The third value underlines the importance of customer involvement during the development process instead of limited involvement in the traditional methods at the initial negotiation and delivery stage only.
- Responding to change over following a plan
In the fourth value, agile methodology stresses upon its core concept that is adaptability to change. Traditional methods view changes during development as negative, whereas agile looks at it as an opportunity to learn and grow.
- Continuous Delivery
- Dynamic Nature
- Contributing Development
- Regular Meetings
- Cheerful Workplace
- Open Discussion
There are almost a dozen of agile software development frameworks, but the notable and widely-used ones are: Scrum, Kanban, Lean Software Development, Crystal, Extreme Programming, Dynamic Systems Development Method.
In our next series of articles, we’ll touch upon each of the agile frameworks and discuss them in detail. If you’d like to share your feedback or contribute to the article, then please reach us through our contact page.