Ness_Tech Tweets

Subscribe to our blog

Your email:

Software Product Labs Blog

Current Articles | RSS Feed RSS Feed

Why You Should Care about Efficiency in Software Development

  | Share on Twitter Twitter | Share on Facebook Facebook | Buzz This  Google Buzz | Submit to Digg digg it |  Add to delicious  delicious |  Submit to StumbleUpon StumbleUpon |  Share on LinkedIn LinkedIn |  Share On Technorati Technorati | Submit to Reddit reddit 

"Software people don't want to be measured," a friend recently told me. He added that, when it comes to software development, up till not, "efficiency wasn't talked about."

Indeed, when it is talked about, it is is often in the context of "the wrong way do go about things." For example, in this blog post on Agile Development, Mendelt Siebenga writes, "Efficiency is easy to measure and easy to manage. That's why it gets a lot of attention but by focusing exclusively on efficiency effectiveness suffers."

He goes on to argue that sacrificing efficiency in the name of effectiveness "will often turn out to be the right choice." Now, while I agree that no amount of efficiency will make ineffective practices effective, I don't believe that we can afford to choose between one or the other.

On the contrary, I believe that our methods, Agile or otherwise, need to be BOTH effective AND efficient. Moreover, I think that a premium falls on efficiency for several reasons.

1. Speed Matters

Competition in the software industry continues to be fierce and thanks in particular to innovations in the SaaS space, speed to market is becoming a major factor. Given the rapidity with which software developers can get their applications to customers via the "as-a-service" model, time lost during the development process, either due to ineffeciency or ineffectiveness (registered by defects in the code, for example), is essentially revenue lost.

2. In the Cloud, You Pay for What You Use

While speed of deployment is certainly one advantage offered by the cloud, people are even more enamored by the cost savings it offers. Paying for compute time as a kind of utility allows you to synch your computing needs and the money you are paying to meet them, thus eliminating the days of major capital investment and the scramble to make it back via optimized usage.

However, as Alex Handy pointed out recently, "Bad Code=High Bills." Handy goes on to say that, because code which runs inefficiently and thus takes up more CPU time actually costs you more money than properly optimized code, "The cloud can give you a direct line from your code to your dollars."

Of course, that line ultimately leads back to how efficiently, or not, you produced the code in the first place.

3. You Can Work More Efficiently, So Why Not?

The biggest reason to think about efficiency in software development, I believe, is the simple fact that we can actually do things more efficiently. Take test automation as an example. Technical methodologies available and in use right now can bring about vast reductions in testing time without compromising quality. Similar examples can be found at every stage and level of the development eco-system.

The real question becomes: If there is a way to work more efficiently, is there any reason not to?

 Image source: Royal New Zealand Navy.

Comments

Currently, there are no comments. Be the first to post one!
Post Comment
Name
 *
Email
 *
Website (optional)
Comment
 *

Allowed tags: <a> link, <b> bold, <i> italics