Agile Project Management: All about Agile

1. What is Agile Project Management

As opposed to the traditional methodologies, agile approach has been introduced as an attempt to make project management flexible and efficient. It allows you to break large projects down into more manageable tasks, which are tackled in short iterations or sprints. This enables your team to adapt to change quickly and deliver work fast.

2. The principles of agile

There are 12 key principles behind the Agile Manifesto. [1]

  1. Customer satisfaction is always the highest priority and is achieved through rapid and continuous delivery.
  2. Changing environments are embraced at any stage of the process to provide the customer with a competitive advantage.
  3. A product or service is delivered with higher frequency.
  4. Stakeholders and developers collaborate closely on a daily basis.
  5. All stakeholders and team members remain motivated for optimal project outcomes, while teams are provided with all the necessary tools and support, and are trusted to accomplish project goals.
  6. Face-to-face meetings are deemed the most efficient and effective format for project success.
  7. A final working product is the ultimate measure of success.
  8. Sustainable development is accomplished through agile processes whereby development teams and stakeholders are able to maintain a constant and ongoing pace.
  9. Agility is enhanced through a continuous focus on technical excellence and proper design.
  10. Simplicity is an essential element.
  11. Self-organizing teams are most likely to develop the best architectures and designs and to meet requirements.
  12. Regular intervals are used by teams to improve efficiency through fine-tuning behaviors.

3. The Agile Manifesto

In 2001, a group of 17 members who works on the agile approaches provide a statement known as the agile statement. Its concepts are in order:

  1. The superiority of the individualism and interaction to processes and tools.
    A group of average programmers with good relationships usually do much better than a group of professional ones without any good relationships.
  2. The superiority of the executable software to conceptual documents.
    Software has no limited documents because it is meaningless to produce such documents. Also, excessive documents are worse than limited ones as it is time consuming to produce them.
  3. The superiority of the collaboration with clients to contract-based negotiations.
    A successful project is a project that frequently receives clients’ responses.
  4. The superiority of the variations responding to following an initial plan.
    It is not possible to produce the final product considering a preliminary framework and design, because minor and major requirements of the design often become visible during the development and so the developer team should make required changes in designing with respect to these requirements. [2]

4. Agile Development Cycle

Agile Project Management Development Cycle

At the end of each sprint, a potentially shippable product increment is delivered. Thus, with every iteration new features are added to the product, which results in the gradual project growth. With the features being validated so early in the development, the chances of delivering a potentially failed product are significantly lower. Prioritizing flexibility and rapid turnaround, agile approach offers the following benefits, according to the recent research:

  • Ability to manage the changing priorities (87%)
  • Increased team productivity through daily task allocation (84%)
  • Better project visibility due to the simple planning system (82%) [3]

5. Agile Frameworks

Agile is an umbrella term for a vast variety of methodologies and techniques, sharing the principles and values described above. Each of them has its own areas of use and distinctive features. Traditional agile project management can be categorized into two frameworks: scrum and kanban. While scrum is focused on fixed-length project iterations, kanban is focused on continuous releases. Upon completion, the team immediately moves on to the next.

5.1. Scrum

Scrum is a framework for Agile Project Management, it does not give complete and accurate details about how works should be done in the project and so assigns these affairs to the team. First described in 1986 by Hirotaka Takeuchi and Ikujiro Nonaka in the New Product Development Game, this approach is based upon the systematic interactions between the three major roles: Scrum Master, Product Owner, and the Team.

  • Scrum Master
    A Scrum Master is a central figure within a project. His principal responsibility is to eliminate all the obstacles that might prevent the team from working efficiently.
  • Product Owner
    A Product Owner, usually a customer or other stakeholder, is actively involved throughout the project, conveying the global vision of the product and providing timely feedback on the job done after every sprint.
  • Scrum Team
    Scrum Team is a cross-functional and self-organizing group of people that is responsible for the product implementation. It should consist of up to 7 team members, in order to stay flexible and productive.

