Your experts are spending all their time mentoring novices.
You begin to hear things like “We are wasting our experts,” or “A few experts could do the wholeproject faster.”Indeed, the experts are not proceeding at the rate you or they would expect, because training thenew people isdraining their energy, time and concentration. But the new people must be trained, by experts, ofcourse.
At the same time, you must make progress on the project itself.
Put one expert in charge of all the novices, let the others develop the system.
Separate an experts-only “progress” team from a training team under the tutelage of one or morementors. Selectthe mentors for their ability to teach design and programming (object-oriented design andprogramming, forexample) to novices. Let the progress team design 85-95% of the system, let the training team focuson qualitytraining, delivering only 5-15% part of the system. Transfer people to the progress team as theybecome able tocontribute meaningfully.
Make sure that the training team does not simply do training exercises, but actually contributes tothe finalsystem in an ever-increasing way.
If you have many people to train (more than, say, six), you will have to design a series of tasks forthem toattempt. Otherwise you may give them a small, real part of the main system to design.
If the people in the training team are the ones who know the domain, you will have to make somefurtheradjustment, or else the division may cause conflict.