The Carrying Cost of Code

Michael Feathers has just written a post on The Carrying-Cost of Code: Taking Lean Seriously.  He says,

No, to me, code is inventory.  It is stuff lying around and it has substantial cost of ownership. It might do us good to consider what we can do to minimize it.

I’m not sure I can see the analogy of code that’s in production to inventory.  Code that hasn’t shipped, yes.

But all code is a liability, I think.  When code is in production, then it’s offset by the asset that is the functionality.  Whether or not the net is positive is another question.

There’s no doubt to me that code, whether in production or not, has carrying costs that are larger than generally realized.  Perhaps it’s a depreciating capital expense?

Carrying costs are larger than we think. There’s competitive advantage for companies that recognize this.

It’s something that takes up space.  It takes maintenance.  It takes attention.  It does have a substantial cost of ownership–larger than we think.

The analogies may be failing me, but I think Michael’s sentiment is correct.

Post to Twitter Post to Plurk Post to Yahoo Buzz Post to Delicious Post to Digg Post to Facebook Post to MySpace Post to Ping.fm Post to Reddit Post to StumbleUpon

Comments (2) to “The Carrying Cost of Code”

  1. Actually code in production is far more costly than code that has not shipped. If it has not shipped it can be tossed out and no one gets hurt.

    Production code needs to be maintained. Even if it is delivered bug-free there are going to be enhancements and if not enhancements there is going to come a time when some dependency breaks – an OS or hardware upgrade, etc.

  2. I’ve actually seen plenty of times when a feature was coded prematurely – before we had any users demand for it, for example.

    That usually meant that we had code we had to maintain and support even though it added no value, and a big chunk of the times – when users actually started using it we realized what they wanted is different. Meaning we could have waited for the demand and coded by the users’ needs other than guessing and adding code beforehand that we then had to support, maintain and change.

Post a Comment
*Required
*Required (Never published)