Agile model

From apppm
Revision as of 21:28, 3 March 2022 by S202256 (Talk | contribs)

Jump to: navigation, search

Contents

Abstract

Recently, the world has become much more complex and unpredictable, a special acronym has appeared to describe it, “VUCA”, which states for volatile, unpredictable, complex and ambiguous. [1]

The fast pace of changing technology and evolving markets, leads to the need of adaptative and flexible project management approaches. Agile is an iterative development process that consists of putting people first and focusing the project development on small iterations and feedback. Requirements and solutions evolve through collaboration between cross-functional teams. It encourages frequent inspection and adaptation for rapid delivery of high-quality solutions that are aligned with customer needs.

Agile first appeared in the early 1990s within the software development industry and is based on the Agile Manifesto [2] and its 12 principles. Since then, many Agile frameworks have emerged such as scrum, kanban, lean, and Extreme Programming (XP). Nowadays, Agile has become very popular within many organizations.

This article introduces the Agile concept and presents the principles and main values of the Agile Manifesto. Next, it describes the different Agile frameworks and its applications. On the other hand, it presents in which situations it is useful to follow Agile. The last part of the article mentions possible limitations of Agile.

Big idea

What is Agile model?

Agile methodology is a project management process that is based on splitting the project development into smaller iterations. It mainly focuses on the collaboration between the development team and their customers, and it requires adaptability and flexibility.

Agile aims to deliver fast solutions that will be tested with the customers in order to get their feedback. This feedback will allow the team to make changes and improvements through a following iteration. In Agile is very important to respond to changes during the process.

It was originated from the software industry, because of the fast changing and continuously updates of technology.

Mainly, the Agile process could be divided/break up into different phases:

  • Scope. Define the project scope, analyze concepts and plan requirements.
  • Plan. Organize teams and tools and planification of the iterations.
  • Create and implement. Iteration. Frequent development delivery through iterations.
    • Development
    • Test
    • Deliver
    • Feedback
  • Release
  • Maintenance

[3]

[4]

Agile Manifesto

In the 1990’s, because of the development of new and fast-changing technologies, the software development industry realized that it couldn’t move fast enough to meet customer demands and requirements. On February 2001, a group of software developers, who formed the Agile Alliance [REF], gathered to discuss the main industry practices aiming to find a better approach to the traditional development process, such as Waterfall methodology. They ended up creating the Agile Manifesto, that marked the birth of Agile as a methodology.

This document contains the basic principles that are characteristic of Agile philosophy in project management. It outlines 4 values and 12 principles that guide the Agile philosophy.

Agile main values:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

and 12 principles:

  1. Satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome and harness changes for the customer's competitive advantage, even late in development.
  3. eliver working software frequently, from a couple of weeks to a couple of months, with a preference for shorter timescales.
  4. Have daily collaboration between business people and developers throughout the project.
  5. Build projects around motivated individuals. Create the environment and support developers need, and trust them to get the job done.
  6. Prioritize face-to-face conversation as the most efficient and effective method of conveying information to and within a development team.
  7. Measure progress by the amount of working software completed.
  8. Maintain a constant and sustainable pace of development indefinitely.
  9. Enhance agility through continuous attention to technical excellence and good design.
  10. Keep it simple. Simplicity—the art of maximizing the amount of work not done—is essential.
  11. Recognize that the best architectures, requirements, and designs emerge from self-organizing teams.
  12. Regularly reflect and adapt behavior for continual improvement.

Application

The Agile philosophy can be applied with different frameworks and methodologies, the two most popular are Scrum [REF] and Extreme Programming (XP) [REF]. Some other Agile methods are Kanban and Lean development.

Agile methodologies

Scrum

Scrum is an agile development method which concentrates specifically on the project management point of view. As the Agile philosophy indicates it employs an iterative and incremental approach and aims to understand customer needs and deliver value to them in short cycles, prioritizing the most valuable features.

The scrum method consists of three main roles:

  • Scrum Mater: it is responsible for organizing the team and remove obstacles to progress. Is accountable for establishing the Scrum methodology.
  • Product Owner: is responsible for maximizing the value of the product resulting from the work of the Scrum team. It also creates product backlog, prioritizes the backlog and is responsible for the delivery of the functionality at each iteration.
  • Scrum team: small cross-functional team of people developing the project. It consists of one Scrum Mater, one Product Owner and Developers. There aren’t hierarchies within the team. (tipically 10 or fewer people)

Other main concepts of scrum:

  • Each iteration of a scrum is known as Sprint
  • Product backlog is a list where all details are entered to get the end-product
  • During each Sprint, top user stories of Product backlog are selected and turned into Sprint backlog
  • Team works on the defined sprint backlog
  • Team checks for the daily work
  • At the end of the sprint, team delivers product functionality
SCRUM process

Extreme Programming

Extreme Programming technique is very helpful when there is constantly changing demands or requirements from the customers or when they are not sure about the functionality of the system. It advocates frequent “releases” of the product in short development cycles, which inherently improves the productivity of the system and also introduces a checkpoint where any customer requirements can be easily implemented. The XP develops software keeping customer in the target.

There are 6 phases in the method:

  • Planning
  • Analysis
  • Design
  • Execution
  • Wrapping
  • Closure

Storyboards

Lean

Agile metrics

Limitations

References

  1. Bennis, Warren; Nanus, Burt (1987) "VUCA"
  2. Beck, K., et al (2001) "Manifesto for Agile Software Development"
  3. Pimonova S. (2020) Agile Methodology in Education of IT Students, Application of. In: Tatnall A. (eds) Encyclopedia of Education and Information Technologies. Springer, Cham. https://doi.org/10.1007/978-3-030-10576-1_214
  4. da Silva, Tiago Silva; Estácio, Bernardo (2017) Agile Methods. Springer International Publishing.
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox