Agile Software Development
Agile software development is a set of software development Processes based on iterative and incremental development, where requirements and Development evolve through collaboration between Agile Teams which are self-organizing, cross-functional teams. Agile software Development promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.
Agile Manifesto :
- Individuals and interactions over processes and tools : Agile gives more importance to the individuals (team member) their capabilities and communication between team members. Agile always prefers co-located team to make sure that team mates has more communication and collaboration to achieve the sprint goals.
- Working software over comprehensive documentation : working software will be more useful and welcome than just presenting documents to clients in meetings. it does not mean that there should be no documents at all. but it says bare minimum document with which team can work without confusion.
- Customer collaboration over contract negotiation: 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 over following a plan: agile development is focused on quick responses to change and continuous development. many times it found that requirement got change in between the sprint which is wrong away of agile implementation.
there are various agile flavors some of them are listed below.
Flavors of Agile:
- Dynamic Systems Development Method (DSDM)
- Extreme Programming (XP)
- Feature Driven Development (FDD)
- Rational Unified Process (RUP)
Myths about Agile software development:
- Agile works without planning ! : Rather i will say, Agile requires continuous planning.
- Agile makes development rapid :
- Agile skips design & documentation : Agile does not say, skip the documentation but i says minimum required documentation and devlivery the working software.
- Each feature should be completed in one iteration
- Doneness of each story in one iteration only
- Iteration has to be two of weeks only
- Scrum is rigid, it cannot be changed/adapted