The Agile Executive

Making Agile Work

Posts Tagged ‘Belady

Can You Afford the Software You are Developing?

with 15 comments

A reader of The Agile Executive brought up some questions about product retirement in the context of  project teams that use Agile methods. For example: Should a product backed by a hyper-productive Agile project team be retired at the same point that an aging Waterfall product typically would?

The question is important. Customers can get very upset over the retirement of a product, particularly a mission-critical product. Even if the vendor offers a new product that replaces the one to be retired, the operational disruption associated with migrating to the new product is often troublesome. On the other hand, the cost of maintaining software, let alone keeping it current, could be and is often high for the enterprise software vendor.

The answer to the product retirement question ties Agile methods and practices to the fabric and economics of software engineering.  A good way to address the subject is to ask the following two questions:

  • Can you afford the software you are developing now?
  • Would you be able to continue to adequately invest in the software as it evolves down the road?

Rules of Thumb for Affordability

Affordability is, of course, in the eyes of the beholder. Your CFO might see it in quite differently than your CMO. To bring a discussion between the two, or any other forum of CXOs, to a common denominator, you need to get a handle on two numbers:

  • Development cost (including product management and test costs) per story card
  • Development cost as a percentage of product life-cycle cost

Development costs and life-cycle costs vary greatly from one company to another as well as within your company. For example:

  • Off-shore costs can be quite different from on-shore costs
  • The costs of maintaining high quality code are drastically different from those for average quality code. (See Estimating Software Costs by Capers Jones for a detailed analysis of the subject).
  • Productivity of an Agile team can easily eclipse that of a Waterfall team.

Laborious and time consuming that collecting good cost data across development methods, projects, sites and continents might be, you are essentially flying blindly with respect to affordability unless you have very specific cost data.

Until you gather this data, here are two rules of thumb that can be used to get a rough sense of  affordability:

  • A typical figure for development and test cost per story card for enterprise software project teams is thousands and thousands of dollars. It can exceed $10,000.  This (order of magnitude)  figure is for a contemporary software development and test organization in the US that is “reasonably” balanced between on-shore and off-shore development
  • Development cost is typically less than 50% of the total software life-cycle costs. Again, the assumption of reasonable balance between on-shore and off-shore applies

These rules of thumb should be used prudently. For example, Mens and Demeyer report cases in which software development costs constituted a mere 10% of the total life-cycle cost.

What is your Software Evolution Strategy?

In Program Evolution: Processes of Software Change, authors Lehman and Belady summarized years of research on the subject they and various collaborators carried out. Their bottom line is deceptively simple: software is live and always evolving. Furthermore, software decays.

Jim Highsmith uses the following great graph to demonstrate the effect of accrued technical debt on cost of change and responsiveness to customers:

in-can-you-afford-the-software-you-are-developing

Jim points out that no good option exists once the software has decayed to the point of excessive technical debt. Furthermore, once you are in the far right of curve estimation is next to impossible and afforability calculations become pretty useless. You might think about technical debt like debt on a credit card – you become a slave to servicing the debt instead of paying off the principal.

Affordability Revisited

Between the initial development cost and the cost of evolving and maintaining decaying software, many software development projects find themselves in dire need of higher productivity. Hence, a more precise statement of affordability is as follows:

  • Can you afford the software you are developing given your productivity during and after development of the first release?

The productivity results reported for companies successfully using Agile methods such as  BMC SoftwareSirsiDynix and Xebia indicate productivity gains of at least 2X, and often higher, compared to industry average. Everything else being equal you would be able to retire a product backed by a good Agile team later than a product backed by a Waterfall team.

Many Agile teams tend to be inclined to refactor the code on an on-going basis. For example, Salesforce devotes about 20% of development resources to refactoring. As a result, software decay is slower for such teams. They reach the point of no good options in Jim Highsmith’s graph later than teams who do not refactor the code day in and day out.

Refactoring is like flossing your teeth regularly. The dental tape disconnects your bank account from the dentist’s…

Advertisements

Written by israelgat

February 1, 2009 at 9:46 pm

The View From the Executive Suite

with 4 comments

A few days ago I had the pleasure of spending a couple of hours with Bob Rockwell. Bob is the managing partner of AdviSoar, a Lewisville, TX consulting company specializing in coaching and developing executives, and teaching people the skills to develop executive relationships. “Helping Good People Do Great Things!” is AdviSoar’s mantra.

Business Risks Agile Addresses

Bob’s view of Agile, like any corporate executive, is business oriented. Important as the benefits to R&D are, Bob believes Agile is all about mitigating business risks. He specifically highlights the following as risks that Agile may be well suited to address:

  • Monetary risk: the level of investment it takes till one can have a meaningful “sniff test”.
  • Market risk: changes in the market in the window of time between concept and delivery. In particular, Bob is concerned about the risk of missing a market opportunity due to a too-constraining design document or a too-long development time. Additionally, Agile would seem to offer the potential of new discovery that could have market value.
  • Competitive risk: a rival in the market starts delivering faster or “better” by adopting Agile methods.
  • Execution risk: will the software be on-time? Will the business executive in charge get early warning signs in case the software project is in trouble?
  • Brand risk: tarnishing of image due to poor quality or miss-met expectations.
  • Innovation risks: shipping mediocre software (based) product due to insufficient experimentation and insufficient or ineffective “user” input through the process.

In other words, Agile for Bob is about running and growing the business, not about running R&D.

Laws of Software Engineering

Accrual

Our discussion of the risks Agile mitigates led to highlighting a few “cheat sheet” points an executive should keep in mind with respect to doing or utilizing software:

  • The investment in software development is typically less than half the overall life-cycle investment in software.
  • The longer you take to address technical debt, the higher you pay.
  • The accrual of business value in well run Agile projects is exponential (see chart above); in contrast, the investment is linear in traditional waterfall processes. In the graph above, taken fromJim Highsmith’s Agile 2006 presentation “How to be an Agile Leader”, 90% value is captured upon delivering 50% of features.

We ran out of time before we could discuss the classical laws of software evolution established by Lehman and Belady. I have no doubt we will get into them next time Bob and I meet. In particular, the question how applicable these classical rules are to Agile software projects is a topic I plan to discuss with Bob in length and depth. Also, a social contract for Agile is on the “agenda”…

Stay tuned….

Written by israelgat

January 14, 2009 at 2:34 pm