Agile development is an iterative process which focuses on the development team working in a flexible environment, in this model use the entire project team works in cycles toward demonstrable quality. There are four main approaches when working in agile:
RAD or rapid action development, this way of software development includes no planning in advance, adapting it as needed making it easier to make changes.
Lean is a “trim the fat” way of working, eliminating the redundancy while leaving the value. Its main aims are to eliminate unnecessary expenditure and its main goal is creating value for the client.
XP or extreme programming works with the mind-set of having the simplest coding solution for each of the requirements laid out.
Scrum is an iterative methodology that uses small teams to complete aspects of the software within a cycle. A scrum team consists of a scrum master, product owner and a development team, consisting of a developer, tester and business analyst.
The scrum master gives velocity to a project. Velocity is calculated by task length divided by the number of sprints needed +1. The scrum master is chiefly responsible for ensuring that the team receives no outside interference while working on the project and hosting the daily scum meetings to assess the progress made.
The product owner is the party responsible for providing what the product will be, they define the product backlog and dictate what the overall project the team will be working on.
The developer is responsible for creating the software
The tester is responsible for testing the software
The business analyst is responsible for ensuring the requirements are met.