I recently spoke with a former employee of 3M who approved RFPs and MSAs with tech companies. The discussion turned to price, and he surprised me when he said that in nearly all cases, they chose more expensive quotes than the cheapest one. Why? Because 3M understands the real cost of cheap software.
In Robert Martin’s fantastic book, “Clean Architecture,” he gives a real example of cost per line of code for a software product over 8 iterations (over multiple years). See figure 1. The costs grew exponentially because of poor architectural choices and bad software craftsmanship. If you plan on extending your application or even just maintaining it across evolving requirements, you should think more like 3M–spend a little extra for an aptly architected, well-coded application.
The extra upfront costs will pay for themselves money many times over. Why? Because maintenance cost (upgrades, iteration, fixes, etc…) makes up for 50% to 80% of the total cost of ownership (TOC) for software. Keep in mind that the more useful your software, the longer you’ll need to maintain it.
So, when you get a quote for a software application, keep in mind the two values of software: behavioral and architectural. The behavioral value is obvious–does the software do what you want it to do? It’s what we all expect to get out of any contract.
The architectural value is more enigmatic but also more significant. It’s what drives the maintenance costs of your application up or down. If you can bring down the costs of adding new features, fixing issues, and expanding the capacity of your application by half, can save more than the total cost of your contract within the first two years.
What’s architectural value? Do you remember when you first moved into your first house, and your garage was clean and empty? At first, you only had a few tools that you could just place on the workbench, and you could easily find them. Over time, you started adding more tools, knickknacks, and junk. If you planned for this expansion, your garage would look like this:
If you didn’t properly plan the organization of new additional tools, your garage might look something like this:
The value of architecture is avoiding the second scenario. Just like it might take you a whole day to find the hammer in the second garage, it might take a whole week to add the simplest of features to poorly architected software.
Next article: Recognizing Quality Software Architecture…
We hope you have found this edition of “To The Point” by Dominik Gorecki to be helpful and informative. Look out for our next installment as we continue to explore unique topics from business to the latest technology.
We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: firstname.lastname@example.org.
Point Alliance Team