QSM provides unparalleled support throughout the product acquisition, installation, and implementation process.
For nearly five decades, QSM has helped organizations bring data-driven discipline to software project estimation, tracking, and benchmarking. Our methodology and tools turn project complexity into measurable, defensible outcomes.
We’ve all heard the cliché, "Work smarter not harder." In an article he wrote for ACM’s Communications magazine, Phil Armour wonders, “If we were smart enough to do that, wouldn’t we already be doing it?” Sometimes we simply don’t know how to work smarter. But sometimes we don’t work smarter because we choose ... or are not allowed to do things right the first time.
Abraham Lincoln said, “Give me six hours to chop down a tree and I will spend the first four sharpening the axe.” Sharpening our axe requires several things:
The problem is, all of these things take time, as the cliché says. Since we are unwilling to take the time to do things right the first time, we are condemned to take the time to redo them.
Larry Putnam Sr. has a list of what’s necessary to execute a project successfully. Right at the top of the list is, “Somebody has to think.” Organizations who are habitually unwilling (or unable) to invest in good up front thinking almost invariably accumulate technical debt:
Taking short-cuts generally means that the next time the software is touched, it needs to be fixed before any further work can be done. So the second piece of work is even more expensive to do correctly than the original piece of work, and you can be sure that the deadlines are just as tight as they were the first time. Worse, developers generally prefer to play it safe - if someone has left them a dodgy-looking piece of code, they prefer to leave well enough alone. So, unless there are strong individuals present who are really dedicated to good engineering, the team takes another short-cut and works around the code affected by the previous short-cut1. The third change involves working around the first two short-cuts, and so on.
If one follows the trend to its logical conclusion, and in my experience many teams do, one finds that the code complexity grows at an increasing rate. After several changes to the software, it reaches the point where nothing can be changed without significant time and risk. Usually at some point, the team begins to realise that they need to fix the things they've broken. But by then it's too late because they are spending all their time just keeping a fragile system running and have no spare capacity to fix the code. They've painted themselves into a classic Catch 22 situation.
Optimizing the present at the expense of the future - when chosen deliberately and accompanied by an explicit and honest accounting of deferred costs - may be good tactics, but it's rarely good strategy. Software organizations tend to be good at tactics. Tactics favor action and reward agility and creativity.
Strategy, on the other hand, is rarely rewarding in the short term. Everyone loves deferred costs but few of us enjoy deferring rewards. Working smarter is strategic, but it requires us to eat our vegetables first. Is it any wonder that so many software organizations go straight for the dessert table?
QSM consultants can help you work smarter, not harder. Learn more about our Project Health Check and Forecasting Service and High Performance Benchmark Service.