Chapter 14

Ten Ways Enterprise Agility Improves Product Delivery

IN THIS CHAPTER

check Improving agility and transparency

check Making your workplace more fun and productive

check Increasing customer satisfaction

check Boosting quality while mitigating risk

When you’re trying to convince your organization’s leadership or your customers to invest in enterprise agility, you need to highlight the many advantages it has to offer. In this chapter, I list ten of the most valuable benefits.

Increasing Agility

One of the advantages of enterprise agility and iterative, incremental product delivery is that they enable organizations to respond quickly and creatively to all sorts of changes, including the following:

  • Evolving customer needs
  • New technologies and approaches
  • Emerging opportunities and threats
  • Changes in the industry and marketplace

Although large organizations can certainly plan ahead to respond to change, change often occurs at a rate that exceeds the ability to plan for it. Modern organizations need to be agile to keep pace with the rate of change.

Boosting Innovation

Enterprise agility drives innovation in numerous ways, including the following:

  • Solutions involve collaborative input from customers and developers, who are the closest to the product, opportunistically merging business and technical perspectives.
  • Developers work from user stories instead of detailed requirements, so they have more freedom to develop innovative solutions, adapting just in time to current context and new insights.
  • Developing in product increments enables everyone to interact with working versions of a product, which sparks more creative ideas. That also enables more responsive “steering” based on current feedback.
  • Cross-functional team members have broader knowledge and skill sets, so they can synthesize and contribute ideas beyond their traditional areas of expertise.
  • Given more creative freedom and authority to make decisions, developers have a greater personal stake in the product and more motivational drive or incentive to create awesome products.

Enhancing Transparency

Traditional product delivery is almost like a submarine mission. The customer loads a bunch of requirements into development, which disappears below the surface only to resurface months later with a finished product. Most of the hard work happens below the surface and outside the view of the customer and the organization’s leadership. The process remains hidden for the most part, so problems are rarely exposed or addressed, and there are missed opportunities for contemporaneous guidance or steering.

Enterprise agility increases transparency in several ways, including the following:

  • Customers can review the product at the end of each product development cycle: for example, at the end of each two- to four-week sprint. Customers see their products improve incrementally.
  • Small, cross-functional teams work on smaller areas of a product and test the product frequently, so their work is constantly scrutinized.
  • Most teams use Kanban or a similar system to visualize workflow, which improves visibility into workflow issues, such as incomplete work items and bottlenecks. (Workflow visualization also enables managers and other stakeholders to monitor progress without requiring teams to waste time building progress reports.)
  • Enterprise agile principles emphasize transparency and learning from failure to encourage employees to be more open about mistakes, missed opportunities, and areas that need improvement.

remember With traditional project management, you don’t really know when a team is struggling until close to the release date. Project managers who’ve worked with software teams are probably familiar with the 90-percent rule: Teams tell management that the software is 90 percent done 90 percent of the time. With enterprise agility, problems are much easier to spot at any point in the development process.

Boosting Productivity

Enterprise agile transformations almost always result in increased productivity, most of which comes from Lean thinking and systematic, global workflow optimization based on queueing theory (see Chapter 4). Most teams don’t realize how much time they spend waiting for others to finish their tasks. No employees in the organization like to look idle, so they engage in other activities, such as reading tech journals or researching ways to improve the product — activities that deliver little or no immediate value to the customer.

tip Strive to reduce dependencies and handoffs. Part of the magic of cross-functional teams is that their self-sufficiency reduces their dependencies on others, and thus eliminating a lot of potential request queueing and wait time. So, break up the functional service teams, and reassemble your people into cross-functional teams. If you’re successful, you’ll see immediate improvements in productivity, because people will spend less time waiting for others to complete their work. Don’t underestimate how well people can make themselves look busy when they’re really not delivering any value to the customer. Watch out for teams that have several hours of meetings each day or team members who are working on individual tasks that are not clearly linked to the product.

Making Product Development More Fun and Rewarding

Creating innovative products that enhance people’s lives is fun and rewarding, until someone steps in with a “my way or the highway” attitude and sucks the joy out of the process. Enterprise agility makes product development much more fun and rewarding in the following ways:

  • Development teams have more creative freedom.
  • Teams have less management oversight, spend less time in meetings, and waste less time keeping management posted of their progress.
  • Team members are continuously acquiring new knowledge and skills, learning from each other, to improve their mastery and make their teams more cross-functional.
  • Team members work more collaboratively, feeding on each other’s creativity, leading to more productive synergy.
  • Iterative product development gives teams more opportunities to celebrate their wins and learn from their experience. Instead of feeling as though they’re pushing a boulder up a mountain, they can celebrate each time they roll a pebble up a hill.

