Explain Agile Development in detail.
Agility:
- Agility is ability to move quickly and easily.
- It is a property consisting of quickness, lightness, & ease of movement
- The ability to create and respond to change in order to profit in a turbulent global business environment
- The ability to quickly reprioritize use of resources when requirements, technology, and knowledge shift
- A very fast response to sudden market changes and emerging threats by intensive customer interaction
- Use of evolutionary, incremental, and iterative delivery to converge on an optimal customer solution
- Maximizing BUSINESS VALUE with right sized, just- enough, and just-in-time processes and documentation
Agile Process
- Agile software process addresses few assumptions
- Difficulty in predicting changes of requirements and customer priorities.
- For many types of software; design and construction are interleaved (mixed).
- Analysis, design, construction and testing are not as predictable as we might like.
- An agile process must be adaptable
- Requires customer feedback
Agility Principles
- Highest priority is to satisfy the customer through early & continuous delivery if software
- Welcome changing requirements
- Deliver working software frequently
- Business people and developers must work together
- Build projects around motivated individuals
- Emphasize face-to-face conversation
- Working software is the measure of progress
- Continuous attention to technical excellence and good design
- Simplicity – the art of maximizing the amount of work done
- The best designs emerge from self-organizing teams
- The team tunes and adjusts its behavior to become more effective
Agile Process Models
- Extreme Programming (XP)
- Adaptive Software Development (ASD)
- Dynamic Systems Development Method (DSDM)
- Scrum
- Feature Driven Development (FDD)
- Crystal
- Agile Modelling (AM)