Chapter 5

Preparing the Organization

This chapter provides guidelines for preparing small development organizations for agile software development. It includes preparations for a new agile initiative and general guidelines for transitioning organizations toward higher maturity levels of agile analysis. Figure 5.1 highlights the activities covered in the chapter.

Images

Figure 5.1 Chapter 5 agile analysis and planning activities

The chapter explains how to structure teams by value so that each team can deliver capabilities to customers and users with minimal dependencies on others. The chapter also explains why team dependencies cannot be entirely eliminated. It includes guidelines for forming feature teams and component teams. Also included are guidelines for preparing non-IT divisions new to agile, including the marketing team, financial planners, and compliance officers.

This chapter focuses on small agile organizations of up to ten teams that do not require much inter-team coordination. For guidance on scaled development organizations of collaborating teams, see Chapter 17, “Scaling Agility.”

5.1 Objectives

This chapter will help you

  • Use the purpose alignment model to determine whether a product or capability should be developed in-house or delivered by a third party.

  • Prepare departments and stakeholders new to agile development for an agile initiative.

  • Determine an organization’s target agile maturity level and its readiness for agile development.

  • Know what structural changes to champion if the organization is not at its target maturity level.

  • Understand Kotter’s eight steps for accelerating change in an organization.

  • Use your knowledge of the ways the product is used to optimize productivity by organizing cross-functional teams around usage.

  • Manage the expectations of stakeholders new to agile development.

5.2 This Chapter on the Map

As shown in Figure 5.1, we’ll be examining Prepare the Organization, an activity performed as part of the first zone, Initiation and Planning.

5.3 What Is Initiation and Planning?

In Chapter 4, “Analysis and Planning Activities across the Agile Development Lifecycle,” we grouped analysis and planning work into zones of related activities—the vertical columns in Figure 5.1. The Initiation and Planning zone covers initial analysis and planning activities for new product development or a significant change to an existing product. The activities in this zone include organizational preparation, calibration of the analysis and planning process, product visioning, initial stakeholder analysis, and the development of a product roadmap for the venture. This chapter focuses on organizational preparation.

Many of the analysis activities in this book presume that the enterprise is already following an agile approach. For organizations that have not yet reached an acceptable level of maturity in agile development or business analysis, this zone also includes activities to get them there.

If a transformation is required, it’s unlikely that it will lie within your official sphere of responsibility as a BA, but that doesn’t mean it’s not your concern. As we’ll see in this chapter, your effectiveness as an analyst or consultant lies in the ability to influence change to provide better results for the business. This chapter describes what changes to champion and introduces some of the approaches you can use to effect change in the organization. For a fuller treatment, I encourage you to explore books devoted to the topic, such as the following recommended titles:

  • Leading Change: Why Transformation Efforts Fail1

    1. John P. Kotter, Leading Change: Why Transformation Efforts Fail (Boston: Harvard Business Review Press, 2012).

  • ADKAR: A Model for Change in Business, Government and Our Community2

    2. Jeffrey M. Hiatt, ADKAR: A Model for Change in Business, Government and Our Community (Loveland, CO: Prosci Learning Center Publications, 2006).

  • The Heart of Change: Real-Life Stories of How People Change Their Organizations3

    3. John P. Kotter and Dan S. Cohen, The Heart of Change: Real-Life Stories of How People Change Their Organizations (Boston: Harvard Business Review, 2012).

  • Changing the Way We Change: Gaining Control of Major Operational Change4

    4. Jeanenne LaMarsh, Changing the Way We Change: Gaining Control of Major Operational Change (Upper Saddle River, NJ: Prentice Hall PTR, 1995).

  • Change Management: The People Side of Change5

    5. Jeffrey M. Hiatt and Timothy J. Creasey, Change Management: The People Side of Change (Loveland, CO: Prosci Research, 2012).

  • Master Change, Maximize Success: Effective Strategies for Realizing Your Goals6

    6. Rebecca Potts and Jeanenne LaMarsh, Master Change, Maximize Success: Effective Strategies for Realizing Your Goals (San Francisco: Chronicle Books, 2004).

5.4 How Long Should You Spend Up Front on Initiation and Planning?

As a rule of thumb, the time spent upfront on initiation and planning activities should not exceed 10 percent of the planning horizon. So, if the planning horizon is ten months, as a general rule, you wouldn’t spend more than one month preparing and planning for it. In practice, take the time you need. But if that turns out to be more than three months, start a separate project for initiation and planning.

At the start of every quarter or significant change, revisit the activities in the Initiation and Planning zone. Make adjustments in light of experience and changing circumstances. For example, it may be necessary to add feature teams or reallocate resources due to changing demand.

5.4.1 The Greater the Anticipated Risks, the Greater the Need for Upfront Planning

Generally speaking, the higher the risks anticipated for a venture, the more upfront analysis and planning will be needed. For example, a high-cost, fixed-contract initiative with an external solution provider exposes the business to the risk of high, unexpected costs: missed requirements can result in cost overruns, missed launch dates, and risks to the customer experience. To mitigate these risks, you need to extend activities in the Initiation and Planning zone to allow for a comprehensive risk analysis in the plan.

5.4.2 What’s Past Is Prologue7

7. “Whereof what’s past is prologue.” See William Shakespeare, The Tempest, act 2, scene 1, line 217, PlayShakespeare.com, https://www.playshakespeare.com/the-tempest/scenes/act-ii-scene-1

Tap into the collective wisdom of the organization regarding similar initiatives when determining how long to spend on preparation and planning activities. Reach out to key individuals who were involved in these activities in the past. Ask them which activities can be safely postponed until development and which, in their view, should be performed up front because the cost of delaying them would be prohibitive to a successful outcome.

5.5 The Purpose Alignment Model

Before you start developing a new product or capability—and even before creating the vision for a new product—how do you know if developing it is the best strategy? Use Niel Nickolaisen’s purpose alignment model,8 illustrated in Figure 5.2, for guidance on this question.