remember Most developers like the challenge of coming up with elegant solutions to complex problems. Graphic artists enjoy creating functional, attractive design elements. Testers love to play with software and “break” it. For many professionals, work is like play until someone starts telling them how to do their jobs. With enterprise agility, everyone trusts one another to do his or her job well, which keeps work fun and makes it more rewarding.

Strengthening Customer Relationships

Product development can create an adversarial relationship between your organization and its customer. The customer wants the maximum value at the lowest cost, whereas your organization wants to maximize its profit. Enterprise agility can improve your organization’s relationship with its customers in two ways:

  • Customers collaborate with developers on the product, so they build a deeper connection.
  • Budgeting can be more flexible. Customers and developers collaborate to create a prioritized list of features, which can then be gradually built and integrated into the product as the customer’s budget allows.

With traditional product development, budget disputes can often make the customer feel that your organization isn’t aligned with its goal of creating a spectacular product. With enterprise agility, everyone agrees that the product should be spectacular and works toward that goal until the money runs out or the customer decides that the product is spectacular enough.

remember One of the four values in the Agile Manifesto is “Customer collaboration over contract negotiation.” You want to work together to come up with the best solution and not spend all your time trying to box each other into long-term, winner-loser commitments.

Enhancing Product Quality

Several agile practices are designed specifically to boost product quality, including the following:

  • Cross-functional teams exchange information through open and honest communication, exposing problems instead of obscuring them.
  • Definition of “done” (see Chapter 2) ensures that the product has been tested and fully inspected by at least two people, for example, and that it has met all agreed business and technical criteria for release.
  • Automated testing ensures timely and rapid quality verification throughout the development process without any additional time or effort required of the team.
  • Continuous integration ensures that developers merge their completed work and test it frequently to identify and address integration issues early on.
  • Test-driven development (TDD) or test-first development deters developers from writing any more code than is required to enable a feature to fulfill its function, ensuring cleaner code. It also encourages everyone to get clarity on acceptance criteria before writing code. By producing just enough, just in time, the savings also accrue to future maintenance costs without the burden of unclear criteria, unnecessary code, or unjustified complexity.
  • Pair programming (see Chapter 2) requires that programmers write code in pairs, so one programmer can focus on writing the code while the other offers guidance and checks the work. This has a strong, positive effect on code quality. There is also an intangible, yet profound, benefit in the rapid learning from each other with better practices and shared knowledge spreading quickly as team members collaborate.

Making Product Delivery More Predictable

An organization’s leaders often fear enterprise agility will make product delivery less predictable because it does away with a lot of the upfront planning. However, developing product increments in short cycles actually makes product delivery more predictable. Anyone who wants to see the status of the product development can just sit in on one of the review meetings, or peruse the Kanban boards or other real-time project information radiators.

With traditional product development, organizations often waste a significant amount of time drawing up plans that they later discard when something changes that makes the plan obsolete. In fact, managers often build buffers into a plan, because they’re relatively certain that development won’t go according to plan and they’re likely to miss the deadline by weeks or even months.

There are now many sources of empirical project data confirming that — on the average — agile product development results are more “in control” (in the classical sense of statistical process control) than similar development using traditional waterfall methods.

Reducing the Risk of Failure

Software projects can fail for a number of reasons, but one of the most common is a disconnect between what the customer wanted and what the team delivered. Enterprise agility reduces this disconnect in two ways:

  • Short product development cycles, such as two- to four-week sprints, give customers more opportunities to let the development teams know whether the product they’re creating is on track, and frequent opportunity to influence and help steer continuing efforts.
  • A customer representative or product owner (see Chapter 2) communicates the customer’s needs directly to the team. With traditional product development, customer needs are typically relayed to the development teams by someone in the organization who’s outside of development. Having an actively engaged product owner as part of the team ensures that the product will meet the customer’s needs.

Improving Developer Discipline

An agile team must stick closely to the work items it committed to completing during any given product development cycle. Together, the product owner and the team agree upon a group of high-priority work items and then the team decides how to complete those work items. If the team thinks other work is a bigger priority (such as reengineering a database), it must convince the product owner that this work will deliver value to the customer. A good product owner will push back and ask tough questions such as, “Why do you need to do this now?” and “What happens if we don’t do it?”

This push and pull between the product owner and the development team keeps everyone honest and makes all of them more focused and disciplined in their work. In the end, this inherent conflict and close collaboration usually results in a higher-quality product.

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

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