The Agile methodology and its frameworks

From apppm
Revision as of 23:10, 16 September 2016 by SofiaGriggio (Talk | contribs)

Jump to: navigation, search

Project management is the application of knowledge, skills, tools and techniques to project activities to meet the project requirement. [1] Traditionally, in order to manage a project, the sequential methods were largely used. According to these models, all the stages in a product’s life cycle are sequential. In opposition to these methodologies, the agile movement took place. The agile manifesto, published in 2001, summarizes the main principles of the Agile movement: individuals and interactions over processes and tools, customer collaboration over contract negotiation, responding to change over following a plan, working software over comprehensive documentation. Moreover, simplicity, which is the art of maximizing the amount of work not-done, is valued as an essential aspect. [2]

Many frameworks are linked to the agile movement. This article introduces and compares three of these agile processes: scrum, kanban and extreme programming.

Scrum is a framework based on a set of values, principles and practices.[3] It is based on empiricism and it uses an iterative and incremental approach for risk control and predictability optimization. Scrum is based on three pillars: transparency, inspection and adaptation. [4]

Kanban is a project management techniques based on Toyota’s just-in-time scheduling method.[5] This framework support the project work and facilitate the focus on delivering value to the customer.

Extreme programming (XP) is one of the agile processes and it focuses on delivering to the customer only what is needed. It is based on four core values - communication, simplicity, feedback and courage - and is implemented with 12 practices: planning, small releases, metaphor, simple design, testing, refactoring, pair programming, collective ownership, continuous integration, 40-hour week, on-site customer, coding standards. [6]

Contents

The Agile movement

Background

In the spring of 2000, some Extreme programming adepts met and discussed about several “Light” methodologies. During 2000, a variety of articles about “Light” and “Lightweight” processes were written and started to spread. The first meeting in 2000 represented a sort of incubator for the second meeting. On February 2001, seventeen experts from different contexts - extreme programming, scrum, DSDM (dynamic system development method), adaptive, software development, crystal… - signed the Manifesto for Agile Software Development. The aim of this project was the creation of an alternative method to develop software, different from the documentation driven and heavyweight process that was commonly used. (8)

Principles

The agile methodologies help companies to react to unpredictable events through an incremental and iterative process and empirical feedback. (10) It provides a way to measure the performance of a project throughout the development lifecycle through regular cadences of work, called sprints or iterations. At the end of each phase, the teams should be able to present a potentially shippable product increment and every aspect of the development is revisited. (10)

Agile project management must involve not only the product development processes, but also the entire business. A lack of proper support from the business stakeholders would probably lead to the failure of the project. (11)

-performance measurement: from the iron triangle of project management, also called triple constraints of project management, (Budget, Scope, Schedule) to the Agile triangle (Value, Quality, Constraints) (1)

Application

Scrum

Whereas in the waterfall development the activities are in sequence and a task cannot be performed until the previous one is not finished, the scrum method is based on an iterative process. Pictures 1 and 2 depict the different processes according to the two distinct methods.

The Scrum is an incremental method for product development and uses length-fixed phases, called sprints, that usually last one or two weeks and that represent one iteration. At the end of each iteration, the teams should deliver a potentially shippable product. (12)

The employees involved are organized in small teams which are cross- functional and self- organizing. The size of the teams is limited, the optimal number is approximately seven people.

According to this methodology, the Scrum team consists of three roles: the product owner, the development team and the scrum master. The product owner is in charge of maximizing the value of the product and the work of the development team. This process may differ, depending on the company, the scrum teams and the people. More precisely, the product owner is responsible for the management of the product backlog, which includes the following activities: listing all the product backlog items, ordering the items of the product backlog in order to facilitate the achievement of the goals, optimising the work performed by the development team, ensuring visibility, transparency and clearness of the product backlog, making sure the development team understands the items in the product backlog.

The development team is formed by experts with the role of developing the Increment that is released at the end of each sprint. These participants are the only one who can decide and manage the way to deliver their own work, which means that the teams are self-organizing. Another characteristic inìs the cross-functionality: it is decisive that the members have different backgrounds, skills and knowledge, in order to develop a complete Increment. All the team members are at the same level and no sub-groups can be formed. The different participants may have their own area of expertise but all of them are responsible for the group outcome.

The scrum master is engaged in ensuring that the scrum theory and principles are fully understood and that everyone is behaving and working in compliance to them. Moreover, he has the role to identify the not really helpful interactions and processes and to correct them.

The scrum methodology includes some events in order to ensure regularity. The sprint is a time frame lasting one month or less and, once it has started, it is not possible to modify its length. The conclusion of this phase is characterized by the delivery of a potentially releasable product Increment and the beginning of a new sprint is immediately following. If the sprint is too long, complexity and unpredictability increase.

Sprint planning is another fundamental phase for the scrum: the entire team is engaged in establishing a work plan for the sprint. The maximum duration for the planning of a one-month long spring is eight hours. During this session, the final delivery is outlined and the work needed to achieve this is decided by the development team through the choice of the product backlog items. Finally, all the team member select a sprint goal.

In order to maintain alignment and focus, the development team uses a daily scrum, which is a quick (15 minutes) meeting, held at the same time in the same place every day. Its goal is analyzing what has been done since the previous daily scrum and agreeing on a plan for the following 24 hours.

At the end of each sprint, a 4-hours sprint review is organized by the scrum master. A complete understanding of the purpose of the meeting is of the utmost importance as the Increment is evaluated and eventually the product backlog adjusted for the following phases.

After the sprint review and before a new planning, a sprint retrospective can occur. The scrum team should participate and assess the processes and tools, but also people and relationships in the sprint that is just concluded; it continues with a selection of possible improvements and a plan to carry them out. (4) Example: it has been used for the development of semiconductors, mortgages, wheelchairs.

Kanban

//Theoretical introduction missing//

The kanban methodology can be practically applied through five steps.

Step 1: Capture your team’s high-level routine.
The engagement of all the team members is fundamental. Among all the types of work, it is important that the team members focus on specifying, implementing and validating. (I know it is not clear, I need to rephrase and expand it)

Step 2: Redecorate your wall.
The word Kanban has its origin in Asia, and the translation is “signboard” from Japanese and “looking at the board” in Chinese. During the adoption of this method, a Kanban board should be created. It is formed by the columns Backlog, Specify, Implement and Validate, as shown in picture XX.

Extreme programming

Comparison

Limitations

Comments

Work in progress. I would like to add a small company example in the scrum paragraph. I still need to add the images, fix the references and the annotated bibliography.

References

  1. A Guide to the Project Management Body of Knowledge, Fifth edition, Project Management Institute
  2. http://agilemanifesto.org/
  3. Essential scrum: a practical guide to the most popular agile process, S. Rubin Kenneth, Pearson Education, 2013
  4. The Scrum Guide, Schwaber and Sutherland, 2011
  5. Agile Project Management with Kanban, Brechner Eric, Microsoft Press, 2015
  6. Introduction to agile processes and extreme programming, Newkirk, James, International Conference on Software Engineering, 2002, pp. 695-696
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox