Slim down your software

A new Forrester report says to forget the "enterprise" and shoot for a leaner, meaner software development process.

We hear a lot about the so-called epidemic of obesity in America today. Well, according to a new report from Forrester Research, the plague extends to software development, too.

You're probably aware of the symptoms: Software projects become weighted down with feature creep and mired in impractical, inefficient development processes. Applications that were once svelte, purpose-built solutions become unrecognizable beneath layers of unsightly bloat.

[ Bloated code can hurt your company in more ways than one. InfoWorld's Paul Krill talks to industry leaders about how they manage application development efforts in "Avoiding the high cost of bad code" ]

But spring is right around the corner, and Forrester says it's not too late for your apps to ditch the muumuu and get back into shape. The solution is something Forrester is calling lean software -- and the good news is that you're probably using some of its tools and principles already. The bad news? On your new weight-loss plan, the word "enterprise" is a no-no.

Behavior change, not dieting
If slimming down your software is among your New Year's resolutions, the first thing to do is to take inventory of your current software development practices and see what needs changing. According to the Forrester report, a number of common patterns contribute to software bloat.

Binging on features is the first and most obvious problem. It happens on many levels. Customers regularly demand new features, while software developers often feel compelled to build new features into existing applications simply to justify their annual budgets. Meanwhile, tools vendors are similarly building more and more new features into their platforms as part of their annual sales and upgrade cycles, which in turn inspire customers to create more new features of their own, and so on.

Consolidation among tools vendors often exacerbates this problem. When one vendor acquires another, the capabilities of the two product lines are often merged, and sales staffs are encouraged to "up-sell" the new features to the original product's customer base.

What all this feature creep means is that your applications inevitably drift ever further away from the original business cases that inspired them. Worse, as software grows more complex, it requires more maintenance, inviting still more cooks to come and ladle still more calories into the broth.

But idle hands aren't the only cause of overweight software. Internal processes are often the silent bane of software projects. Detailed reports, specifications, strategy documents, and other preparatory work may sound like good business practice, says Forrester, but too often these deliverables push actual code development out until the last stages of the project. By the time the programmers deliver any actual working code, it may be too late to test properly or correct for mistaken implementations.

Cut down on high-fat platforms
If some of this sounds familiar, it should. Much of it was first voiced by proponents of agile development practices. And in fact, lean software has much in common with agile development and even encourages the use of agile methods. Lean software is a somewhat more holistic idea, however, in that it encourages not just coding methodology but a new way of thinking about the software specification, design, and implementation process itself.

Among Forrester's more eyebrow-raising advice: Ditch your full-featured, "enterprise" tool suite and get back to basics. Big-name middleware suites are the comfort foods of enterprise software development, but in many cases they add little to a project but excess fat on the bottom line.

How often have companies deployed full Java EE application servers for apps that call for nothing more than basic servlets? How many complex integration servers have been deployed when a simple ESB (enterprise service bus) would suffice? In the lean software vision, overpowered tools merely get in the way of delivering the correct, purpose-tailored solution for a business goal.

For each new project, the report says, you should strive to pare down unnecessary features and focus on the task at hand. Buying so-called enterprise suites that are packed with capabilities you don't need, even if you think you might want them in the future, is the coding equivalent of keeping a bag of potato chips next to the couch.

In truth, says Forrester, lean software is less a methodology or a dogma as it is a trend. Citing the growing use of open source toolkits, lightweight object containers, SaaS, and (yes) cloud computing, among other emerging technologies, Forrester claims that a leading segment of developers is already moving toward lean software as a natural reaction to the inherent inefficiencies of the traditional enterprise development process.

Of course, we all know there's no such thing as a miracle diet. The Forrester report goes on to point out that too many purpose-tailored tools and platforms can eventually lead to chaos, and that successful lean development depends as heavily on the skill of the developers as it does on the nature of the project in question. But if your software project lifecycles too often read like Oprah confessionals, lean software principles may be just the thing to reinvigorate your development teams.

Copyright © 2009 IDG Communications, Inc.

How to choose a low-code development platform