8. Niel Nickolaisen, “Breaking the Project Management Triangle,” InformIT, August 20, 2009, p. 2, https://www.informit.com/articles/article.aspx?p=1384195

Images

Figure 5.2 The purpose alignment model

The model can be used to evaluate an entire product, service, or capability of a product or service.

If the product or capability already exists and the question is whether to improve it, determine if it is currently at, above, or below parity with similar capabilities available in the market. If it is below parity and improvements are being considered, or it’s a new product or capability, determine which quadrant it belongs to, as indicated in Figure 5.2, based on mission criticality and market differentiation. Then use the guidelines for the corresponding quadrant to determine whether to maintain parity, develop the capability in-house, outsource it, or develop it in partnership with another company.

5.5.1 Differentiating Quadrant (Top Right)

The model includes four quadrants based on levels of market differentiation and mission criticality. Use the top-right quadrant in Figure 5.2 for mission-critical products or capabilities that are market differentiators. Items landing in this category should be developed in-house by long-lived teams because they have to be continually improved for the product to remain competitive.

5.5.2 Parity Quadrant (Bottom Right)

The bottom-right quadrant in Figure 5.2 is for mission-critical capabilities that are not core differentiators. Parity with the market standard is sufficient for these items, since excellence is unlikely to affect customer choice.

Develop items in this quadrant in-house, or outsource them. Weigh the immediate savings of outsourcing against future costs. Keep in mind that choices made early on can have a significant impact on the cost of future changes.

One example of a parity capability is eBay’s payment processing. Payment processing is a parity capability for eBay because it’s mission-critical but not a differentiator. Early on, when the business case for eBay was, as yet, unproven, it outsourced payment processing to PayPal in order to deliver the capability quickly with minimal upfront investment. By 2002, eBay’s volume grew to the point where it no longer made financial sense to outsource the service, and the company brought it in-house by purchasing PayPal.

Many businesses face a similar decision regarding cloud services, such as AWS (Amazon Web Services). At the outset of product development, the use of these services speeds time to market, provides scalability, and doesn’t require a substantial upfront investment. However, once the business grows, the cost of these services often tips the scale in favor of in-house development.

If an outsourced solution is to be used, explore ways to reduce future costs in case the solution needs to be replaced when volumes rise. Costs can be significantly reduced by building adaptability into the design from the start, such as through strategies like service-oriented architecture (SOA) and the use of outgoing APIs for messages to third-party services.

5.5.3 Partner Quadrant (Top Left)

Use the top-left quadrant in Figure 5.2 for capabilities and products that are differentiators but outside the company’s core mission and competency. For example, consider a training company whose value lies in its intellectual content—the courseware, workbooks, and so on, that it provides to its customers. Suppose that it decides to launch an eLearning platform. The platform is not the company’s core competency, but it is a crucial differentiator. The preferred option is to develop the services collaboratively through a long-term partnership with a third party. That option provides a stable basis for ongoing innovation in a critical area without diverting the company from its core mission.

5.5.4 Who Cares? Quadrant (Bottom Left)

Use the bottom-left quadrant for capabilities that have low mission-criticality and market differentiation. Spend as little resources as possible on these capabilities. Consider excluding them from product development due to their low value to the business.

5.6 Preparing the Infrastructure

For the full potential of agile development to be realized, you have to ensure the right development and testing infrastructure exists—one that supports DevOps and continuous integration and continuous delivery (CI/CD) practices, including automated testing, automated builds, and provisioning. Figure 5.3 illustrates what happens when that infrastructure is lacking. Unfortunately, I still see this situation in some development organizations.

Images

Figure 5.3 Testing without automation

In Figure 5.3, user stories undergo unit tests and low-level integration tests as soon as they’re completed. Once they pass those tests, they are tested against their acceptance criteria in the presence of the development team. If the story fails its acceptance criteria or just does not “feel right” to users, it is sent back for immediate rework. Once the story is accepted (and satisfies the definition of done), it is considered done. So far, so good. However, in this scenario, because the final build-and-test steps involve time-consuming manual tasks, they are delayed until the end of the release cycle.

This approach is better than pure waterfall because low-level technical testing occurs continuously and early instead of at the end of the development lifecycle. But it’s not the ideal approach because it delays testing under realistic production conditions until the end of the release cycle—a period of up to three months. In addition, this approach doesn’t provide the option for the timely release of changes the business wants to implement immediately, such as bug fixes and small enhancements to existing features.

The recommended agile approach, instead, is to use DevOps, incorporating CI and CD practices. With this approach, a work item undergoes its build and final testing steps automatically, as soon as the item has been coded and has passed its initial tests. This automation enables changes to be delivered frequently and reliably to the customer, while actual market deployment is based on the demands of the business. For example, the company may want to hold back a feature until it is mature enough to be competitive in the marketplace or until there are enough supporting features to allow a user to have a better experience.

5.6.1 Transitioning from Manual to Automated Testing

Test automation is key to enabling a company to deliver changes to the market with speed and confidence. If your organization is transitioning toward automated testing, use the test pyramid in Figure 5.4 as a guideline to determine where to focus the automation effort for maximum benefit.

Images

Figure 5.4 Test pyramid

The figure illustrates the relative prevalence of tests by test type. The type with the most tests is at the bottom of the pyramid. The type with the fewest is at the top. (Other versions of the pyramid, such as Martin Fowler’s, may vary from that shown in Figure 5.4.)9

9. Martin Fowler, TestPyramid, MartinFowler.com, November 15, 2017 (originally published May 1, 2012), https://martinfowler.com/bliki/TestPyramid.html

At the top of the pyramid are manual tests. These should be the least numerous because they are the most time consuming and expensive to run.

Next are automated user acceptance tests. There should be fewer automated tests of this type than the types below it on the pyramid. There are several reasons for this:10

