Agile software development methods are a group of development methodologies that help develop software through iterative development techniques.
After the rejection of the old development methods such as water-fall or v-model due to over budget and missing deadlines the revolution of the agile development methods began in the 1990’s.
Its main focus areas are people and their work together as a team. Through self-organizing and cross-functional teams their is continued evolution of solutions and requirements.
Due to strong focus on collaboration and self-organising teams they are able to figure out things on their own but that does not mean there are no managers.
Managers are there but to make sure teams have the right skill set, environment and solve issues which they are unable to resolve.
There are a set of core ideas that are prescribed differently from one method to another and sometimes borrowed making it incestuous and difficult to guess if the project is following one method.
Agile software development methods have proven effective and useful but it should be remembered that they are an alternate and not a solution to the ills of the past. One should be careful before adopting any agile method and assess strengths and weaknesses and reduce risks through preparation.
Following are the drawbacks of agile methods,
1- Not adaptable to developments where one cannot meet face to face
2- Not applicable in contractual projects
3- More requirements for different ideas
4- Not suited for fixed pricing
5- Rework or integration problems can arise due to little effort on design
6- Difficult to apply to embedded systems
Few agile software development methods are as follows,
Scrum is a lightweight framework with its focus on to solve complex adaptive problems. It is a very popular product used to manage iterative and incremental projects. The scrum cross-functional team works together to reach a common goal which takes about 2 to 4 weeks (sprint).
Lean is an iterative methodology developed by Mary and Tom with its focuses on delivering value through effective value stream mapping. The key principles of lean methodology are,
A- Light leadership
B- Improvement which is continuous
C- People’s respect
It is a highly visual workflow management technique mostly used by lean teams. It is like Scrum designed for teams to work more effectively.
Kanban three (3) basic principles are,
A- Today’s workflow, its informative if items are seen in the context of each other
B- Work in progress to be limited so that teams don’t commit too much work
C- Taking the next priority work from backlog after the current task is completed