Going agile? How to reduce your risk of failure

Share to0

Conference PaperAgile26 October 2014

McGee, Tracy

How to cite this article:

McGee, T. (2014). Going agile? How to reduce your risk of failure. Paper presented at PMI® Global Congress 2014—North America, Phoenix, AZ. Newtown Square, PA: Project Management Institute.

Project teams are turning to agile software development methods to drive velocity, improve quality, and deliver greater customer value. Before blindly getting on the bandwagon, these teams need to understand common pitfalls that can doom a project before it starts. It is essential that teams understand the potential impact of incorporating agile methods and have a plan to mitigate risks. This paper will highlight several risk areas that project teams should assess before heading down the agile path. These areas include team demographics, team skillset, culture, and supplier dependencies. Potential impacts from these risks will be reviewed. Questions are included that teams can use to assess the unique characteristics of their projects. In addition, multiple mitigation techniques for each risk area are provided which teams can use to help form an overall risk management strategy for their project.

img

Tracy McGee

Abstract

Project teams are turning to agile software development methods to drive velocity, improve quality, and deliver greater customer value. Before blindly getting on the bandwagon, these teams need to understand common pitfalls that can doom a project before it even starts. It is essential that teams understand the potential impact of incorporating agile methods and have a plan to mitigate risks.

This paper will highlight several risk areas that project teams should assess before heading down the agile path. These areas include team demographics, team skillset, culture, and supplier dependencies.

Potential impacts from these risks will be reviewed. Questions are included that teams can use to assess the unique characteristics of their projects. In addition, multiple mitigation techniques for each risk area are provided which teams can use to help form an overall risk management strategy for their project.

Agile teams can vary in size based on project characteristics. Managing larger teams, however, may increase the time spent in meetings and decrease productivity. Teams located at multiple sites can cause communication gaps and misunderstandings. Time spent during off-hours to communicate across geographies can result in team burnout and productivity loss. Team members partially allocated to projects could be pulled to work on other efforts, leading to potential velocity and quality issues.

It is important that teams consider the overall team size, location, and availability. Questions to ask:

  • What is the size of the team?
  • Where is the team located?
  • Are the team members partially or fully allocated to the project?

Techniques to mitigate the risk of large, dispersed or fragmented teams include:

  1. Establish a Scrum of Scrums. Scrum is a method many agile teams use to organize their product development efforts. Team roles include a ScrumMaster who manages the overall process, developers, and product owners who work with the business to understand requirements. Managing large Scrum teams can increase the time spent in meetings and decrease productivity. In these cases, the team may want to consider establishing a Scrum of Scrums. This technique breaks larger teams into smaller Scrum project sub-teams. A team member is then selected to represent each sub-team at a Scrum of Scrums meeting to help manage integrations and dependencies between projects.
  2. Co-locate team for the beginning of the project. Bringing people together, for even a short timeframe, can be helpful when launching new projects. Collaborating with team members face-to-face also provides an opportunity to identify the best methods of working together when the team is dispersed. “The most efficient and effective method of conveying information to, and within, a development team is face-to-face conversation.” (Agile Alliance, nd, para. 1)
  3. Account for time zone differences, local holidays, training plans, and vacation schedules. The team should be aware at all times when people will be out of the office. Holidays, vacations, and training time should be identified as soon as possible and built into release and iteration planning. Teams should identify best methods for communication early in the project to facilitate the work across time zones. For cross-geographical teams, alternating meeting times can lessen the burden.
  4. Recognize and adjust to cultural differences. Teams need to recognize how cultural differences play into project team dynamics, particularly in the areas of communication and decision making. Some cultures are more vocal than others. Others may be less aggressive in challenging the status quo. “By understanding an individual's personal, national and organizational cultures, you can better align the team and gain greater influence.” (Morlan, 2013, para. 3)
  5. Co-locate team by discipline or role. For large or dispersed teams, look for opportunities to colocate team members that have similar skillsets. For example, co-locating development resources can enable better collaboration on project deliverables and allow for pair programming. Co-locating the Product Owner with the business can increase partnering opportunities.
  6. Leverage technology. There are many types of agile tools available for project management and collaboration. Teams should identify what works best for their project characteristics. Examples include online Planning Poker sessions, Kanban boards, and the use of social networking type tools.
  7. Align iteration planning with skillset availability. For fragmented teams, look for opportunities to optimize iteration planning when you know required resources will be available. For example, if a user story is highly dependent on specific development expertise, the related tasks should be placed in an iteration when the resource(s) is available.