10. Fowler, TestPyramid.

  • User acceptance testing (UAT) tends to be brittle. Changes to the user interface can easily break existing tests.

  • Automated UAT scenarios are expensive to write.

  • User acceptance tests have a propensity for nondeterministic behavior (i.e., they provide inconsistent results for the same test, making them difficult to diagnose).

Automated lower-level integration tests verify the connection between one software component and another, such as the connection between a programming unit and an API to which it sends messages. These automated tests should be more numerous than user acceptance tests because they are less brittle. Most automated tests should be unit tests, because

  • There are more low-level units to test than higher-level components.

  • Unit tests are frequently reused in regression testing and are a critical capability for enabling reliable, continuous delivery.

  • Automated unit tests are less subject to change than other test types.

Use the testing pyramid to guide the transition to test automation for software that’s already been written:

  • Focus test automation, at first, on end-to-end UAT (at the top of the pyramid), since you won’t need many of these relative to other types of tests.

  • Next, focus on automating lower-level integration tests.

  • Finally, create automated unit tests (bottom of the pyramid) for existing software units.

When prioritizing the automation of new software units, advance through the pyramid in the opposite direction, from the bottom up. Developers should begin creating automated unit tests and low-level integrations tests as part of their coding process. All new software units should include these tests and pass them before being accepted. Expect testing-automation activities to take up about 50 percent of a developer’s coding time. As an analyst, you collaborate with others to specify UAT.

5.6.2 Timing the Automation of the Build and Distribution Processes

When transitioning to automated build and distribution processes, focus investment on new products, because decisions made early in the product’s lifecycle have a disproportionate impact on future automation costs. For example,

  • A system designed at the outset to use Web Services (e.g., AWS) for its build and distribution processes can be built and scaled later at much less cost than one that relies heavily on manual intervention.

  • New releases of a product designed at the outset as a website are easier to distribute reliably than a product designed as a mobile app or as a laptop application. The former requires updates only at the server end, whereas the latter involves users’ participation—introducing unreliability because some users may not participate.

5.7 Organizing Development Teams

I once attended an address given by a vice president of software development before his retirement. “If I had to do it all over again,” he said, “I would have organized teams differently.” He had realized that he had made a mistake organizing his teams by competency: one team for business analysts, a data layer team, an interface team, and so on. This approach had caused team dependencies that, in turn, led to delays whenever a team had to wait for others before it could deliver stories into production. In this section, we look at the guidelines for forming agile teams that reduce dependencies and optimize productivity.

5.7.1 Guidelines for Forming Agile Teams

5.7.1.1 Everyone Works for the Customer

Encourage a culture where all team members, whether they’re business SMEs or programmers, work for the customer, not for internal stakeholders or departments.

5.7.1.2 Foster a Whole-Team Culture

Encourage a whole-team culture—where the entire team is responsible for reaching team goals, and everyone, regardless of job title, shares responsibility for success and failure. Encourage team members to have a collaborative mindset in which everyone contributes to shared goals according to their skill set, not their formal roles.

5.7.1.3 Maximize Self-Sufficiency

Where possible, form teams that include the competencies (skills, knowledge, and abilities) required to deliver value. Include business stakeholders and practitioners on the same team. Based on their knowledge and experience, business stakeholders may participate as SMEs, business analysts, testers, or product owners.

By including as many business and technical capabilities as possible within the team, you reduce dependencies and handoffs and accelerate decision-making. The cross-functional composition of the team also prevents the emergence of silos and the tendency to create factions.

Note that in many cases, you may need to share resources between teams. For example, there may not be enough work to occupy a UX designer or business analyst on a full-time basis, so that person may be made available to a group of teams. These shared team members form part of the extended team.

Some agile frameworks, such as Scrum, advise that team dependencies be eliminated by organizing self-sufficient teams, where each team contains all the skills required to deliver value.11 In practice, though, it’s usually not possible to remove all dependencies because of several factors:

11. For example, the Scrum Guide states, “Scrum Teams are cross-functional, meaning the members have all the skills necessary to create value each Sprint.” Ken Schwaber and Jeff Sutherland, The Scrum Guide: The Definitive Guide to Scrum—The Rules of the Game, Scrumguides.org, 2020, 5, https://www.scrumguides.org

  • Features are intentionally designed to be well-integrated. This results in dependencies between the feature teams that support them.

  • The product is often too complex for any single team to contain all the competencies required to deliver value.

  • Component teams are often formed to maintain commonly used software components. This results in dependencies between feature and component teams.

5.7.1.4 Self-Management

Each team should make tactical decisions and decide for itself how to, when to, and who will carry out the work, while leaving bigger, strategic decisions to senior-level decision makers.

5.7.1.5 Keep Teams Small

Each agile team should consist of about five to ten members. At least some of these members should be jacks-of-all-trades, adaptable enough to pitch in as needed (e.g., performing QA, BA, and UX tasks as required).

5.7.1.6 Favor Full-Time Participation

As a general guideline, members should be fully dedicated to one team so they can focus entirely on the team goal and reduce time lost to task-switching between teams. It is likely, though, that some members will have to be shared, perhaps due to a lack of resources or because there isn’t enough work in a competency to justify a full-time person. Cohn recommends that teams form a consensus on simple rules regarding sharing, such as “No person can be assigned to more than two projects” or “Everyone on the team must be at least x% dedicated to the team.”12

12. Mike Cohn, Succeeding with Agile (Boston: Addison-Wesley, 2010), 196–197.

5.7.2 Organize around Value

Organize teams around value, not competencies, so that each team can deliver value to an end user or customer with minimal dependencies on other teams. Figure 5.5 is an example of teams organized around value in a small development organization.

In the example in Figure 5.5, the product is small enough for each team to be able to contain all the required competencies.

Note that the boxes within each team in Figure 5.5 refer to competencies, not individuals. An individual may have more than one competency, and a competency may be practiced by more than one individual on the team.