A basic unit of work in scrum – sprint – is a short development cycle that is needed to produce a shippable product increment. A sprint usually is between 1 and 4 weeks long: more lengthy iterations lack the predictiveness and flexibility that are scrum’s fundamental benefits. Having no standard duration (as long as it is less than 4 weeks), all the sprints within a project should have a fixed length. This makes it easier to plan and track the progress.

Scrum relies on the three main artifacts used to manage the requirements and track progress – Product backlog, Sprint backlog, Sprint burndown chart. The process is formalized through a number of recurring meetings, like Daily Scrum (Standup), Sprint Planning, Review and Retrospective meetings.

Scrum Life Cycle
The Scrum Lifecycle

5.1. Kanban

Another most common project management framework is Kanban. Originating from a visual system of cards used in Toyota manufacturing as production control method, Kanban is a very simple yet powerful approach to developing products.

Kanban - Agile Project Management Framework
Kanban Board

Kanban prioritizes the work in progress (WIP), limiting its scope to match it effectively to the team’s capacity. As soon as a task is completed, the team can take the next item from the pipeline. Thus, the development process offers more flexibility in planning, faster turnaround, clear objectives, and transparency.

No standard procedures within the process, as well as the fixed iterations, are required
in Kanban, as opposed to Scrum. The project development is based on the workflow visualization through a Kanban board, usually represented by sticky notes and whiteboards or online tools like Trello.

6. The impact of agile methods on project management

While the ideas and intent behind Agile Methods are by and large good, they have impacts on the people, process, and project elements of an effort. We examine some of these impacts to determine whether an Agile Method can and should be applied to a project, given its requirements, available staff, andexternal factors such as business and legal constraints.

6.1 People

There can be a range of people involved in a product effort – developers, testers, project leaders toname a few. There is often a customer and an end user who wants the resulting product. There are also executive managers (business executives and directors of the development shop), who are interested in budgets and returns on investment, and human resources. Each of these has a stake in an agile project.

6.1.1 Developers

Perhaps the largest impact of Agile Methods is on the Developers. Agile Methods depend on strong developers – they must be amicable, talented, skilled, and able to communicate well [5]. Developers must be willing to work as a team, able to handle constant change, and resourceful enough to solve problems. Agile Methods are very lightweight methods, not affording strict guidelines and processes for developers to follow. Hence, they do not accommodate weaker developers well. Yet, skilled technology workers are often a rare commodity. This is a management risk as some developers may not fit in this agile environment.

Level Characteristics
3 Able to produce solutions in unprecedented situations
2 Able to tailor solutions to fit new, but precedented situation
1A Solid developer able to implement functionality and estimate effort.
1B Able to implement simple functionality, execute test, & follow directions
-1 Unwilling or unable to work in a collaborative environment

Table 1. Boehm & Turner’s developer levels [6]

The “-1” level of developer depicted in Table 1,would be challenged in an agile environment. Even“1B” developers consume resources in “hand-holding”[7]. Hence, the top three levels make up the core of the agile development team. Boehm and Turner suggest level “3” developers may not be needed for all projects, depending on how unprecedented it might be. Given the need for a high level of expertise, Agile Methods may be difficult to employ in a traditionally staffed organization. Highly skilled staffs are always in demand, and without accommodating 1B developers, it may be difficult to build a long term human capital strategy. This is just one reason that long term projects present a significant risk for Agile Methods.

6.1.2 Testers

The impact of using an Agile Method on the testing (or quality assurance) organization hinges on the shorter development cycles where testing occurs throughout the development process [7]. The project management challenge is to reallocate testers that no longer fit into the agile group and find testers with appropriate development/testing skills. This represents an opportunity for novice developers (level “1B”) to start, and gain system and Agile Method expertise. Such an approach requires one more experienced developer (or experienced test manager).

6.1.3 Project Leaders

There are two key Project Leader roles in product development – project managers and team leads. Each has a diverse set of challenges as management under an Agile Method differs from other methodologies. This distinction is well characterized as leading people and managing process resources. Since Agile teams involve experienced staff with sizeable responsibility, a mentor or coach leadership approach is most effective.

