Most of today’s software earns a failing grade. Why?

posted by Software Quality Associates

PART II: THE ANSWERS

Success in software development is no longer a simple matter of meeting project delivery targets and maintaining the operational status quo. Today, IT is asked to play a much more collaborative role with the host organization — creating enormous value by delivering software that can create a competitive advantage in a tough marketplace.

Yet, IT budgets are also usually either flat or falling. This means IT is, quite simply, being asked to do more with less.

How are IT groups accomplishing this? One common but problematic approach: point solution strategies that focus on only one aspect of software development. If there is a perceived “bad” process in the development lifecycle, the idea might be to “fix” or even outsource it, leaving the rest of the lifecycle alone.

We’d say that 90% of our assessment/evaluation work falls under this heading — it solely concerns a specific process such as testing or requirements.

But the truth is that things are rarely this simple, and really improving the software will mean implementing positive change in a way that is both deeper and broader than that.

Sure, you can improve a single process by uncovering and eliminating inefficiency. But the improvement you get will go only as far as the boundaries of that process – not the software development process as a whole.

Real optimization that leads to measurably superior software, faster development cycles and lower development costs, will require a more holistic approach that incorporates the complete software development lifecycle. The goal should be to improve what goes in, and what comes out, of each phase, not just one.

Big-picture process governance is also needed to ensure that everyone involved is equally invested and accountable for the success—or failure—of project delivery. From early lifecycle planning to ongoing execution, you’ll need to identify, define and utilize the best available tools, metrics and processes. The alternative is what we see all too often: fragmented planning and execution processes that work well in a limited sense, but don’t ultimately lead to better software.

Once planning and execution have been understood and tackled, the focus can then turn to excellence – i.e., ongoing optimization of the software development lifecycle, to achieve better and better results over time.

One great way to pursue this lies in leveraging established best practices — the methods, processes, activities, incentives or rewards that have repeatedly been proven to work well. So it will be important to determine just what those best practices are, in your particular context, always bearing in mind that a “best practice” for one organization may not really be the best for another.

The key is to maintain a holistic perspective – don’t miss the forest for the trees. Establish the key organizational drivers for your project, and then evaluate the entire software development lifecycle as well as the processes you need to govern it, support it, maintain it and enable it.

And don’t forget to take into account the cultural considerations unique to your organization, to help ensure that the organization as a whole is working on the weakest links (which are also the most critical for optimization). When possible, link business, development and operations team members in new ways, to collaborate as effectively as possible, instead of working in separate little worlds of their own.

If you succeed, you’ll have a top-down approach that also provides an end-to-end view of the software development lifecycle.


Comments

Post has no comments.

Post a Comment on our blog:

Captcha Image