On pages 58 and 59 of the Agile Practice Guide, there are twenty-one challenges or “pain points” described together with the suggested solution(s) to the problem. However, they are listed in a random, laundry-list fashion without much rhyme or reason to the order. So what I have done is reviewed all the suggested solutions and grouped those challenges that require the same type of solution. These five types of solution are:
- Production of agile charter
- Product backlog/user story definition
- Kanban boards
- Focus on team roles/responsibilities
- Testing implementation
I have already covered the first three solutions, production of an agile charter, production and maintenance of a product backlog, and the use of kanban boards, in the past three posts.
The production of the agile charter was essential for challenges dealing with the context of the project (what is the product vision?, what is the organization’s mission for doing the project?, etc.).
The production, refinement, and maintenance of the product backlog helped with challenges dealing with the requirements of the product and how these are reflected in the user stories that make up the product backlog. It also showed how to adjust the user stories that comprise that backlog in order that the team not bite off more than it can chew during any one iteration.
And the challenges dealing with the process of the project, i.e., doing the work and then reviewing it during retrospectives, were met by the use of kanban boards to visualize those processes, which then in turn makes it easier to pinpoint bottlenecks or barriers so they can be focused on and removed.
The fourth series of challenges dealt with problems that could be solved by clarifying the roles of individual team members (having them work on cross-functional vs. siloed teams, for example), as well as the critical roles of product owner and servant leader.
Finally I’m covering the last two challenges (out of the total 21 challenges presented on pages 58 and 59). These have the comment solution of paying attention to the implementation of testing after the design of a particular feature is complete. Previous solutions have focused on the completeness of the work, which in traditional project management terms would be the Scope Management domain; this solution set is focused on the correctness of the work, which in traditional project management terms would be the Quality Management domain. Specifically, it deals with quality control, the correctness of the product itself (does it meet the expectations of the customer). The other aspect of quality, quality assurance, deals with the correctness of the process, and this is generally taken care of during the retrospectives at the end of each iteration (the use of kanban boards to visualize this process is helpful in this regard).
Now, here are the two remaining challenges or “pain points” that the Agile Alliance Guide discusses in their chart.
- Defects–focus on technical processes using techniques such as:
- Working in pairs or groups
- Collective product ownership
- Pervasive testing (including test-driven and automated testing approaches)
- A robust definition of “done”, i.e., acceptance criteria
- Technical debt (degraded code quality)–like the response to the challenge listed above, focus on technical processes using techniques such as:
- Code refactoring–the process of clarifying and simplifying the design of existing code, without changing its behavior. This is needed because agile teams often maintain and extend their code from iteration to iteration, and without continuous refactoring, this is difficult to do without adding unnecessary complexity to the code (which in itself can increase risk of defects).
- Agile modeling–a methodology for modeling and documenting software systems based on best practice.
- Pervasive testing–involves the cross-functional participation of all quality and testing stakeholders, both developers and testers
- Automated code quality analysis–checks source code for compliance with a predefined set of rules or best practices.
- Definition of done–acceptance criteria that a software product must satisfy in order to be accepted by the user or customer. This prevents features that don’t meet the definition from being delivered to the customer or user.
This concludes this series of posts on the various challenges that may be encountered on an agile project and the various solutions that can be referred to as troubleshooting possibilities for those challenges.
The next section of this chapter, section 5.4, deals with measurements in agile projects. This replaces the earned value analysis used on traditional project management projects, and will be the subject of the next series of posts …
Filed under: Uncategorized |
Leave a Reply