The benefit to the business in organizing by value is that it can adapt the product quickly and reliably in response to changing circumstances, new opportunities, and threats.

5.7.3 Feature Teams versus Generic Teams

As a general rule, the best organizational strategy is to create long-lived feature teams that each specialize in a product area. A product area is a subset of the product representing a high-level use case (usage) or feature set. Over time, the team gains expertise in its product area, resulting in optimized performance and reduced turnaround time. For an example of teams of teams by product area, see Figure 17.4 in Chapter 17.

The exception is during the early stages of new product development when teams should be generic. Generic teams at that time enable managers to allocate resources dynamically in response to changing demand. Once the product has stabilized, though, and demand is more predictable, teams should organize into long-lived feature teams.

5.7.4 The Extended Team

Once a product matures and becomes more complex, you typically can’t contain all the required competencies within a small agile team of about ten or fewer members. Fully self-sufficient teams are no longer possible. Instead, teams need to collaborate. They often need to share members, too (as noted in section 5.7.1.6).

Figure 5.6 illustrates the structure of a feature team for a mature product, highlighting dedicated and shared team members. The following is one example. It’s not a general prescription. Individual team structures will vary.

The core development team in Figure 5.6 consists of one team analyst and three or more full-time developers. The extended team includes shared members: these are marketing and business SMEs, high-level business analysts, a development manager shared among no more than two teams, a UX designer shared among one to three teams, QA and DevOps professionals to coach the team in automated testing and integration, and support for the software components used by the team.

5.7.5 Why Organizing by Competency Is Bad for the Business

As noted earlier in the chapter, it’s a common mistake to organize teams by competency instead of by value. Team organization may sound like an issue of little concern to the business or business analyst, but it’s not, because poor organization delays time to market.

Figure 5.7 illustrates why. It depicts a development organization for a messaging product, organized by competency.

Images

Figure 5.7 Teams organized by competency (not advised!)

In Figure 5.7, there is one team to handle high-level BA and a team for each technical layer of the application: ingestion (loading messages into the app), data layer, API, front end, and Web server. The trouble with this arrangement is that no single team can deliver value on its own. For example, a feature to add a new message type requires

  • Analysis by the BA team.

  • Work by the ingestion team to load the new message type into the system.

  • Work by the data layer team to enable the new message type to be stored in the database.

  • Work by the front-end team to allow the new messages to be displayed.

If any of these teams finishes early, the feature can’t be released any sooner. The feature is only releasable once all the other teams have completed their work. This structure also increases the number of handoffs and approvals per feature. Each handoff introduces a time lag to wait for approvals, to plan, and to allocate tasks for the next team—increasing the overall time it takes to bring change requests to the market. If teams are currently organized this way, champion transformational change to prevent these negative impacts. As we’ve seen, that means organizing teams by value into feature teams.

5.8 Managing Stakeholder Expectations about Agile Development

If you set appropriate expectations about agile development from the start, stakeholders are more likely to take the long view when problems arise (as they inevitably will). Let’s look at examples of common stakeholder expectations and how to manage them.

5.8.1 The Negative Expectation That Requirements Delayed Are Requirements Denied

A common expectation of stakeholders new to agile development is that requirements that don’t make it into the first cycle will never get implemented. Stakeholders have often learned this lesson from negative experiences with waterfall development. The consequence is stakeholders who assign high priorities across the board to requirements items. This outcome is anathema to agile development, since the approach is based on the phased rollout of requirements over time.

To head off this problem before it becomes an issue, meet with stakeholders early on to explain the agile trade-off: the customer gets the benefit of shortened time to market and continuous delivery of features instead of the long lag time that is typical of waterfall processes. However, to obtain those benefits, business stakeholders have to prioritize some requirements over others because agile development is, by nature, incremental. Another advantage of agile development to stakeholders is that they can change their minds at any time and reprioritize requirements based on changing circumstances.

Sometimes it helps to flip the terminology: instead of speaking about prioritizing requirements, talk about sequencing them—reframing the conversation from one about values to a practical one about problem solving.

Make sure stakeholders also understand that they don’t have to make prioritization decisions on entire features. For example, they may decide to implement some stories of Feature X first, followed by some stories for Feature Y, followed by more stories for Feature X.

There’s nothing more persuasive than the evidence of one’s own eyes, though, to convince stakeholders that agile’s incremental approach works and that requirements delayed are not requirements denied. Provide opportunities for stakeholders to meet teams and customers who have been using agile development successfully. Arrange for experienced agile teams to invite new stakeholders to sit in as observers during product demonstrations.

5.8.2 Productivity Expectations

A few years ago, I was speaking with an executive about his company’s planned agile transition. He told me that stakeholders were very enthusiastic about “agile getting their products to market much quicker.” I should have been pleased, but I was concerned. Business stakeholders sometimes mistake agile’s promise of early delivery to mean that they can get all the requirements they want in much less time than waterfall. The reality is not so straightforward. For example, in Chapter 2, “Agile Analysis and Planning,” I quoted a QSM study that found that agile projects received a 16 percent productivity increase compared to the industry average.13 It is a significant benefit—but far from the expectations of “several 100 percent” gains in productivity made in the early days of Scrum.14

13. QSM Associates, The Agile Impact Report, Proven Performance Metrics from the Agile Enterprise (Boulder, CO: Rally Software, 2015), 5, https://www.rallydev.com/sites/default/files/Agile_Impact_Report.pdf. Productivity was measured as an aggregate of tooling and methods, technical difficulty, personnel profiles, and integration issues.

14. Ken Schwaber and Mike Beedle, Agile Software Development with Scrum (Upper Saddle River, NJ: Prentice Hall, 2002), viii.

