First we have to see the previous methodology waterfall model which was used in software development and what are the drawbacks of waterfall model and how Agile overcome that issues which was present in waterfall model.
Issues of Waterfall model
Waterfall model consists of various phases like Requirement phase, Design, Implementation, Testing, Deployment and Maintenance phase.
For long term software development, waterfall model can be used. It can also be used to develop monolithic applications while micro services are in use these days.
In waterfall model, every stages needs to complete 100 percent then you can move to another stage, it is not suitable for the complex project where requirement changes frequently.
If we use waterfall model we need a very long time to develop a software. these days it is not feasible as we know the demands of software is crazy high, we need to change according to market and no body wants to wait for more time.
So, we need another methodology to use for software development therefore Agile methodology comes into picture. So, now we understand the agile concept.
Develop a software in multiple sprints and each sprint contains four phases i.e planning, implementing, testing and reviewing for each component until coverage of each component of the product. Now in this manner you’re developing software and providing its components to customer for their feedback and to make changes accordingly.
There are four values of Agile according to Agile manifesto
1. Individuals and interactions over processes and tools: It is important to value people over processes and tools because it’s the people who respond business need and execute the development process.
2. Software over documentation: Team should value software development over documentation. It doesn’t mean you are not focus on documentation, it means you create documentation which provides value and at the same time it doesn’t hinder team progress.
3. Customer collaboration over contract negotiation: It will easy to develop an effective software if team will involve customer.
4. Responding to changes over following a plan: According to Agile changes always acceptable between any phase because changes always improve project and add values to project.
Principles of Agile
There are 12 principles of Agile which can be your fair test to define whether or not you are being Agile. So always remember these principle which are given below.
1. Our highest priority is to satisfy the customer through early and continuous delivery.
2. Welcoming changing requirement even at late development
3. Deliver working software frequently (weeks rather than months)
4. Business people and developers must work together daily throughout project.
5. Build projects around motivated people. Give them support if they need, and trust them to get job done.
6. The most effective and efficient method of conveying information to and within a development team is face to face.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design.
10. Simplicity – the art of maximizing the amount of work not done is essential: To maximize the outcome and impact , the team needs to maximize the work not done. Identifying things that do not add value. This can have an impact on product development and delivery.
11. Best architectures, requirements, and designs emerge from self organizing teams.
12. At regular intervals, the team reflects on how to become more effective and adjust its behavior accordingly.