The TCO Thing
Intro
At first I had an idea to write a balancing article to my thoughts on opensource and custom solutions, to be a devil's advocate and to criticize myself. People choosing Windows, WordPress and ready-to-install systems can't be all wrong and they are not dumb for sure. And I thought I could prove their viewpoint with the TCO analysis, but then I had an intuitive feeling that I'm missing something. If this TCO analysis is correct, why is it often disproved lately? And then it struck me: we are already in some "catastrophic" scenarios, but I'm cheerful, so I'll call them post-apocalyptic scenarios (PAS). We are not living in post-apocalypse yet, although some people are building bunkers and there's a whole culture and community of "preppers". But some changes are so drastic that they turn over the financial models, one of them being TCO.
TCO model
A typical TCO model has two components, and that's a lot already: the cost of buying and the maintenance cost. I don't feel that's enough, so I'd add two more:
- Making a decision cost
- Buying/development/implementation cost
- Maintenance/enhancement cost
- PAS maintenance/enhancement cost
Let's go really quick through it. First, you make a decision what to buy to fix your problem, and that involves costs: you need to become a minimal subject matter expert or to find one, you need to view some demos, find people you trust and ask them questions about how they feel using the product, find the reviews, create a "+/-" table, make your conclusions, get stuck in decision paralysis, find a way out, get stuck again and so on. Marketing and word of mouth do a great job supplying you with information, so it seems like you know the right choice. They both fail with opensource solutions, for instance: opensource products often do not have paid marketing at all (be grateful for a neat GitHub page), most people you know may not know about it or even have a non-professional negative attitude (that's what marketing specialists of the other products are paid for) toward these products, yet the opensource product can beat a closed-source one in product-market fit, being (mostly) free for acquisition cost.
The buying phase is exploited by marketing as well: you visit a nice office, drink free coffee, have a talk with nice people, then you conveniently pay a large amount of money (assuming you can't be screwed if you pay this large amount), you get your license key or even a box. So, you have a box on the shelf, nothing works. Well, you have to pay for some consulting, but they will not do the work for you; in the case of an ERP system they will not figure out what to do with your 50 incompatible item directories. But they got the money, they are happy, and you are not.
I've been implementing the best ERP systems available on the market since 2003, and I strongly believe in custom solutions, because they have three traits "pre-packaged" or even "customizable" solutions don't have:
- You start to understand your requirements during development
- You can create something unique, supporting your unique competitive advantage
- The tech stack of most "pre-packaged" solutions is pretty old, and you are free to leverage the advancements in technology
B2B moves at a slower pace and there are reasons to have a "pre-packaged" solution as well:
- A stable tech stack
- Standardized supporting processes to deal with your contractors easier
- Figure out your requirements from the software description
But the killing argument for a "pre-packaged" solution is the maintenance cost, because talented developers are not willing to support their software, they are willing to write new software. So eventually you'll lose even the ability to fix bugs in your custom solution. But that's not the case if IT is the core part of your business, and you put consistent effort and budget into its enhancement. Many retailers do it, some logistics companies do it, and they can be quite successful. Just don't slow down, because freezing is death for your product.
"Effort" is a key word here. So, if you have a lot to do and you are not willing to put a lot of effort into software development, is the "pre-packaged" option still good? Well, it is, if we do not consider PAS. PAS changes a lot, not only TCO. But how to predict PAS?
How to predict PAS
In January 2022 I had a task from an IT company as a part of the hiring process: make a presentation for a potential new product. And I wrote that a war in Ukraine is possible and we should probably have a backup plan for the product in this scenario. How did I do that? Well, it's simple:
- PEST analysis (politics, economics, society, tech) – just read the news, bro
- SWOT analysis: how can external factors from PEST impact the product or the company? SWOT analysis normally includes internal factors as well, but for PAS they are mostly irrelevant.
The Russian army was near the border of Unkraine, so there was information in the news that the probability of war is above zero. Why? Well, the troops have guns, and they shoot the guns, that's what they do if they have an order. Why place the troops and don't order them to shoot? It's called politics, but sometimes the politics ends and the war begins. I personally didn't believe that it would turn out this way, no one I knew believed and lots of strategically-thinking people didn't consider it an option, but it was there all the time and the probability turned into a matter of fact. And it was that easy to notice and predict; it was in the news.
So there's usually some information about the probability of a PAS; the information is widely available, as it's a major event. What kind of event? Let's look at PEST again:
- War for politics
- Crisis for economics
- Civil war as a consequence of radicalization for society
- Systems hack/breakdown for tech
- We could add flood, earthquake, fire or meteorite for natural disasters
In case you are not still panicking or ordered the bunker already, what are these events about?
What PAS brings
There's a book Trust by Francis Fukuyama. It's a shame I didn't read it, but I strongly recommend it. Here's my take on trust:
- Trust is a fundamental basis of the modern world (meaning all the letters from PEST)
- The fundamental flaw and the reason for poverty in the Global South is a lack of trust, and I observed it personally in Russia for 39 years
- In case of PAS the most damage it does is it breaks trust: in the government, economics, society or tech
Just remember the latest bug causing software breakdown in the airports. We have to pay with our time and money buying alternatives, moving slower or reserving funds for possible losses caused by such an event. Anyway, let's return to TCO.
How PAS changes TCO
A mild economic crisis can cause many companies to cease to exist. Yes, they promised to support your software (or, worse, you used their online platform), but in the case of closed source you have nothing to do. A mild political crisis can turn tech giants against you, and that's why Europe is so "excited" about replacing software and SaaS services from the US with alternatives. It turns out, it doesn't take WWIII to be screwed.
The older logic was reasonable: in the case of WWIII we won't need this software anyway. Well, gents who said that, what do you say now? The US sanctions against ICC judges don't have a symmetric response, because EU and US were partners and trusted each other. Debanking, ban from apps and services. What's interesting is that it's a test, the same way lots of military technologies are sadly tested in Ukraine. Does it work? How do they react? That's valuable information. If you have this information, you are ahead of your opponents as you can leverage it. Opponents earlier considered partners, sad to say.
The issue with opensource is that technically it can be created by developers from the US, but you can still be independent. That's the trick, until anyone proves the opposite. You can put any sanctions you want on a country, but you can't prohibit it from using opensource solutions, and this case with the most heavily-sanctioned countries proves the point. The flawed logic is when one says "well, we'll always be on the other side, issuing sanctions". I have news: "always" doesn't exist in PAS.
Software is a bunch of code, you need this code – it's an important point, we need to stop here for a moment – but you also need the competence to modify this code, then you have all the degrees of freedom with your software solutions. I've seen some software, notably JavaScript frameworks, which are opensource, the documentation exists, but to make money on it, the docs are brief and you are encouraged to obtain info via paid courses. That's not good enough! You need a leading technology for every area with a healthy independent community creating all the documents needed to reproduce all the results you want with the software. Yes, Linus Torvalds kicked all the Russia-based devs from the kernel team. Yes, independent.
The next question: what do you need to create competence? There's a book by Quincy Larson How to Learn to Code and Get a Developer Job and he skyrocketed his career as a developer visiting hackathons and meetups. In the most introvert-filled industry, communication, communities and offline meetings are key. And I search through Eventbrite, Meetup.com in Germany and I cry, because there's nothing and it sucks. There are some meetups in Berlin, Cologne and Munich probably, and I'm in a rural area, and it can be the same in rural areas in the US. In any case, it's easier for me to find an English-speaking Discord group for Go development than to find anything online or offline in Germany. Is that the reason the US is so ahead of Europe regarding tech?
Conclusion
There's another level of trust: people as sentient species build trust when they meet each other personally. My job is 99% communication and trust is essential for me. And the thing I hate the most is 30-minute online interviews – it's impossible to build any trust with this lack of presence and this lack of time. In Europe people often consider environmental impact more important than personal contact. The contact can be a reason for pollution, but abandoning it doesn't solve the problem. And it's sad to live in this "videoconference" world, the lack of trust and the lack of means to build it being the reason for this sadness. That's all I have to say.
- Previous
When You Let It Slip - Next
Raising Arizona Is Metaphorical