Team leads must be willing to enable members to take initiative. Leadership is done via collaboration rather than command and control type leadership [5]. This can represent a cultural shift for some as they must be willing to share decision making authority [9]. The job of a team lead is to facilitate the team into making decisions [8].

In contrast, project managers in agile processes are responsible for tracking progress and making business decisions. Project managers have a larger adjustment than team leads since schedules and plans are far less important under agile methodologies. The emphasis is placed on responding to change rather than following a specific plan. This presents a challenge as they are usually called upon to detail the status of the project. Project managers also have a much more involved role. In SCRUM, for example, the project manager meets with the team daily and leads the daily SCRUM [5].

Frequent/short meetings with the team are the norm for the agile team [7]. Project managers are also more involved with the customer collaboration, instead of usual focusing on defining deliverables and contracts. If the project manager considering an Agile Method is not capable or does not want such a role, selecting an Agile Method may not be appropriate.

6.1.4 Customers

In the agile, as the customer is more involved in producing the product, he/she has one of the most valuable roles in comparison with other product production ways [10]. For instance in traditional methods like the cascade
method, clients just interact with developers to determine requirements at the first stage as well as they are involved at the end to receive alpha and beta versions of the project while in agile methods it is recommended that customers stay with the production and development team during the construction of the product.

In this method, it is necessary to become aware of the availability of customer representatives and their awareness of final requirements before starting. [11][12] In agile methods, there is usually a beneficiary one as a candidate showing all who are involved in the project. He/she should be an expert and be able to make important decisions such as the acceptance of the product, prioritization, etc. [12]

6.1.5 The Team

Since Agile Methods rely substantially on collaboration and communication, the team is key for success. A single strong-willed developer, developers who do not work well together, a customer who doesn’t engage with the
team, each could destroy the collaborative nature of a group. The team chemistry is of represents a significant risk for the agile project. Turnover is another significant personnel factor to be considered with an agile team. Without formal documentation, high turnover on a project can lead to loss of critical knowledge. The project manager must consider this risk when examining whether the team (and the organization) is right for an Agile Method.

6.2 Process

Since Agile Methods represent a new principles, processes activities, and sub-goals, they have an impact on many of an organization’s processes. Old processes (e.g., planning, development, delivery, operations) must be
replaced by agile ones. Cultural shifts in the organization towards Agile Methods turn old ways of thinking on their end, inducing resistance.

6.2.1 Planning

Agile processes are characterized by placing less emphasis on formal planning. This is not to say that planning does not occur. With so many small tasks, it is argued that agile processes require more planning, but unlike other methodologies, planning is not upfront followed by micro adjustments. Rather it is constant task to ensure optimal delivery results [7]. Agile planning is a relatively informal process. For example, deciding what will go into each time-box is accomplished through the daily SCRUM meeting by discussing pending problems, prioritizing work, and assigning resources to the problems [10]. In other agile methods, even this level of planning may not be considered [12]. It is important to factor in informality.

6.2.2 Documentation

The driving factor for documentation is Agile Methods is how often it is going to change and need to be updated. A vision statement for a project might be extremely beneficial and never change recording it warranted. Conversely, a low-level component design would be more likely to change, inducing some redundant document changes as well. This documentation-light process avoids wasted effort where documents are written once and then become obsolete as they are not updated to reflect the changes.

With Agile processes, information is communicated informally and is simply kept as part of the collective knowledge of the organization. While reducing the amount of documentation can increase productivity, it does come at some risk and cost. Documentation serves as a way to bring new members up to speed. It is useful when transitioning the project to a maintenance team. From a business perspective, documents form the basis for audits assuring proper quality procedures are followed. Documentation serves as a domain knowledge repository. If the organization changes dramatically, this knowledge can be lost.

7. Conclusions

