Saturday, September 8, 2012

Agile: Fast & Fruitful Development


Agile is a product development approach that focuses on delivering small increments of product functionality over time. The goal is to deliver the highest value features quickly. 

This makes agile attractive financially since revenue and benefits also start accruing quickly. In addition, when agile is compared to other product / project management frameworks, it wins the trifecta. Agile reduces risk. Agile enhances quality. Agile cuts development costs.

In this article, we will review how to achieve the benefits of agile while also confronting some of its challenges.  Topics covered are:
  • How to Earn Revenue Now
  • How to Remove Roadblocks
  • How to Manage Rework
  • How Agile Cuts Costs, Enhances Quality and Reduces Risks
  • When to Use Agile

How to Earn Revenue Now!

The challenge is for the product owner to focus on features that drive revenue and benefits. And the first step is to pick the right segment. Since the product will be rudimentary, demanding consumers will reject it. If it is rejected, then little revenue will be realized and the agile approach fails.

The key is to find a segment that is ignored by current solutions and is therefore willing to deal with the inconvenience of a rudimentary product. As this initial core accepts the product and proves its benefits, the product may be extended to capture additional segments.   

The story of the transistor radio illustrates how to capture an overlooked segment with a simple product and then go on to refine the product for a broader set of consumers.

In the early fifties, radios used tube technology which provided outstanding audio quality. Transistors were discovered that could be used for radio, but the sound was poor. Instead of going head-to-head with an entrenched competitor, Sony found a way to exploit the transistor’s difference to make it a differentiator. The difference was size. A radio could now be built that was portable.

That first transistor radios cost over $300 dollars in current costs. It appealed to a small segment who wanted to listen to sports where audio range was not a big issue. It also attracted teenagers who could listen to their choice of music.

Costs continued to decline and sound quality improved to be “good enough”. Transistor radios not only captured the portable market, they went on to displace tube radios in the stationary market. Transistor radios are still the most successful consumer electronics product with over 7 billion sold.

An outstanding framework to use when considering agile product development is Clayton Christensen’s Disruptive Innovation. The 3-step process is:  
  1. Launch- A product or service takes root in simple applications at the bottom of a market. The product provides less performance overall.  But much better performance of an unmet need that creates a new market.
  2. Refine - The product relentlessly moves ‘up market’
  3. Conquer - Displaces established technology and competitors 

How to Remove Roadblocks

As you can see in the diagram, the “burn rate” or rate of spending for agile is high from the start. If agile is unable to deploy quickly, its costs escalate causing return-on-investment (ROI) to plummet.

The agile framework is set-up to eliminate many inherent roadblocks by establishing a team of full-time associates who remain together for the duration of the program. Teams will be discussed more in a later section.

But there are still some specialists that are needed for a short period who are called upon when necessary. Since these specialists are in high demand, there is often delay in getting their services.

Before implementing an agile approach, resolve allocation of critical specialist skills. Some approaches to consider:
  • Automate – Whenever possible, critical and frequent services should be automated and made self-service. Server builds often hold up software development teams and make a good candidate for automation.
  • Delegate – Determine what specialists’ functions could be delegated to agile team. It may be necessary to develop standards and provide oversight.
  • Engage temp resources – Allow the agile team to acquire third party resources as needed following appropriate standards and oversight. Unlike traditional methods, the agile team will only have a few weeks / months to prove their value proposition, so costs are unlikely to escalate.
  • Implement agile services management – There is a complimentary agile approach for service queue management to make more efficient and predictable. It is called Kanban.

How to Manage Rework

In agile, a holistic design for the fully built product is not completed upfront. Instead product design emerges as the solution is built and refined.

Those with experience will see that an emerging design may also cause rework. For many of us coming from more traditional methods, the specter of emerging design makes us shudder.

But a holistic design may provide a false security. If the product is using new technology, defining a robust and scalable design is unlikely on the first pass. It may be more useful to get feedback sooner than to over-analyze. So start small, get it out in the real world and plan on making adjustments.

If the technology is well established, there is opportunity to borrow design patterns from successful projects. For example a 3-tier architecture when developing a website is a proven pattern. 

The development team also may have insights as to which features support synergistic development. The caution is that we want to avoid building lots of foundation functionality that delays release of the product.

With frequent delivery, it becomes necessary to perform some development functions such as testing repeatedly. In more traditional methods, testing would only be done once. For those activities that are now completed multiple times in agile, it is important to review how they may be made more efficient. For example, automating test cases will reduce costs and avoid elongating the schedule.

How does Agile Cut Costs, Enhance Quality, & Reduce Risk

At the heart of agile is the “empirical process”. The "empirical process" manages product development through frequent inspection and adaption. The steps are plan, do, inspect and adapt. 

Because agile defines short, consistent, time-boxed development cycles of just a few weeks, the empirical process is effective in agile. There are numerous opportunities to plan, act and review. More frequent iterations
  • Improves efficiency by exploiting the “learning curve”.  Hastening the number of iterations, hastens learning.
  •  Helps us avoid making large investments in features that are not useful since there is regular review by the product owner who is a core member of the team and by the product consumers.

As mentioned earlier, the team is dedicated and full-time. Dedicated team members avoid switching costs that occur when a person must switch from one project to another. When switching, a person must remember where they left off and then ramp up. Studies suggest that switching adds up to 40% to overhead.

All of these agile methods cut costs, reduce risks and enhance quality by working on small doable chunks and correcting issues early.

When to Use Agile

Consider switching to agile for more of your product development. It is especially helpful when the problem or solution is unclear and requirements will change frequently in response to new information.

Agile benefits any product that that can launch with a simple version that attracts early adopters. Remember that if the product is successful there will be sufficient benefits to fund refactoring and incorporate learning into the next version of the design.  

When the underlying technology used to develop a product is easy to change, then agile is ideal. For example websites, on-line apps, a restaurant menu, a class curriculum, or the finishes in a building.

It is also useful for products weighed down by too many features. The National Science Foundation completed a study that found that 50% of system features were never used and a significant percent were used sparingly. Those extra features make products more difficult to use and frequently add to on-going overhead.

Google exploited this insight with the release of its office products such as Gmail that focused on the high benefit features and dumped the rest. The features cut were not missed by the typical user.

Why Use Agile

The CFO will find agile exciting since revenue / benefit realization starts much earlier.

The product owner and development team will also be compensated. They gain feedback from consumers sooner which is informative and rewarding.

Being on a development team using traditional methods can be a long march without any big wins until the end. Agile provides frequent delivery of working product to enhance the team’s morale.

In addition, the team experiences improvements in their ability to deliver more effectively using the empirical process. Crisis management – a factor in many projects – is eliminated since change can be incorporated easily in the next iteration.

Resources


No comments:

Post a Comment