You forgot #3: A company with a lot of cash, and a lot of time to waste.
I really don't think this can work. Whenever we post for a position, I get flooded with a bunch of garbage resumes from people who barely have an idea what programming is. We have work to do, and deadlines. We literally can't afford to turn ourselves into a technical training school.
The idea here seems like it would be best suited to a working environment that has a deep pipeline, from unskilled to semi-skilled to skilled or specialized workers. People can be hired unconditionally to the unskilled pool, from which they can move up to the higher tiers either through training (either internally or externally) or through natural ability.
A bakery, like in this example, seems like it could pull this off, since janitorial work at a bakery is straightforward but unlikely something you'd want to subcontract, and presents a natural place to interact with other workers in more specialized positions, through management or through learning more.
In software this is more difficult, because there's no longer a pipeline for things like data entry, assembly, or basic IT support (traditional inroads), especially at a smaller company, much less janitorial or food prep work that presents an opportunity to advance.
I think the hidden cost here, though, is that progression from one stage to another starts to resemble interviewing at a new company, with all the same biases and problems that result from hiring processes in general, with the possible exception that there's more direct information on personality and work ethic that can feed into the pipeline (for better or worse).
A lot of companies used to actually do this. Let the mail room or call center people apply for the cobol training program and become developers. It's unheard of today for obvious reasons (a lot more demand for high skilled jobs makes it easy to get training and leave).
> Let the mail room or call center people apply for the cobol training program and become developers.
That is exactly my story ('85 or thereabouts), with the added caveat that I didn't learn anything from the Cobol training program. The bank where I worked did not even have a way for mailroom people to get into IT, it was mostly because they got sick of my continued applications to IT jobs for which they though I wasn't qualified that I got the chance to do the course (with the qualifier that if I didn't succeed they never wanted to see me again).
So, I passed (and was the quickest person to complete the course) and ended up making a very rapid career in the IT department and after that started my own company.
Some observations:
- the entry level IT job paid four times as much as what the mail room job did
- work went from 5:30 am to 2 pm to 9'ish to 4'ish (ish because nobody ever checked who appeared when and when they left again whereas in the mailroom attendance was very strictly policed)
- in the mailroom you felt part of critical infrastructure, in IT there was zero pressure to perform
- bringing the mailroom attitude ('let's get some work done') to the IT department was not appreciated by the rest of the department
- the mailroom had zero office politics, if you stepped out of line you would get chewed out and that would be that, by comparison the IT department was a huge web of intrigue, and quite a few of the people there were downright mean and backstabbing each other all the time
- the mailroom was all guys, the IT department had exactly two women programmers on a total crew of about 120, the only other woman was a secretary to the head of IT
- There were a few talented people there but on the whole the talent level was rather low, but they were big on process and that really helped to get stuff out the door
My former employer did exactly this (dev incubator it was called) with people from the call center.
During the time I was there one guy turned out to be a genius and after a few years left to work for a big bank and another guy got enough experience to start his career as a dev somewhere else. The rest of us learnt a lot mentoring these guys and feel quite proud of them.
So, I actually thought about including "enough of a cash buffer to survive a few bad hires", but the more I thought about it the more I remembered how much time was wasted on folks who made it through the interview process but didn't work out. Lots of companies are wasting money hiring folks with no plan for how to retain them or get them to work effectively. If you've solved this problem then good for you.
I really don't think this can work. Whenever we post for a position, I get flooded with a bunch of garbage resumes from people who barely have an idea what programming is. We have work to do, and deadlines. We literally can't afford to turn ourselves into a technical training school.