Team Skillset

Teams need to ensure they have the required skills they will need to successfully complete the projects. Skill gaps can lead to incomplete work and decreased customer value. Teams comprised mainly of junior level employees may not have the level of experience needed to successfully complete tasks in the planned timeframe. In addition, teams should know how to properly apply agile methods so they are not adopted inappropriately. “Agile practices are like any other practices … ; they're learned through example, application, and training. If the practices are disconnected from the philosophy, the result just won't work.” (Heusser, 2006, para. 10)

Teams should evaluate their technical skillsets and knowledge of agile. Questions to ask:

  • Does the team have all the technical skills needed?
  • Is there a good balance of senior vs. junior level team members?
  • What is the team's experience with agile?

Techniques to mitigate the risk of inexperienced teams include:

  1. Acknowledge gaps early on and form an action plan. Teams should assess any gaps from both the technical and agile method perspectives. In some cases, the team may need specialized training and time to acquire skills. This should be taken into consideration during planning sessions. From an agile software development perspective, teams should be aware of commonly used methods such as Scrum, test-driven development, and continuous integration.
  2. Engage senior team members as mentors. Teams should identify those with specific technical skillsets that can mentor others as part of the learning process. Pair-programming is a method that can also be leveraged. “Pairing involves having two programmers working at a single workstation. One programmer “drives,” operating the keyboard, while the other “navigates,” watching, learning, asking, talking, and making suggestions.” (VersionOne, nd, para. 2)
  3. Identify an agile expert to coach the team. Coaches typically have a deep understanding of agile methods and extensive experience. Coaches can make a big difference with inexperienced teams and can help them ramp up more quickly. A coach may provide training to teams and can be a trusted advisor when teams encounter issues. Coaches can come from within the team or externally.
  4. Enlist other successful agile teams to share experiences and key learnings. Teams new to agile can learn a great deal from others who have successfully delivered agile projects. Data from project reviews and retrospectives can also be a good way to find out what has worked well (and what has not) for other agile teams.

Culture

Successful agile teams are self-directed, committed to common goals, and actively support agile adoption. Team members trust each other and are empowered to make the decisions needed to deliver results. Management is onboard and willing to make the changes necessary for a successful adoption. Without this combination, project teams may be ineffective and may experience motivation and morale issues. Trust issues may develop between the team and management. Ultimately, agile adoption is jeopardized, and projects may fail.

Teams need to assess the agile culture of both the team and management. Questions to ask:

  • Does the team collaborate effectively and work toward a common goal?
  • Does the team regularly confront issues? Are they empowered to make decisions?
  • How do the team members and customers feel about agile?
  • Does management actively support agile? Are they willing to make the changes needed to support adoption?

Techniques to mitigate the risk of agile culture issues include:

  1. Provide basic agile education at all levels of the organization, including management. Training will drive a common understanding of agile methods and expectations. It is imperative that management has an understanding of agile benefits and potential impacts to the organization. Engaging management up front will enable them to be champions for agile and allow time for any needed changes to occur.
  2. Provide in-depth role based training to the team. Agile projects have multiple roles filled by team members that can include ScrumMaster and product owner. Specific up-front, role-based training will enable team members to become productive more quickly. In addition, team members will have a better understanding of the differences between agile and more traditional project environments in areas such as customer interaction and requirements change management.
  3. Practice open communication within the team. Project teams need an environment where issues can be quickly escalated and addressed. Teams also need the ability to actively contribute to collaborative decision making across multiple stages of the project, including release planning, daily stand up meetings and retrospectives.
  4. Include customers as part of the team. Daily communications with customers can assist in requirements clarification and prioritization and can provide insights to potential changes that need to be incorporated. In addition, regular customer engagement can help ensure the final product meets expectations and delivers the anticipated business value. “Business people and developers must work together daily throughout the project.” (Agile Alliance, nd, para. 1).
  5. Update management regularly on progress. Teams can keep management engaged as agile champions by providing regular updates on project status and the team's agile adoption. This can also provide valuable insight to what changes they may need to make to enable success.
  6. Listen to concerns, communicate why changes are being made, and emphasize benefits. Project teams need to address concerns with agile adoption expressed by team members effectively, customers, sponsors, and stakeholders. Organizational and cultural changes are often necessary to be successful, and people may lose sight of the potential advantages and benefits of adoption such as adaptability, increased customer value, and higher quality. Increasing visibility of team progress and successes can help in overcoming these hurdles. Keeping customers engaged in team meetings and activities such as testing can keep the momentum going. An agile coach can also help in identifying potential improvements that help enable teams to excel.

