- Filter out those that don't ask the same things 2x - 3x.
- Those that ask things a lot and can't do much, assign them small tasks.
- Assign features and more important stuff to the more independent ones.
- Lessen helping everyone, but move to the "only bother me if you're stuck" mantra. Let them work more independently and use the online documentation to find something.
- Have a daily standup, so that everyone knows what they are doing. If they have questions, this is when it (from now on) should be requested.
- Make sure you have an alpha, beta and master environment. Be on top of everything as soon as it enters the beta environment. Don't let them change in production ( except a seperate branch for a bugfix). They develop on the alpha branch or a feature-branch.
- If someone can't develop or work independently, try to change them more to "testing".
- Use kanban / agile.
- Don't be afraid to filter people out, it happens that some beginners take a toll on the time of the team, because they develop errors / don't test code.
- Try to push the "don't commit, if it doesn't work" mantra.
==
I personally let them develop the entire time and when UX doesn't make sense or has not logical things that keep dragging on. I then spend an evening on fixing it as much as possible and explain the things i've done the day afterwards, without name calling.