How Junior Developers Make My Project More Correct
What does it mean more correctly - more stable, fault tolerant, more easily understood - fast entry, quickly restored in the event of an error or crash, with the correct metrics and alerts for everything.
Why not hire cool developers right away:
Expensive, hard to find.
It is desirable to keep competence distributed.
They do not always get along because of competition, it happens.
Junior Developer - Cons:
There is no foundation and knowledge of proper design.
He doesn’t check for himself, they hurry to say “I did” faster.
They do not know the Malomalsky regulations.
Tests - they know what is useful, but they have never been written.
Metrics - what the hell is this.
They easily hunt to the side.
Junior developers - pluses:
They cost a penny, easier to find
You can cook a person under the command.
From this it is clear that they have much more minuses than pluses, so how do the minuses turn into pluses? First you have to sweat a little yourself and create the foundation for this:
Microservice environment, and microservices should be as standardized as possible. About microservice architecture can be here - and in Russian . The microservice should be clear even to the mother of the developer, who works in the library.
Documenting the entire system (no, no it's not that stupid, thoughtless documentation that no one reads) is an understandable scheme and if it is even better interactive. If the developer did not understand your microservice in 1 day, then you have problems with the documentation.
Tests, tests, tests. In my opinion, functional acceptance tests as well as real-time tests on the combat environment give the most effective result. Tests should not be written by software developers at all - developers write tests that turn out to be de ... mo.
REGULATIONS - that’s what you really need to work on and follow up on this. I consider this the most significant matter. Start of development, description of the coding standard, description for testing, tests, delivery of metrics and alerts, deployment culture, and even regulations for drinking tea - all this should take about 50% of the entire time.
Development with a Junior developer is based solely on the principle - developed, passed tests, metrics, alerts, documentation = passed the task.
What ultimately gives:
First of all, you always control the process and never give up work in which you do not understand well.
If something is broken you always know what, where and how to fix it.
You have 2 times more people (your guarantee of the MVP team) for less money.
As a bonus, you get the most valuable in development - relevant metrics, alerts and tests - for this, everything was done.
The main idea of this post is that with this approach you are forced to build a foundation for the quality work of services.