On the other hand, the same study found that “Agile Projects are 37% faster to market than [the] industry average.”15 How can agile development result in faster time to market without corresponding increases in productivity? The answer lies in what is delivered: agile development enables a business to bring something to market quickly—but not the whole wish list. What agile development delivers quickly is a minimum marketable product with a limited set of features. Make sure stakeholders understand that the approach speeds time to market by focusing effort on the highest-value features, not by delivering the same set of features in less time. The value of agile development lies in learning that not all the requested features are actually needed—or that less-costly versions will be able to get the job done just as well.

15. QSM Associates, The Agile Impact Report, 4.

Another common but incorrect expectation is that productivity improvements will come quickly as an organization transitions to agile development. More commonly, it can take a few months to a few years for teams to get good enough at agile development for improvements to be realized.

Stakeholders also can have mistaken expectations about what will be delivered frequently. Many expect that software updates will be delivered to the market at least every one to two weeks (the length of a typical Scrum sprint). That may be the case for some updates, but it’s often not so for major features. Although deployment to a testing environment occurs continuously, it can often still take two to three months to deploy significant changes to the market. The benefit of agile development, in this case, is that the delivered solution will be

  • More relevant—since it is based on current priorities and requirements.

  • More likely to delight the user—since it relies on user feedback throughout the development process.

  • More cost-efficient—because it weeds out low-value requirements and eliminates administrative waste.

5.9 Preparing the Customer–Developer Relationship

In Chapter 1, “The Art of Agile Analysis and Planning,” you read about a company whose meetings kept ending in acrimony because business stakeholders didn’t believe the developers’ estimates. The problem, at its heart, had to do with the relationship between business stakeholders and the development organization. In this instance, the relationship was contractual. In a truly agile organization, it’s collaborative, with both sides working together to problem-solve as circumstances change.

Prepare both parties in the relationship by gaining early consensus regarding norms of behavior. Following XP guidance, coach them to codify this consensus in a bill of rights and responsibilities for the customer and the development team. The customer, in this context, refers to the entity representing customers and stakeholders (e.g., a Scrum product owner (PO) or a customer team).

5.9.1 Customer’s Bill of Rights and Responsibilities

Following is an example of a customer bill of rights and responsibilities.

5.9.2 Developers’ Bill of Rights and Responsibilities

Following is an example of the developers’ bill of rights and responsibilities.

5.10 Agile Financial Planning

Prepare financial planners for changes in the way planning is performed on agile initiatives in contrast to traditional waterfall projects. Following is an overview of those differences.

5.10.1 Measuring Success

In traditional waterfall project management, you measure success by the degree to which the solution delivers specified outputs (the deliverables) at a given cost within a specified time. You can’t use this approach on agile software initiatives because there is no baselined set of requirements to be delivered: by intention, agile requirements are subject to change at any time.

Agile initiatives measure success on the basis of desired business outcomes16 rather than prespecified outputs. You don’t ask, “Did the customer receive a product with the specified features on time and budget?” Instead, you ask, “Did the customer increase market share as much as expected?” or “Did it get the expected return on investment?”

16. Michael F. Hanford, “Program Management: Different from Project Management,” IBM Developer Works, May 14, 2004, http://www.ibm.com/developerworks/rational/library/4751.html

5.10.2 Discovery-Driven Financial Planning

Traditional financial planning approaches rely on past data to make projections into the future. This approach doesn’t apply when the product is novel because there is no historical or trend data to draw from. In such circumstances, financial planning methods need to take uncertainty into account and bake it into the plan.

One approach to doing that is by discovery-driven planning. With this method, instead of projecting an expected bottom line from historical trends, you begin by specifying the bottom line that must be achieved for the venture to be successful. Then you work backward to identify the assumptions you need to make to get there (e.g., assumptions about the price customers will pay and support costs). These assumptions then drive the planning process: you create a plan to test critical hypotheses as early as possible.

5.11 Preparing the Marketing and Distribution Teams

If the marketing team is new to agile development, you’ll need to help it prepare for changes resulting from the approach. Prepare marketers to expect that only the release date and goals may be committed at the start of a release cycle; the features may not be determined until close to the scheduled release date. As a result, marketers may not be able to specify the content of advertising copy until close to the release date.17 This is in contrast to traditional waterfall development, where marketing teams obtain a list of committed features with a comfortable lead time.

17. Cohn, Succeeding with Agile, 39.

In many organizations, this plays out as follows: The marketing group sets the release date based on business conditions. It sends marketing representatives to the feature teams as extended team members. They collaborate with developers to establish the lead time required before a general release to allow for marketing, testing, and deployment activities. They then work backward from the release date to set a cut-off date that provides the necessary lead time. When the cut-off date arrives, only those features deemed done are included in the release and promoted in advertising.

Prepare the marketing team for changes at the front end of development as well. Explain that they will need to use new methods to analyze the market because traditional research methods don’t apply to novel products. The product class may be so new that there are no comparable products to compare it to, and customers can’t reliably predict what they’ll want. Discuss the use of circumstance-based market segmentation. The approach is based on the insight that “People don’t want to buy a quarter-inch drill. They want a quarter-inch hole.”18 In other words, they’re not really looking for a product; they’re looking to get a job done. Following the approach, researchers recruit customers in the field and interview them to learn what jobs they are trying to accomplish, the constraints that influence their choice of product, and what other products they’ve sometimes purchased for the same job.

18. Harvard Business School professor Theodore Levitt, as quoted in Clayton M. Christensen, Scott Cook, and Taddy Hall, “What Customers Want from Your Products,” Working Knowledge, January 16, 2006, https://hbswk.hbs.edu./item/what-customers-want-from-your-products

5.12 Preparing Channels and Supply Chains

If the company is an established incumbent developing a novel product, it should plan for changes to its existing distribution and supply channels. An established company’s current market, distribution channels, and supply chains often are not appropriate for the new product and must be developed in an iterative, agile manner, just like the product itself.

5.13 Preparing Governance and Compliance

