Agile methodologies
Agile methodologies are flexible. This is to allow developers to create software in whatever way is most suited to the circumstances that they are faced with.
Agile methodologies draw on two different methods, each with their own drawbacks:
- traditional waterfall method - sometimes viewed as too rigid, unresponsive and reducing creativity
- rapid application development - can result in a chaotic development process, requires strong leadership
The mix will depend on the specific project.
Key features
Agile methods:
- have a strong emphasis on communication and team work
- draw on some principles of rapid application development, namely prototyping and regular communication with the client
- have a strong emphasis on leadership and project management within the software development team
- have face-to-face communication as a key principle
Those who use agile methods believe that this form of communication leads to very well devised and highly effective products.
Sprints
Agile methods draw on the waterfall method in relation to sprints. A sprint is a planned delivery schedule for an aspect of the system.
Within a sprint the principles of analysis, design, implementation and testing are used.
Prototyping is also likely, particularly during the early phase of a sprint.
Sprints are carried out for each area of development.
Rather than following a rigid set of steps for the development of the entire system, several steps are repeated in one sprint and then carried out again in the next sprint.
Drawbacks
Following a sequence of sprints and engaging in near daily communication is very time consuming.
The emphasis on team work and face-to-face communication means that long term, large scales projects are often unrealistic.