Build Less, Start Sooner

Jeff Patton recently reminded me of two simple strategies for software development that I’ve talked about from time to time—Build Less Software and Start Sooner. I thought I’d follow up on Jeff’s blog and revisit these simple, but powerful strategies.

First, managers and executives complain a lot about not delivering software (or any other product really) in a timely manner. In Preston Smith and Don Reinertsen’s ground-breaking book Developing Products in Half the Time they discussed manufactured products, not software products, but many of their ideas are relevant none-the-less. Their research pointed out that, on average, in the timeframe from initial identification of a need to product ship, over ½ the project’s time was taken up before the development project actually got underway! “The front end is so fuzzy that people tend to forget that it even occurs,” say the authors, and they go on; “we have seen situations where as much as 90 percent of the development cycle elapsed before the team started work.” How many projects, projects with extremely aggressive schedules, have you been on, where everyone knows the project has been under “consideration” for months and months, if not years? Once the development team is appointed, the mantra becomes “hurry, hurry.” Where was all the hurry when management was “considering” the project?

Part of the delay in starting projects is concern about uncertainty. In their unwillingness to start before all questions are answered (and of course many of the answers will still be wrong), project start times slip—again and again. Then when the project does start—well you know the drill. Starting early is a discipline that can greatly improve schedule performance—and at very little cost. Work on ways to get important projects off the ground early. I once worked with a medical software company in Canada that had been “investigating” a new product idea for a year. I finally convinced them to try a few proof-of-concept iterations. The feedback was startling, but all too predictable, “We learned more about our product direction in a few 2-week iterations than we learned in the last 9 months of analysis.”

One time I was asked by a senior manager in a software company, “how can you help us deliver this large product on schedule,” to which I replied, “Do less”—build fewer features. Do less is really the flip side of “focus on what is important.”

“Everyone tries to do too much: solve too many problems, build products with too many features. We say ‘no’ to almost everything. If you include every decent idea that comes along, you’ll just wind up with a half-assed version of your product. What you want to do is build half a product that kicks ass.” (from the founders of 37signals in Taylor, Practically Radical).

Three studies conducted by The Standish Group (Jim Johnson, CEO The Standish Group International, XP2002 conference), the DOD (Crosstalk Journal 2002), and reported by IEEE (IEEE conference 2002) in the early part of this decade indicate that far more than 50% of functionality in software is rarely or never used. These aren’t just marginally valued features; most are no-value features.  Think of the benefits from doing less, from eliminating these features. A CIO friend of mine once delivered a CRM application with 25% of the originally requested functionality—and the customer was delighted. In fact, the customer cut off development! The other 75% of features proved to be “nice to have” but not significant contributors to business value. Delighting customers has both a content and a timing dimension. Fifty percent of the features delivered in 6 months may be far more “delighting” that 100% delivered in 18 months.

Doing less should operate at many levels. The practice of allocating value to features is to both “Do the highest valued chunk of work,” but also to “Do Less,” to eliminate marginal valued features and cut functionality on those features with lower value. Reducing work-in-process increases throughput by cutting down on time-wasting multi-tasking. Value stream mapping show us where to cut out non-value adding activities.

So these two strategies, Build Less Software and Start Sooner, sound simple on the surface, but in practice they can be very difficult to implement because of organizational inertia and politics. But they can be very effective and worth the effort to pursue.

    Comments

    1. Great post whch makes very clear how to deliver more value to customers.

      As you mention, it can sometimes be difficult to implement this strategy. Problems I’ve seen have to do with really understanding customers needs, setting priorities, and dare to take the risk to deliver less.

      Software development teams may also have fears that “delivering less” may fire back on them, they are used to work harder in stead of work smarter. But the opposite is true, if they deliver less by focusing on the customer needs, they are actually delivering value, and thus become more valuable for the organization!

    2. Excellent post, and to the point.

      I can’t count the number of projects I’ve been involved with where the development part has been a rush despite (or because of ) being preceded with months and months of “contract discussions” and whatnot.

      As a project manager, I’m hard pressed to push my developers into working overtime when I know that the rush was created by someone else entirely.

    3. Shanmugaraj says:

      I agree completely with Jim. I am successful with this apporach of delivering in quicker cycles.

    4. Answer the next month questions, next month

    Speak Your Mind

    *