Governance is concerned with overseeing an initiative by monitoring its progress and expenditures to determine how well it is adhering to its plan. Compliance is concerned with ensuring the initiative conforms to standards and guidelines—both internal to the company and external (e.g., ISACA/CMMI Institute’s Capability Maturity Model Integration [CMMI], Institute of Electrical and Electronics Engineers [IEEE], Information Technology Infrastructure Library [ITIL], and Sarbanes-Oxley Act [SOX]).

Agile development includes some practices that, at least at first glance, appear to run counter to governance and compliance in traditional organizations. Examples of these agile practices include minimal documentation, lack of formal sign-offs and the postponement of decisions to the last responsible moment. Despite this apparent conflict, agile development can usually be brought in line with governance and compliance regulations if the appropriate preparations and adaptations are made.

If governance and compliance officers are new to agile development, use the following strategies to prepare them for an agile initiative.

5.13.1 Challenge Compliance Assumptions

Be willing to challenge assumptions about compliance rules. There is often much more room for give-and-take than you might first expect. The following real example is instructive: A company was planning to use a third-party vendor for new product development. The auditor was concerned that the vendor might change agreed-upon requirements. This concern was expressed in the following rule: “If a vendor logs in to the requirements repository, the vendor is prevented from changing requirements.” The lead analyst determined that the rule would not be easy to enforce, so he pushed back. They agreed that only a “controlled environment” would be needed for compliance—and that the unique, trackable login identification already provided by the repository on changes was sufficient.

5.13.2 Do Compliance After Process Design

One of the most useful pieces of advice regarding compliance and agile development comes from Andre Franklin, a process and systems analysis expert in drug research and development services—a highly regulated sector—who provided this guidance: Don’t have auditors determine what the process should be. Design the process first the way you want it. Then bring the process to auditors for approval. That way, practitioners do what they do best—design processes—“and auditors do what they do best—audit processes for compliance.”

5.13.3 Focus on Goals, Not Means

Another effective strategy is to argue that though an agile process may use nontraditional lightweight methods, it still achieves the goals behind compliance regulations.

For example, it is sometimes assumed that testing standards strictly govern the testing process, whereas they often only define goals for testing; that there must be a well-defined testing process in place; that it must be followed; and that it must lead to a low defect rate. There is often a great deal of latitude, however, on how to achieve those goals. The DevOps automated environment used in agile development often achieves the goals of standards, because it results in high levels of testing, leading to low defect rates. For example, Cohn reports that CMMI compliance up to level 5 has been achieved with agile frameworks.19

19. Cohn, Succeeding with Agile, 400. Cohn lists Philips Research and Systematic as examples of companies achieving CMMI compliance with agile processes.

The same is true concerning documentation: while the types of documents required for compliance are often nonnegotiable, there is often flexibility regarding the form the documentation takes. Even minimalist documentation, in the form of photo images of whiteboard designs, can be sufficient to satisfy compliance regulations.

Concerning ISO 9001, a study of agile organizations concluded that “an agile process [can] produce documents that can be used (1) as proof of conformance and that (2) can be reviewed as part of ISO 9001’s verification and validation” and that “there will be no problems whatsoever when a company wants to use agile development and still keep its ISO 9001 certificate.”20

20. Tor Stålhane and Geir Kjetil Hanssen, “The Application of ISO 9001 to Agile Software Development” (conference paper, Product-Focused Software Process Improvement, 9th International Conference, PROFES 2008, Monte Porzio Catone, Italy, June 23–25, 2008), p. 14.

5.13.4 One-Time Experiments

If you aren’t successful at gaining governance and compliance adaptations for agile development at the enterprise level, try negotiating such governance changes as one-time experiments.

5.14 Preparing for Increased Demand on Resources

If the organization is new to agile development, engage functional groups and alert them to expect an increased demand for human resources to support agile methods. If the resources are required across multiple initiatives and projects, the organization may need to follow an extensive process to review the request against workforce capacity. A central body such as the project management office (PMO) may need to be called in to help with the allocation of talent.

Following is an example of the number of resources that might be expected to support an agile development initiative (individual cases will vary):

  • One business stakeholder, who is comfortable making decisions, for each team of five to ten people, acting in the role of team-level PO.

  • Business SMEs, as needed, dedicated to feature teams or shared among a group of teams as extended team members. These individuals must be prepared to make themselves available throughout the development cycle rather than only at its ends, as is the case with waterfall development.

  • Business analysts dedicated or shared among a group of teams.

In addition to these requirements, technical competencies will also be required. They may be fully dedicated to a team or shared as part of the extended team, as indicated in the example in Figure 5.6.

5.15 Preparing an Enterprise for Agile Development

In the preceding sections, we focused on preparation for a specific agile initiative—a new product or significant capability. But these guidelines presume that the organization already has some degree of maturity using agile as an approach for product development. If the organization is not yet there, you, as a business analyst, should take steps to influence change. (This added work will not be necessary, however, if the organization’s maturity level is high.) Start the process by preparing the business case for transitioning to a higher level of maturity in agile development and analysis. Use the recommendations in this chapter to identify the current and target levels of agility. Include industry statistics and the benefits of agile development, and find an executive who will champion the effort.

A critical strategic planning activity when transitioning to agile development is the development of a change management approach. It should describe how the change will be communicated to the organization, how people will be trained in agile techniques, how resistance to change will be managed, and how roles and responsibilities will be defined. If you’re a team-level analyst, these issues are unlikely to fall within your formal sphere of duties, but they do fall within your sphere of influence. That’s because, as an analyst, your role is to be an agent of change within your organization. It is your ability to influence and convince others (e.g., through stealth change management) that makes you effective. That power often extends beyond your formal duties.