The selection of a method for a specific project must be very careful, taking into consideration many different factors, including those mentioned above. In many cases, being both Agile and stable at the same time will be necessary. A contradictory combination, it seems, and therefore extra challenging, but not impossible. As Siemens states, “We firmly believe that agility is necessary, but that it should be built on top of an appropriately mature process foundation, not instead of it” [13].

However, Agile Methods are not appropriate for all projects. A project manager must consider the characteristics of the project to ensure that an Agile Method is appropriate. The impact on the people, the process, and the project must all be considered. Specific challenges with using an Agile Method can be offset by adding back some formality. For example, if migration to a separate maintenance group is required, documentation could be written by the development group as part of the transition [14][15].

8. Agile Project Management Certification and Training

Professional certification courses for Agile methodologies is available for professionals who have worked in Agile projects. These certification courses are designed to test your knowledge and competence of the Agile framework.

Though there are several Agile-related certification courses available in the market, most of them can be categorized under the umbrella of 2 main categories namely, Project management-based or Scrum-based. Here are seven agile-focused certifications to provide a benchmark for your knowledge.

  • PMI-ACP
  • APMG International
  • Strategyex Certificate (Associate or Master’s) in agile
  • International Consortium for Agile (ICAgile)
  • Agile Certification Institute
  • Scaled Agile Academy
  • Scrum Alliance

9. Agile project management software

Many Agile Project Management Software help organizations, teams, and individuals adhere to the Agile Manifesto and the 12 Agile Principles, which focus on people, communications, the product, and flexibility. Here are some agile project management software.

9.1. Free Agile Project Management Software

  • Redmine with Agile Plugins
  • Tuleap – Open Source Agile Project Management software
  • Openproject – Open Source Scrum and Agile Project Management Software
  • Bitrix24 – Free Online Scrum Software
  • Taiga.io – Project Management Platform for Agile Developers and Project Manager

9.2. Best Agile Project Management Software Overall

  • Agile board for EasyRedmine
  • JIRA – Best Software Development Tool Used by Agile Teams
  • VersionOne – Enterprise Agile Management Software
  • Sprintground – Developer’s Tool for Agile Project Management
  • Active.Collab – Professional Agile Project Management Software

References

  1. “Principles behind the Agile Manifesto”, http://agilemanifesto.org/principles.html
  2. “Manifesto for Agile Software Development”, http://www.agilemanifesto.org.
  3. https://www.versionone.com/pdf/state-of-agile-development-survey-ninth.pdf
  4. http://www.controlchaos.com
  5. High smith J., Cockburn A., “Agile Softwarej Development: The Business of Innovation”, Computer, September 2001, pp120-122.
  6. Boehm, B. and R. Turner, “Using Risk to Balance Agile and Plan-Driven Methods,” Computer, June 2003, pp.
    57-66.
  7. Cohn, M. and D. Ford, “Introducing an Agile Process to an Organization,” Computer, June 2003, pp. 74-78
  8. K. Beck. Extreme Programming Explained. Addison Wesley, 2000.
  9. Williams, L. and A. Cockburn, “Agile Software Development: It’s about Feedback and Change,” Computer, June 2003, pp. 39-43.
  10. Derbier, G., “Agile Development in the Old Economy, ”Proceedings of the Agile Development Conference,
    June2003, pp. 125-131
  11. Thomas, S. “An Agile Comparison,”http://www.balagan.org.uk/work/agile_comparison.htm.
  12. Cockburn, A. And J. Highsmith, “Agile Softwarej Development: The People Factor,” Computer,
    Novemberj2001, pp. 131-133.
  13. Paulisch F., Volker A., “Agility—build on a mature foundation”, in: Proc. Software Engineering Process Group Conference—SEPG 2002, 2002.
  14. Paul M.C., “Agile methodologies and process discipline”, Crosstalk (Oct. 2002).
  15. Abrahamson P., Salo O., Ronkainen J., Warsta J., “Agile software development methods”,VTT Publications 478 (2002).

Leave a Reply

Your email address will not be published. Required fields are marked *