Training takes time & has opportunity costs. Assuming “on the job training” (OJT) is an effective alternative, in my experience, has many times the direct and in-direct costs.
Scaleable solutions can survive employee turnover, technology updates, process changes, etc year over year. OJT is diametrically opposed to scale.
Formal training can be scheduled, priced, delivered to a skill target and options (vendors) can be evaluated. OJT is concurrent and intermingled with daily work, which then has no start or end; it cannot possibly be priced or costed; what is a basic vs advanced skill; and there is no way to compare one alternative to another (is Bob or Carl a better self-taught student? Is project A or B better to use OJT?) This is the happy part of the comparison…
Without guidance, the student may not be sure when the basic skills are exposed, understood (how many relationships exist in software?) or mastered. Will these be known in 2 days or 2 weeks? The only hope is that they know they don’t know and are vigilant towards gaining that expertise. As far as the notion “scheduling” completion of OJT, it would be better to assume it will never be completed.
OJT lacks a target of vision of success. The student may find small discoveries along the way that may lead to ultimate success, but the path will be un-predictable. Often times self-taught skills are accompanied by trial & error. In software, we call these bugs. Bugs are time-consuming and very expensive. As noted in many research papers, finding bugs late is always more expensive than early. Formal training should provide that definition of success that greatly reduces the opportunity for bugs from the outset.
Self-taught education can be fascinating and have a very positive retention, etc. – for that, I’m very accepting of the positive aspects of trial & error education. However, in a business world, these trials & errors become what is known as “technical debt”. Almost by definition, the self-taught person is going to introduce technical debt. Unless of course, they are enabled to refactor their prior art into sufficient quality. Any takers on this?
As these trial & error bugs ship, the team runs the risk of being painted into a corner by poor architectural decisions. It’s not the student’s fault, they don’t have the expertise to be aware of their blindspots or know of the upcoming pitfalls; they are happy to have shipped something. These bad decisions, over time (scale), can become very costly to mitigate or may even preclude other great options for the customer.
Worst of all, OJT destroys incentive to learn. After sweating & agonizing to get to some hard-earned threshold of knowledge that delivers a feature, it’s a very special person to then take on more personal risk of new challenges. It’s much safer to simply accept the status quo: “I’ve learned one way to get it to work and that’s good enough!” The company has neutered an incredible resource.