Agile Methods


The free online dictionary by Farlex describes agile as a speedy way of performing a task. Agile methods is said to have originated as a result of the demand from the public for a quicker process to be applied in the development of software (Abrahamsson et al, 2003). Agile methods according to Aguanno, (2004) is a rapidly progressing method. They are methods used in software development and they are increasingly gaining recognition in project management. This is as a result of the involvement of customers/users throughout the project life cycle, promotion of team collaboration and its adaptivity to change with ease. Agile methods is said to utilize competent people and these may include customer or user, analyst, developers, quality assurer among others. These people play vital roles throughout the project life cycle. Agile methods can be used in small or large projects and it lays emphasis on values and principles thereby enabling the team to carry out the software development process appropriately.
Agile method differs from other methods of software development in various ways. One major difference is its adaptability to change. New ideas can come up at the end of any stage and this will be implemented without writing the whole program again. Agile method also involves the user or customer throughout the project life cycle and this gives it an edge over other methods. The Standish Group (1995) reported that lack of user involvement is one of the factors that challenge projects. Agile methods address this issue as customers or users form part of the project team and contribute to the software development until the objectives are achieved.

Agile Methodologies


The application of the agile methodology during the development of software enables regular assessment of the trend of the software development project throughout its life cycle. The concept of agile methodology was developed from the utilization of some ideas and practices of the traditional methodology. It is said to be made up of four basic components:
  • Phases
  • Developments
  • Individuals
  • Deliverable (software items or documents)

There are various methodologies used in agile software development and they include the following:
  • Extreme Programming
  • Scrum
  • Lean Software Development
  • Feature Driven Development

Extreme Programming


Extreme Programming (XP) was developed be Kent Beck and some few others. It is one of the most popular Agile Methodologies that has advanced over the years. It is a methodology that focuses on satisfying the needs of customers at any time in the life cycle of the project. It encourages collaboration among the people involved in the project and has its core values based on Communication, simplicity, feedback, respect and courage. The XP process begins with the customers. The customer writes down the requirement on cards and these requirements are called User stories. The project team captures this and estimation on the time and cost for the requirements to be delivered are carried out. The user stories are then broken down into tasks, which are carried out in iterations. At the end of iteration, acceptance tests are carried out.

Scrum


Scrum methodology is described to be one of the most popular agile methodologies. It is described by Abrahamsson et al, (2003) as a structure used for regular management and controlling of the processes of projects that are performed in sprints. This regular monitoring requires a 15 minutes daily meeting involving the project team members for the purpose of detecting and correcting issues that may arise as a result of the processes or practices being applied during the life cycle of the project. In addition, it is described to be one of the practices of agile that are used to define roles as well as a set of products that are to be delivered. The diagram for the scrum process by Windholtz, (2010) can be seen below:

The Scrum Process
The Scrum Process












Lean Software Development


Lean software development has its background from the book written by Mary Poppendieck and Tom Poppendieck in 2003 where the lean manufacturing approach popularly used by Toyota was tailored into software development. This approach aims at reducing wastes to the minimum and increasing efficiency for the purpose of quick delivery to customers as well as producing a quality outcome. The lean manufacturing follows a set of principles, which have been adapted by agile to improve the process of software development.

Principles of Lean Software Development

  • Eliminate waste
  • Amplify Learning
  • Decide as late as possible
  • Deliver as fast as possible
  • Empower the team
  • Build integrity in
  • See the whole

Feature Driven Development


Feature driven development (FDD) is said to be a method that lays focus on the processes that are applied in designing, building and development of software. It relates effective practices to developments that are usually done in iterations in order to make the processes applied exceptional. In addition, the feature driven method focuses on the quality of the process, deliveries as well as ensures constant monitoring throughout the project life cycle (Abrahamsson et al, 2003).

See also


References



Abrahamsson,P., Warsta, J., Siponen, M.T. & Ronkainen, J. (2003) 'New Directions on Agile Methods: A Comparative Analysis'. Software Engineering. Proceedings. 25th International Conference. pp. 244-254. Available at: https://uhvpn.herts.ac.uk/xpls/,DanaInfo=ieeexplore.ieee.org+abs_all.jsp?arnumber=1201204 [Accessed:13 February, 2012].

Aguanno, K. (2004) Managing Agile Projects. Canada: Multi-media Publications Inc. [Online]. Available at:
http://books.google.co.uk/books?id=TJgsl4WqrzoC&printsec=frontcover&dq=agile+methods&hl=en&sa=X&ei=xmc6T9efL6K-0QWu2tm6Cw&ved=0CGIQ6AEwBA#v=onepage&q=agile%20methods&f=false [Accessed: 14 February, 2012].

Beck, K. and Andres, C. (2004) Extreme Programming Explained: Embracing Change. 2nd edition. Boston: Addison-Wesley

Farlex (2012) The Free Dictionary. [Online]. Available at: http://www.thefreedictionary.com/agile. [Accessed: 13 February, 2012].

Poppendieck, M. and Poppendieck, T. (2003) Lean Software Development: An Agile Tool Kit. Boston: Addison-Wesley

Windholtz, M. (2010) Agile - XP- Scrum- Lean. AgileDNA.com. [Online]. Available at: http://agiledna.com/system/resources/0000/0021/Agile-Overview.pdf [Accessed: 13 February, 2012].