Mike Saffitz

Optimizing Software

Recently I was asked to help evaluate whether a piece of software developed by an outside development shop had been “optimized or not”.

Here’s the synopsis of my answer:

This is a common concern: you’ve paid for a service (software development), and you want to make sure that the overall level of quality is consistent with your expectations and with what you’ve spent.

To confidently answer this question, you must first clearly define the quality/optimization measures that you’re most interested in. As much as possible, each measure should be specific, measurable, achievable, and customer-focused. This last aspect is important– if you can’t outline why a given quality measures matters to your customer (and therefore your business), then it’s superfluous to track.

Ideally you will define these measures prior to the development of your project, and include them in acceptance criteria for your software vendor or shipping to a customer.

Once you’ve have the measures defined, then you go about measuring and evaluating whether you’re achieving them or not, and if not, how best to go about addressing that deficiency.

So, in short, it’s unlikely that someone will be able to help you verify whether or not the software is optimized until you can provide a better breakdown of what you mean by “optimized”. (For example, this could mean everything from measuring the memory footprint of the app to how well a given feature address a user scenario.)