It is tempting to believe that magic solutions and salesmen exploit this tendency of people. We even have a technical term called "snake oil" to describe this kind of product. Nowadays, it is even harder to spot products like these thanks to misinformation caused by social media and advertisements. When it comes to software products in industrial and enterprise settings, it is even harder to identify snake oil products, which waste time and money without providing any real value.
Let's say you are an enterprise manufacturer organization. Most likely, you would have more, but just to simplify, let's assume you have an ERP, a CRM, and a MES, all supported by a thick layer of Excel sheets. As an executive or manager, you want visibility and seek answers to important business questions. However, instead of receiving prompt and clear answers, you get vague, complex, and time-consuming reports. You start to work for the software just to obtain information. Some companies even have entire teams dedicated to creating trivial reports. After encountering these problems, it is easy to fall for a general-purpose magical product, enticed by well-thought-out advertisements, staged demos, and fancy keywords promising to solve all the issues caused by ERP, CRM, MES, and Excel sheets.
After purchasing the next solution, your staff unknowingly starts working for the shiny product as well. Instead of focusing on your business problem, you receive "free" training for the software, align your past data to the product, and migrate to the cloud because why not? Finally, you have completed all the side quests of the product, and it starts working, but with one catch: it was optimized to solve the problem you faced six months ago, and now you need to optimize it for the new problem at hand or just buy the next shiny magical product. Do you recognize the pattern?
It is easy to fall into well-known software development problems and lose focus on the business, which is one of the significant root causes of snake oil products. This is natural because you are not a software company. However, by remembering the harsh truth of software development and repeating these to yourself, snake oil products can be easily avoided.
Unknown Unknowns
There are known knowns and there are known unknowns, but the most critical thing to remember when building or buying software is that there are unknown unknowns. This term originated from the US military and is used by organizations like NASA. We can apply this idea to software and state that it is almost impossible to build a software product that fits all the unknown unknowns of companies. Starting lean, focused, and having ownership of the software enables maneuverability when you encounter specific unknown unknowns unique to your organization.
No Free Lunch
In engineering, there are no shortcuts, and specifically in software engineering, it is always vital to remember that when you optimize for one aspect, you are trading value from another dimension. When this theorem is applied to magical solutions that work everywhere, it is clear that you are trading some other value in your organization for this flexibility. Always investigate and discover what you are trading while adopting products in the organization.
YAGNI
Being able to distinguish between nice-to-have things and must-have things is an essential skill to guide you while deciding on priorities, since as mortals, we have limited resources. The "You Ain't Gonna Need It" principle is both catchy and helps you remember what is important by questioning the need for requirements. This principle can be applied when assessing magical products. A long list of features may look appealing, but while reading through these lists, keep saying YAGNI to break the charm.
Keeping these ideas and principles in mind, building a lean solution that you own enables flexible products optimized for your organization and ready to adapt while continually being tested on real problems. Having ownership of a lean product and a real feedback loop will make fast iteration possible to discover more about your problem space and find value that didn't even cross your mind. The worst-case scenario is finding out that you don't even need a solution, which is still a big win. Always experiment before introducing a new software product to your organization and stay away from snake oil.
Comments