Agile in Project Management

From apppm
Revision as of 19:42, 19 February 2022 by Almagiovannucci (Talk | contribs)

Jump to: navigation, search

Contents

Introduction

What is Agile?

The traditional approach into solving problems were based on a waterfall project management. This process is about setting an action plan that consists in a series of steps. In order to move forward with the plan, all the steps with their respective goals had to be completed. This approach did not allowed teams to move fast and to have possible solutions with minimum expenses. This is why Agile approach changed project management. With iteration and prototyping, teams are allowed to make mistakes and receive constant feedback to improve during the development process, instead of waiting until the end to know if the customer’s needs are being satisfied. Agile is the result of a discussion held in 2001 by a group of software developers and project managers. During the meeting, they talk about the aspects and characteristics of the projects they have been involved where final outcomes were a success. This team created a new statement of values for software development that is called ‘The Agile Manifesto’. Agile is an interactive practice where cross functional teams work together to find solutions and proposals to reach a specific outcome throughout a continuous iteration process. Agile is composed by several steps where each one of them allows the team to adapt, improve and adjust what is needed to reach the expected outcome based on the objective of the project. [1]

Agile’s Values

These four values are the core of this practice [1][2][3]:

  • Individuals and interactions over processes and tools

Agile aims to be humancentric and participatory [1]. Processes and tools provide guidance, best practices, and improve productivity [2]. However, Agile states that people need to be involved in the development process. Users, customers, and the development team need to work together, have an open and effective communication to create a viable solution that will comply with the objective of the project. The iteration process will start with the feedback provided by costumers and users when the proposed solutions are tested and validated. The challenge of this value is how the communication is held within the team. People need to listen and be open to different proposals that will arise in the discussion. Effectiveness in important to avoid the communication being ambiguous and time-consuming.

  • Working software over comprehensive documentation

When using the Agile approach, the proposed solutions in each iteration does not need to be fully developed. Agile explains that those possible solutions should be developed with what is just enough to achieve the goal and not invest time in frivolous tasks and features that are not vital to test them. The objective of this value is to provide users and customers a tangible solution to review, test and give feedback to continue with the improvement process of it. The challenge of this value is to deliver a working product or prototype so users and customers can have a real interaction with it in comparison to deliver documentation and KPI’s of the results.

  • Customer collaboration over contract negotiation

Customers need to be involved in the process. At the beginning of the relationship between the project managers and the customers, the details of the projects tend to be incomplete and any decision set in stone in the initial discussion can become an issue in the future when it changes. In this matter, Agile suggests negotiating flexibility for change with the customers in the project’ scope, resources, prices and outcomes to be allowed to make adjustments as progress is made in the project. The challenge in this value is to have proper and complete preparation of the teams as well as setting from the beginning which are the expectations of the outcome.

  • Respond to change over following a plan

The uncertainty of a project outcome depends on the needs of the customers and users. In contrast with the usual procedure to follow a step-by-step plan without allowing change to take part, Agile suggests that it should always be open the possibility of change and adjustments to the project in development. This is how the iteration process takes place giving the option to make changes and adjustments to obtain a well design solution or product in the end. This value is also relevant when there is consideration to changes in the environment itself since the business world tends to have continuous change. Project managers must be diligent to change that will surely occur during the development of the project


Agile’s Principles

Moreover, Agile has 12 Principles that support the previous explained values of the Agile Manifesto. These principles are [1][3]:

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity -the art of maximizing the amount of work not done- is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Applying Agile in Organizations

The environment

When working with Agile is important to set the proper environment where people feel safe to speak their minds to share ideas, challenge the creation process, being respectful with others in the team, make mistakes and ask for resources. A successful environment will have openness, trust and respect, courage and empathy within the team members [1]. The teams that will develop the product, need to keep in mind the following [2]:

  • Work in teams and integrate people in the design process. This people should be close to the creation of the real value that the customer will perceive. They know the real challenges of the project; hence they are the ones that know where improvement is needed when solutions are being developed and tested. * Feedback and input from the customers are a must. The design team needs to involve the customer in the process. With Agile, the solution will be tested several times in the iteration process. The solutions that the teams are delivering will improve according to the input and feedback that the customers provide after testing those preliminary solutions.
  • The market and the business environment are changing faster within time. The strategies that arise within the development of the product can be long term as long as they adapt to the demands that the market sets. It is not realistic to use the exact same process when the market has changed, and the customer’s needs will be different in comparison to the ones when the strategy was initially design.
  • Experimentation and risk are a learning experience and their success will be determined by the customer reaction when they test all different solutions. Innovation and growth within the organization cannot happen if experimentation and risk are discarded from the process.
  • Is a fact that the plan will change but not the target value. Agile aims to obtain the value that the customer requires. In today’s business, change is imminent due to internet, innovation and technology making customer’s needs vulnerable to change too. The plan must be flexible enough to adapt to those changes in the development process.

The challenge of setting the environment includes a behavioral change in people’s mindset. For Agile approach to succeed, people need to be opened to change and to adapt to a new way of developing new products and services for the customer.

Methods where Agile is present

There are several applications that can be used to implemented Agile in organizations. These methodologies have embedded Agile in their own setting. Depending on what the teams will be developing is the one that will comply best to them. (These technologies will not be developed in the article, will just be mentioned).

  • Lean [1][4]: Lean is based on manufacture processes, especially in the production area. Is a philosophy that has been used for many organizations that focus on continuous improvement, fast deliveries, ensuring quality, reducing waste, involving people and standardize processes within production.
  • Extreme programming [1]: This practice is set for the development of software. Teams have the responsibility to develop the features that customers need in the fastest and best way they can. The focus of this practice is customer satisfaction.
  • Scrum [1][5]: Scrum is an iteration process based on sprints where cross-functional teams solve problems to deliver a solution in a productive and creative way. The term sprints refer to the iteration that will take place during the development of the product. In Scrum, team members have specific roles to make sure that the goals are being met in the process.

Four tools that can boost Agile

When using the methods mentioned before, there are tools and activities that help to embrace the Agile approach in the development process. Within these tools and activities are:

  • Daily standup meetings [1]

One of the most relevant characteristics when working with Agile is how teams are managed. Teams are self-managing, self-organizing and taking one project at the time. In comparison with traditional methods, where usually there is a top-down approach and the leader manages and organizes the teams, Agile allows them to be independent, focus on one problem at a time and move faster. Discussion and communication within teams keeps them aligned and promotes a continuous improvement mindset. In this matter, the objective of a daily standup meeting is to keep it simple and avoid long discussions. In these meetings, teams talk about problems that are arising and their possible solutions. Teams share their status, barriers that might be and seek for feedback. The agenda consists of discussing what was done the previous day, the plan of action for today and if there is a problem that might not allow them to deliver on time.

  • Minimum Value Product (MVP)

The Minimum Value Product is an iterative process that depends on constant feedback from the customers and users about the hypothesis that has been proposed to solve their problem. This process allows the team to discover which are the needs behind the project without investing too many resources. Different solutions will be presented and on each delivery there are increments or improvements based on the previous feedback given. Agile Release Train (ART) Agile is originally and ideally design to work in small groups of people. When Agile was implemented in bigger groups, it seems to be not fully organized and the common vision of the goal was usually difficult to assess within teams. To adapt Agile into groups with more people involved, three different frameworks were developed [6]:

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox