Fred George, noted Agile Developer and thought leader, had a great post where he described his ideal ratios of developer skill levels when building an Agile development team.
One of the foundations of his theory is that the number of Apprentice or Junior level developers should remain small on any given team.
…bring on apprentices only at the rate they can be productive to the team; otherwise, be courageous and defer the staffing, ignoring what your spreadsheets are telling you.
I can certainly identify with Fred’s warnings here as I’ve had the unfortunate experience of working in a shop which built upside down teams with one skilled senior developer managing 5-7 fresh college graduates underneath them. The net effect was a very buggy system, poor productivity, and continuous death marches between releases.
As many others have said before, programming is a skilled craft, and thus must be treated as one. While it’s true that almost anyone can learn to hack together some working code, true mastery of the craft requires learning under existing masters. And for a master, training even one apprentice requires a significant time investment that can often come at the cost of productivity.
In my current role at Telligent, I’ve had the good fortune of working with a very talented Junior Developer and I’ve enjoyed helping him go from being a good programmer to being a great developer. However, it’s been quite clear to me that having more Juniors on my team would quickly overwhelm me and begin to adversely affect my team’s productivity. I would probably be spending more time on mentoring them and less time on knocking things out of my own task list.
Even the brightest Juniors will not be aware of all the tools, resources, and practices that are at their disposal as compared to a more experienced developer. In summary, Fred George said it best:
…start your projects with few, if any, Apprentices, and stage them into the project at the rate you can productively absorb them.
I highly advise that you read the rest of Fred George’s posts in his series on Masters, Journeymen, and Apprentices.