Has anyone run their team on an apprenticeship model, with success?Some folks responded by saying that developers should push code on day-1.
The engineering department in my office is about 6 months old, and so far we seem to admit a lot of unskilled talent (because the market is just like that). All the (fulltime) unskilled talent starts in the "engineering support" role, where they do project management, requirements analysis, documentation, and a bit of system administration and bug-fixing. As and when senior talent makes itself available to provide coaching, we graduate them into junior developers.
It wasn't really planned, but this seems to be a natural progression.
Pushing code (for review, not to production) is definitely encouraged for fresh developers, and so are operational tasks on live systems (if it crashes, reboot it like-so).
For folks hired AS NON-DEVELOPERS, I find the motivations to rush them to push to branch-dev a bit more dubious. Folks hired in "engineering support," here do have to log into live systems on day-1, so perhaps that's our implementation of deep-ending the noobs.
I think the hole I have is that there aren't enough senior devs to review code, and we're clearing up a mountain of legacy code, so letting "non-developers" push more question marks is a particularly sensitive concern at this point. I could be completely misjudging it. Hehe.