Supplier Dependencies

Dependencies on external teams or vendors can cause situations where teams do not have the required products when needed. These “suppliers” may have underlying timelines and deliverables that are not in line with the project teams’ release plans. Projects with fragmented resources may have team members with deliverables from multiple projects on the same timeline. If these problems are not addressed up front, they could lead to potential productivity issues and deliverables that do not meet the customer's value expectations.

Teams should evaluate projects from a supplier dependency perspective. Questions to ask include:

  • Is the project dependent on resources needed by other projects?
  • Is the project dependent on deliverables from another project team?
  • Is the project dependent on external vendors?

Techniques to mitigate the risk of supplier dependencies include:

  1. Include stakeholders across projects in planning meetings and retrospectives to provide visibility on common resource requirements and to make priority calls. Teams with competing priorities need to negotiate where shared resources are used and when. Understanding these resource dependencies can lead to more effective planning sessions and help eliminate surprises later in the project.
  2. Integrate deliverables from other projects in later iterations when they are expected to become available. In some cases, teams may be able to complete development of an initial framework early in the project and integrate supplier-provided components in a future iteration or release. Teams should stay actively engaged with suppliers to ensure any unexpected delays can be factored into the project.
  3. Create a separate release for components that are dependent on vendors. Teams may want to consider creating a separate release that is specifically for the integration of vendor components. Here again, teams should be in regular contact with vendors to assess project risks and dependencies and incorporate any changes needed. Teams may want to explore the creation of a vendor plan or contract to ensure expectations are clear. “A good agile contract establishes the framework for collaboration to occur during the project while providing appropriate levels of protection and risk mitigation… .” (McDonald, 2013, para. 3)

Summary

This paper has highlighted several potential risk areas that a project team should assess before adopting agile, along with various mitigation techniques. Understanding and addressing team demographic challenges will enable better communication, decreased burnout, and increased productivity. Having a plan to manage technical and agile skill gaps will help teams be productive more quickly and help ensure that agile methods are implemented correctly. Fostering an agile culture with strong management support can be essential to team morale and execution. Lastly, having a strategy to address supplier dependences can help eliminate surprises that lead to productivity issues. Teams, management, and stakeholders should assess all of these common risks up front and build an effective risk management strategy to enable healthy, productive teams and project success.

Agile Alliance. (n.d.) The twelve principles of Agile software. Retrieved from http://www.agilealliance.org/the-alliance/the-agile-manifesto/the-twelve-principles-of-agile-software/

Morlan, C. (2013, January 22). Fostering cultural awareness — Right from the Start. Retrieved from http://blogs.pmi.org/blog/voices_on_projectmanagement/2013/01/fostering-cultural-awareness-r.html

Heusser, M. (2006, February 3). Perils and pitfalls of Agile adoption. Retrieved from http://www.informit.com/articles/article.aspx?p=441115

VersionOne Product Blog. (n.d.) Pair programming. Retrieved from http://www.versionone.com/Agile101/Pair Programming.asp

McDonald, K. (2013, May 17). Create a vendor contract while keeping agile. Retrieved from https://www.techwell.com/2013/05/create-vendor-contract-while-keeping-agile

© 2014, Tracy McGee
Originally published as a part of the 2014 PMI Global Congress Proceedings – Phoenix, Arizona, USA

Like what you just read?

Log in or register for a free PMI account to get access 
to even more articles like this one.

Offer from our training partner

Advertisement

Offer from our training partner

Advertisement

Related Content

Offer from our training partner

Advertisement