I feel passionately about this issue because so much of the organizational change I have been involved in has been due to visionary BA practitioners wielding outsized influence because of the high regard in which they were held by their peers. It’s worth noting, though, that while you, as an analyst, are a catalyst for change, the change must be supported by a coalition of committed executives across the organization and by representatives at all levels for it to be sustainable—and this support must be consistent and long-lived. Without a broad and deep commitment, it’s difficult to maintain successes over the long period, and old habits eventually return—an unfortunate situation I have seen in other organizations.

If the organization’s level of maturity in agile development is already high, a full change management process may not be needed. If an extensive transformation is called for, then a process should be instituted with a full-time change management lead. The following sections describe some of the activities to consider in your change management approach.

5.15.1 Agile Fluency Model

The first step in getting from a current to a desired level of agility is to determine what those levels are. Use the agile fluency model, devised by Shore and Larsen,21 to grade your organization’s current and target levels of agile fluency. It characterizes each successive level as a zone, as follows:

21. James Shore and Diana Larsen, “The Agile Fluency Model: A Brief Guide to Success with Agile,” ThoughtWorks, March 6, 2018, https://martinfowler.com/articles/agileFluency.html

  • Zone 1: Focusing. Teams produce business value.

  • Zone 2: Delivering. Teams deliver value on market cadence (i.e., based on demand from the market).

  • Zone 3. Optimizing. Teams lead their market.

  • Zone 4. Strengthening. Teams make their organizations stronger.

Zone 4 is the highest agility level, but it’s not necessarily the correct destination for every organization. Your goal should be to choose the right target zone (or zones) for the situation. The entire enterprise doesn’t need to set the same target. Guidelines for assigning zones are provided in the following sections.

5.15.1.1 Zone 1: Focusing

Assign the Zone 1, Focusing, level if teams have absorbed agile fundamentals and can work collaboratively and transparently. These teams are benefiting from agile practice, but their processes are not repeatable. Zone 1 is an appropriate target for teams at the start of an enterprise transition when they are experimenting with the process. This zone is also a sufficient target level for teams working on short-lived software systems.

5.15.1.2 Zone 2: Delivering

Assign the Zone 2, Delivering, level if processes are repeatable, benefits are sustainable, and productivity and adaptability are high. This zone is an appropriate target for teams that will be working on systems or products that will be enhanced over a long period.

5.15.1.3 Zone 3: Optimizing

Assign the Zone 3, Optimizing, level if the organization is developing disruptive products and services. Advancement to this level typically requires structural change.

5.15.1.4 Zone 4, Strengthening

Zone 4, Strengthening, is for organizations using innovative approaches to management theory and practice.

5.15.2 Transitioning the Team

If the development team has not practiced agile development before, a coach should mentor the team for the first couple of months, after which you (the analyst) or another full-time team member, such as a ScrumMaster, should take over the role. At this time, the coach moves to the sidelines, returning to work with the team as needed.

The aim should be to advance the team’s agile fluency level to the desired target zone, according to the agile fluency model. The focus should be on improving the structural aspects of the team. The Tuckman model,22 which describes the stages of a maturing team, may be used to guide these improvements at the team level. Teams should be guided through the forming stage (where there is a high dependence on the leader), to storming (where team members jostle for position), to norming (where consensus forms), to performing (where the team is united in purpose and self-sufficient).

22. Denise A. Bonebright, “40 Years of Storming: A Historical Review of Tuckman’s Model of Small Group Development,” Human Resource Development International 13, no. 1 (2010): 111–120, https://doi.org/10.1080/13678861003589099

5.15.3 Transition Activities at the Enterprise Level

If the organization is new to agile development or is practicing it but struggling with the approach, a full change management process will be needed to improve agile practices across the enterprise. The following sections provide guidelines for creating and accelerating that change according to Kotter’s eight-step process.

5.15.3.1 Kotter’s Eight Steps for Accelerating Change

John Kotter has described the following eight steps for accelerating change in an organization:23

23. John Kotter, 8 Steps to Accelerate Change in Your Organization: With New Insights for Leading in a COVID-19 Context, Kotterinc.com, 2020, pp. 10–38, https://www.kotterinc.com/wp-content/uploads/2020/06/2020-8-Steps-to-Acceperate-Change-eBook-Kotter.pdf

  • “Create a sense of urgency.” Generate and sustain a sense of urgency about the transformation. Identify and communicate a big opportunity that is available today but may be gone tomorrow. Explain what steps need to be taken to get there, the advantages in succeeding, and the costs of failure.

  • “Build a guiding coalition.” Create a diverse coalition to guide the transformation. Seek out change agents. The alliance should represent all levels of the organization, functions, and locations.

  • “Form a strategic vision and initiatives.” Strategic initiatives are “targeted and coordinated activities that, if designed and executed fast enough and well enough, will make your vision a reality.”24 The vision communicates how the future will improve upon the present, motivates product developers and stakeholders, and helps them align their efforts toward a common purpose.

    24. Kotter, 8 Steps, 18.

  • “Enlist a volunteer army.” Create a movement of people within the organization motivated by the vision for change. Kotter reports that 15 percent of an organization adopting the change is enough to generate momentum. At 50 percent, the change is sustaining.25

    25. Kotter, 24.

  • “Enable action by removing barriers.” Remove bureaucratic practices that deter and decelerate change. Find out which barriers have stood in the way of past improvement efforts.

  • “Generate short-term wins.” Generate and communicate tangible, small wins that customers and stakeholders care about in order to motivate volunteers.

  • “Sustain acceleration.” Sustain a sense of urgency over the long term until the vision is achieved.

  • “Institute change.” Create lasting change. Where existing frameworks are effective, graft the changes onto existing structures. A center of excellence (CoE) supports, disseminates, and sustains best practices.

The approach used to integrate agile practices depends on the organization’s agile maturity level. If the organization is successfully using agile methods, the integration will have already occurred. If the organization is using agile methods but is struggling, coaches should be brought in to identify and improve practices, and a CoE should be created (if one does not exist) to promote best practices. A change management process should be instituted to determine the target agility level (or levels) and manage the transition of the organization to the desired future state.

