Can't I just do this myself?
The simplicity of great products often tempts people into attempting DIY solutions, to the determent of all involved.
Some of the most amazing products in the world are also some of the simplest. The lack of moving pieces, the excellent user experience, and the simplicity tend to be hallmarks of fantastic software. This perceived simplicity often leads organizations, especially those with technical teams, to be tempted to build and implement their solutions instead of purchasing one from someone else.
The hidden mastery behind simplicity
Baldassare Castiglione, an Italian courtier, once described the ability to make extraordinarily hard things appear effortless as Sprezzatura. Sprezzatura is a mastery level that allows the person, or in our case software solution, to perform its mission without giving away just how hard it is to accomplish.
This mastery comes from a near-obsessive passion for solving a specific problem and dedicating countless hours towards the solution's perfection. The hours of trial and error, experiments and failures distill into one easy to use solution that makes you wonder: "How did it take them so long to do this?"
Sprezzatura is a hallmark of the right technology solution. It will appear as nearly too simple. A solution that doesn't feel this way will be full of features that you don't need, limiting your ability to solve your real problem.
Why not build your own
Any technological solution that achieves Sprezzatura also happens to tempt organizations into listening to the sirens song that calls for them to try and attempt to build this solution themselves. Almost every organization falls into this trap at some point. Below are a few reasons for you to avoid this trap.
It costs more
One of the most potent temptations an organization can experience is to build a technological solution because of a desire to save money. After spending years helping companies make custom software, I can promise you it will always cost more to do it yourself.
Even cobbling together different software and hardware solutions get expensive very quickly in ways that you do not expect. Meetings held to discuss how to build the technology will cost your organization more money than it would cost you to purchase and implement an off-the-shelf solution.
It will be an inferior product
Perhaps the nastiest surprise once an organization has finished building its technological solution is the relative inferiority of the product versus something that they could have purchased. The polish that sets apart incredible technical solutions comes from long hours of working on the same thing repeatedly. This type of polish is usually unattainable for groups building their solution, typically, not their profession. While they often might have either the technical know-how or the subject matter expertise, combining them takes years of effort and a substantial amount of trial and error.
In-house solutions will frequently suffer from defects due to the absence of other organizations finding the bugs before you do. Because of this, you'll find the same bugs repeatedly and have a small likelihood that adequate time will be allotted for your technical team to fix all of them.
It takes more time to implement
When tackling building an in-house solution, it can be incredibly easy to drastically underestimate how much time it will take to complete it.
Software is notoriously (https://ardalis.com/the-5-laws-of-software-estimates/) hard to estimate how much time it will take to complete a project. A general rule of thumb for any project is to double the amount of time you think it will take you to complete it. (https://lifehacker.com/estimate-how-much-time-you-need-for-a-project-then-dou-1592791225) When it comes to a technical project, you should then double it again.
This underestimation leads to unforeseen delays in implementing your proposed solution. These delays add additional costs as they take away your technical staff from the other work they had to accomplish. Importantly, it also delays the resolution of the original problem.
While there might be some investment in implementing an off-the-shelf solution, the time spent will be a fraction of if you go the in-house route.
Its maintenance cost keep climbing
Imagine yourself sitting at your desk and getting a phone call right before an important meeting. It was someone who was using your 3-month-old technological solution, and now something is wrong.
Technology is, unfortunately, much like a car. It tends to require constant maintenance to keep it running optimally. As you use the software on new devices, updates need to be programmed to ensure that your legacy system can still run on modern computers.
Its builders will most likely leave
After getting a call about still another defect in the software, you think to yourself - "I'll just call Amy, she built it, she can fix it."
Then you remember that Amy left for a new job two weeks ago.
Those who originally built the system and have departed on to other jobs with the knowledge of what they created comprise one of the most significant risks of in house software. The likelihood that you'll have invested far more into it two years from now than you would have gone with a commercial solution and your costs don't seem to have an end in sight.
It's harder than it looks
The software that meets your needs will correctly be described as deceptively simple or surprisingly complex. It should have just enough functionality to perform the task without overburdening your organization. It will save you time and money and be continuously updated to provide value both today and in the future.
Building a technological solution, especially ones that combine hardware and software, is a daunting task - even for professionals. The time and energy required to reach Sprezzatura in tech often necessitate years of honing technical ability and subject matter expertise.
When you are experiencing the sticker shock associated with off-the-shelf technology, consider what you are getting for your money. It's not just the hardware or software; rather, it's the ever-improving mastery of a lovingly refined problem into solutions for you and your team to use.