Training Costs Matter
Towards the beginning of the 2004 book Star Trek: A Time to be Born by John Vornholt, we find the TNG crew exploring an interstellar graveyard filled with the remains of various ships within the Rashanar sector. Picard, Data, and Geordi board one of these derelict ships, the Asgard, a Galaxy-class starship very similar to the Enterprise-D:
“There’s still static electricity on these controls,” observed Geordi. “No power, of course. Why didn’t they consider towing this ship out and retrofitting it?”
“It could be retrofitted, but that would be inefficient for a ship of older design with no crew,” said Data bluntly. “As long as you are assembling and training a new crew, it is more efficient to assign them to a new vessel.”
Picard wanted to protest and say there was value in an old workhorse like the Asgard, but Data was right. Without a crew to lovingly put her back together, as his crew had done many times with the Enterprise, it wasn’t going to happen. Like it or not, the Asgard was an elaborate mausoleum at best, scrap metal at worst.
My young mind exploded, “Wait, you mean to tell me that the costs and practicality of re-training a crew would not be worth it to justify salvaging a ~$1 trillion ship?! How can this be?”
Now, I know that this is just a novel and not necessarily factual, but let’s entertain the premise that training costs are a significant consideration when selecting a given system or technology. And that the more impactful or larger the system or technology, likely the more significant the training required. Migrating from one system to another needs to have sufficient advantages to justify the switch. We’re not looking for fractional improvements, but magnitudes.
Across the Internet, it’s very typical to hear cries to switch from one programming language to another:
“Your project would have succeeded if only you were using such and such language.”
“Why is anyone still using language X? Language Y is the new hotness.”
“That language is so slow that by the time your program finishes executing, you’ll have grown a beard and your grandchildren will be graduating from college!”
Let’s take a look at the top 5 programming languages in the TIOBE index as of September 2023:
- Python
- C
- C++
- Java
- C#
One could say, “Oh look at that, Java is more popular than C#, perhaps we should consider switching our team to Java. After all, the language syntax isn’t so different, they both have curly braces and semicolons.” Or let’s say you’re already on Java, you could leap straight to the top of the list, and adopt Python. Shouldn’t be too hard, right?
There’s more to consider here than mere language syntax. Look at all of the things that must be in place and working in harmony to bring a large application to market. Your development teams must have a good understanding of:
- IDE usage
- Solution structures
- Architectural impacts
- Design patterns
- User interface
- Data storage, backup, and recovery
- External system integration
- First-party libraries
- Third-party libraries
- Security practices
- Testing approach
- Performance optimization techniques
- Issue troubleshooting
- Deployment and upgrade processes
- Maintenance techniques
- Platform upgrade procedures
- …and of course, language syntax
Do you have resources within your company with sufficient experience in the new platform across all of these topics to be able to provide support for the new system and re-train all of your existing developers for the new tech stack? A one-hour Zoom training (or even several) won’t cut it.
And then there’s the matter of: will you continue to maintain and extend your previous system using the previous tech stack while also standing up your new system, necessitating your teams to have expertise in both platforms? Or will you abandon your existing system and put your company on hold while you perform the “Great Rewrite”?
My question to you would be, is there sufficient advantage in making the switch? Will it sufficiently increase the productivity of your team? Will it sufficiently make more resourcing, at a cheaper cost, available to you? Will the resulting product be tremendously superior, driving substantially higher sales at a fraction of the cost?