5.15.3.2 Organizations with No Agile Experience

If the organization has no experience, institute a full change management process for the transformation with a lead change manager to head the transformation. A CoE should be created to support and sustain the change.

The best results come from using both a bottom-up and top-down approach to the transition:

  • Prove the value proposition with a few pilot initiatives.

  • Gain executive support at the highest levels of the organization, up to the CEO, in order to communicate the strategic importance of the transformation to the company. Develop a community of volunteers as described by Kotter to drive the change (see section 5.15.3.1).

  • Let the first teams experiment with practices to learn what works best and when.

  • Communicate and sustain best practices through tools, techniques, and training provided by the CoE.

The ideal pilot initiative is small and mostly self-contained—able to be implemented by a team or small group of teams with minimal inter-team dependencies. Give the first agile teams a high degree of freedom to experiment with agile development frameworks and practices. Encourage them to hold open houses to share their experiences and successes. Iteration reviews are an excellent opportunity for these events.

During the broader rollout, teams should focus on improving processes so they are repeatable and sustainable. As the lead on agile analysis and planning, you support this objective by developing techniques, tools, practices, and processes in the competency. These tools should be disseminated and maintained by a CoE in business analysis or agile development.

Don’t aim for uniformity across teams. For example, teams working primarily on customer-generated requests may choose a Kanban process because it is optimized for learning. In contrast, teams working on strategic product-wide initiatives may choose a timeboxed approach because it ensures that all teams will be free at the same time to make commitments.

In the final phase, extend the agile transition out to the development organization as a whole. During this phase, establish a standard set of agile analysis and planning techniques, tools, practices, and processes.

5.15.4 Transition Timeline

It can take six months or more to get good enough at agile development to begin to realize improvements. The timeline for a complete enterprise transition varies widely according to the organization’s culture, structure, and level of competency in agile development. To give you one example of how such a transformation can play out, the following is a case study, as it unfolded for one of my clients. The client reported these results at the end of Year 2 in the timeline.

5.15.4.1 Initiation (Year 0)

At the start of the transition, the total number of teams in the organization was one thousand. Five hundred of these were software teams. Aside from a few teams, none were agile. The plan was to transition all one thousand teams.

5.15.4.2 Years 1 and 2

The transition began with a single business area. At the six-month mark, the rest of the enterprise started to transition. By the end of the second year, the organization had transitioned at least seventy teams to agile development.

5.15.4.3 Year 3

In Year 3, the organization plans to bring a further thirty-five teams to Zones 1 and 2 of the agile fluency model. During this time, it will be focusing on the standardization of practices.

5.15.5 Communications Plan

The change management plan should contain a communications plan. The plans should be supported by an active and committed coalition of sponsors and volunteers. Measures in the change management plan, such as stakeholder analysis and the identification of resistance, should drive the communications plan.

The communication plan should describe the communication methods to be used. Aim to optimize the quality of communications within the team, between teams, and between teams and business stakeholders. Use the highest-quality mode possible. In order of preference, these modes are

  • In-person conversation.

  • Video call.

  • Virtual meeting.

  • Asynchronous communication: Methods include wikis, SharePoint, messaging services, email, and updates made through software applications and services.

  • Conference call (audio).

Teams are increasingly synchronizing their efforts through the asynchronous approach: when CI/CD is practiced (as is advised), then updates to version control and code repositories serve to communicate changes across teams. Changes to requirements, their priorities, and their statuses can also be tracked through requirements management tools.

If teams are colocated, use in-person communication as your preferred method of contact; use the lower forms only when necessary. If teams are distributed, favor video calls because members can see who’s speaking and read body language. The next best option is Web conferencing that enables shared presentations and communication via text or voice. Examples are WebEx and GoToMeeting. This is a good option if the conversation is mostly one-way (e.g., a status update). Use telephone conference calls only as a last resort.

5.15.6 Agile Enterprise Transition Team

If there is no other body in place to do so (such as an agile CoE or a PMO), create an agile enterprise transition team to champion agile practices within the organization and provide resources for those who need assistance applying them. The team should meet regularly (about every two weeks) and keep its own backlog of work items. More information on the enterprise transition team can be found in The Enterprise and Scrum, by Ken Schwaber.26

26. Ken Schwaber, The Enterprise and Scrum (Redmond, WA: Microsoft Press, 2014).

5.16 Determine Organizational Readiness

The following checklist summarizes many of the organizational issues discussed in this chapter. It may be used to verify whether an organization is ready for agile development and to identify readiness gaps that still need to be addressed. The evaluation should be made by a change manager, the PMO, or a CoE with the input of seasoned agile practitioners.

5.16.1 Organizational Readiness Checklist

Use the following checklist of key questions to determine organizational readiness for agile initiatives.

Images Does the culture invite change and innovation and support a customer focus?

5.17 Chapter Summary

Here are the key points covered in this chapter:

  • Use the purpose alignment model—a chart mapping criticality against market differentiation—to develop a high-level strategy for new features (e.g., whether to develop features in-house, through partnerships or outsourcing).

  • Organize teams by value. Each team should be as self-sufficient as possible, self-managing, and small (five to ten members).

  • Establish an agile culture through customer and developer bills of rights: the customer is the sole person responsible for managing and prioritizing the stories in the product backlog; the development team has the exclusive right to make and update estimates.

  • Use circumstance-based market segmentation to analyze the jobs customers might want to use the product for. Organize teams around those jobs.

  • Integrate and test continuously, but expose features to the market based on the demands of the business.

  • Use the agile fluency model to grade an organization’s level of agility as focusing (teams produce business value), delivering (value delivered on market cadence), optimizing, or strengthening.

5.18 What’s Next?

This chapter focused on organizational preparations for agile development. In Chapter 6, “Preparing the Process,” we focus on preparing the process—that is, the steps to set up the agile analysis process for an upcoming initiative.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.116.36.192