We decided to complicate the Education Program for several reasons.
Saving money. Customers are not always ready to pay for the work of a junior, who has no real development experience. Previously, we involved new employees in a project without paying for the time. So that a person didn't work for free, we paid him from our budget. Now there is no need for it. After the Program, a new employee has real experience in team development. Therefore, he can work on commercial projects. So we save from 1 to 3 monthly salaries of our employed graduates. That's how much time it took for a newcomer to start generating revenue for the company.
SCRUM training. A modern developer should not only know a programming language. He also should be good at teamwork and perform according to methodology. Of course, there is no perfect Scrum on real projects. It is designed and adapted to the team. But in our simulation, we can imitate it and demonstrate the general principles to beginners.
Close relationships. As a team, we need to upgrade the soft skills of our employees. At the team stage, future developers learn professional communication. They practice interacting with critical and demanding "customers" who check the results every two weeks. Here we consider a personality. If something goes wrong, we pay attention to how a person communicates, behaves and whether he takes responsibility or not.
Soft skills are valuable for commercial teamwork. For example, a beginner does not meet the deadlines. What will he do? Maybe he will work hard at night to complete it? Or will he try to renegotiate and report the problem in advance? Finally, will he start looking for someone to assign blame and making excuses? It is a good idea to find out about a developer's behaviour in difficult situations before hiring. We can help to notice and close these gaps. The team training solves this issue, too.