When it comes to junior developers, there are usually a lot of debates about whether it is worthy or not to take them to a team. On the one hand, nobody wants to take risks, but on the other hand, engaging juniors in the software development process may appear to be a wise decision. Being the one who supports the latter, I’m ready to share my experience.
Over ten years, I have been managing the department of software development on .Net platform. Besides being a player coach, I do code reviews and actively participate in making decisions on application design development. Until recently, I had written code. So from my experience, I can say that regardless of whether a customer builds a team by themselves or accepts the recommended team structure, they expect us to provide qualitative workable solutions.
For some projects that my department is currently working on, I recommended junior developers. Engaging developers with little experience, I thoroughly assess benefits and risks, plan the training process, familiarize the team with the project’s peculiarities, calculate and plan the time needed for bug fixing.
Fortunately, I haven’t had situations when a junior developer cannot cope with the set tasks. As a rule, the advantages of engaging juniors are noticeable in a couple of months. First of all, they are highly motivated. Performing basic routine tasks while being supervised by experienced programmers, they grow professionally and soon become the advocates of the project. As a result, more complicated areas can be entrusted to them.
One of our recent cases was building a web platform for an online funeral home. The platform allows ordering details of the ceremony online, communicating with the needed authorities, informing the Pension Fund, the Tax Office, receiving the needed documents. It’s a cloud service with a desktop interface and off-line application for agents. We have been working on the project for three years. The team consists of five developers. The technology stack is .Net core + WPF.
At the beginning, only senior developers were engaged in the project. They built the architecture and started the code writing process. When the core part was done, making it possible to add new features to the product, we added juniors to the team. Of course, they had to undergo training first. In this case, it took the guys from 2 to 3 months to completely master the approaches applied in the project, and after that, they were able to work on new features. As a result, we got a workable platform which is currently available for Alpha Testing. What is more, the juniors trained within the project expanded their expertise and became middle developers ready to perform complex tasks.
Another example – a team building a backup application on the cloud platform. Here we actively engage juniors who would like to learn how to code in RUST, a rare language with very few developers capable of writing code in it on the market. In this project, the client manages the team personally. He controls the process of writing code, integration, work on different parts of the application. Due to a clear structure and well-established software development processes, the juniors find themselves in the environment where they are helped to join the project and given the opportunity to learn the new technology. As a result, the number of lines of code is growing and the product is approaching to its proof of concept. By the way, we are looking for C++, Golang, C# developers. If you want to master RUST, we can offer you an excellent opportunity.
Some time ago one of our customers was going to send us his employees to learn how to support the product which at that time was being built by our developers. He wanted them to be able to support it on the client side in the future. Due to our long-term practice of engaging juniors in the software development process, we have already come up with our own efficient training program. Unfortunately, some organizational issues made us postpone this idea for some time, but I have no doubts that it could have been valuable and beneficial experience for our companies.
I’d like to advise the companies hiring contractors for software development not to be afraid of engaging juniors. First of all, you should consult with the project manager and if the project has a number of routine tasks, software support or bug fixing is needed – try relying on juniors. You will save your money, get engineers trained to perform specific project tasks and reduce the workload of experienced developers, letting them focus on more complicated and higher-priority tasks.
Do you still have questions? Feel free to contact me. I will be happy to share my experience, consult, and help with project estimation and team building. Write at [email protected]