Impediments to Progress and Quality

An impediment is any technical, personal, or organizational issue that inhibits progress being made on delivering product to the customer. Impediments are inevitable. It is always the responsibility of the team to expose impediments as they arise rather than burying them, hoping they will go away. The team is responsible for resolving impediments that lie within its “span of influence” (within which it can effect change). The Team Agility Coach, acting on behalf of the team, elevates all other impediments to management to be addressed. The Product Owner and other management agree to help.

This article provides example of impediments and offers some ideas about addressing them.

Examples of Impediments

At this level… Common impediments include…
Individual team member Related to preparation

  • Lack of training
  • Development environment is not available: hardware, software, tools
  • Team infrastructure is not available: project board, tools

Related to communication and customer

  • Not allowing team members to talk with customers at all
  • Excessive interruptions
  • Having to multi-task
  • Being repeatedly interrupted by too many support issues
  • Analysts working on too many projects at once, being asked questions from too many different developers

Related to project

  • Business Analysts who do not know the customer, what they need, or what is most important
  • Not knowing who represents the voice of the customer
  • Team members making promises inappropriately
Individual team Related to the project

  • Lack of clear project vision
  • Too much Work-in-Progress
  • Unclear definitions of Done
  • Not checking in code frequently

Related to time

  • People do not come to the Daily Stand-up on time
  • People have different work hours, time zones, shifts

Related to the ecosystem

  • Not being colocated
  • Not having an open Team Room
  • Excessive interruptions
  • Abrupt change of plans through management directives
  • Management adding work to the backlog in the middle of an iteration
Cross-team Lack of Value Stream Maps

Lack of timely feedback from other teams

Lack of appropriate integration and test environments

Related to structural

  • Team structure that makes end-to-end functionality difficult to attain
  • Having to reform teams each iteration / release, causing re-learning, trust-building, and re-establishing team dynamics
  • Interfacing with non-Agile teams
Management Product backlog not being updated

Team Agility Coach not being supported by management or team

Deficiencies in the code base

  • Having to deal with old, legacy code that no one knows
  • Required language skills have atrophied over time
  • Poor quality code
  • Lack of documentation (architectural, design)
  • Having to attend meetings not related to development of the project
Testing and QA Developers not wanting to talk with a tester, or a customer

Developers not talking to testers until late in the process

Lack of a testing environment

Taking too long to run tests

Lack of access to data due to confidentiality or confidentiality

Difficulty in performing manual tests

Inability to do automated testing

Lack of tools for testing databases programmatically

Writing tests only after code has been completed

Addressing Impediments

The team identifies impediments in the process of actually doing work. They should surface at least during the Daily Stand-up and the Iteration Retrospection. Whenever an impediment is identified, the Team Agility Coach writes a story for the impediment. The team prioritizes the impediment story and decides whether to resolve as a team or elevate.

In the crush of work, teams are tempted to ignore impediments, or they identify too many impediments and never resolve anything. Both of these are almost always mistakes. The Team Agility Coach must encourage the team to stay disciplined.

Techniques for addressing impediments include:

  • An After Action Review, targeting the impediment
  • A quick improvement workshop (Kaizen) to address the impediment
  • Launching a root cause analysis effort

For ideas about non-colocated teams, see the note about facilitating teams that are not colocated in Team Agility Coach: Practices.