You've probably come across headlines like "Still missing 50,000 specialists" or "Too few programmers to meet market needs" more than once. Statistics can vary, but I know that just yesterday I had to turn down a colleague's offer to join a competing company where my life as a programmer "would be the best." Some time ago, when I decided to introduce elements of revolution into my life and change jobs after many years, I managed to do so after sending out my first CV. Yes, I can believe that there is a shortage of IT specialists in the industry.
At the same time, having the opportunity to work in different teams, I see how difficult it is to build a good organization for software development. There may be many reasons for this, here are the most common ones:
- lack of time to build documentation,
- lack of time to create automated tests,
- lack of well-built system requirements,
- serious problems in production because someone didn't know something (was not sufficiently familiar with the technology they were working with or had no idea about the assumptions of a given functionality).
Wszystko powyższe staje się wypadkową improwizacji jaka następuje, kiedy chcemy zaspokoić rosnące zapotrzebowanie klientów. Zbudować kolejny projekt, zatrudnić jak najszybciej, by potem jakoś prześlizgnąć się do wydania pierwszej wersji programu. Może się uda. I tak w kółko. A na rynku nadal brakuje specjalistów, którzy mogliby z dumą wesprzeć teamy i wydać aplikacje najwyższej jakości.
EENGINE postanowiło znaleźć rozwiązanie powyższych problemów. Zaproponowano mi możliwość stworzenia nowej roli w organizacji. Ucieszyłem się bo filozofia EE mocno pokrywa się z moim podejściem do budowy oprogramowania, gdzie doskonalenie relacji i komunikacji w zespołach bezpośrednio przekłada się na dobre rozwiązania dla klientów.
People Leader, or professional mentor
It reminds me of the feeling when working on a project, in a rather tight schedule, I want to do a mini training for a junior developer colleague. And I struggle with thoughts: should I finish my tasks or exchange knowledge. The project reality forces decision-making in terms of budget and time. Often the topic of mutual education in the team is skipped because there are always more important things to do.
When Paweł and Jacek from EENGINE proposed to me the role of a professional mentor, I subconsciously felt that the missing element in many software houses has been found. Now, without being involved in project deadlines, I will be able to calmly pass on knowledge in order to strengthen the capabilities of teams, so that experienced programmers can focus on more difficult project topics. Sounds good.
How does it work in practice? When someone feels that there is a problem in a certain area, they can write on Slack without any hesitation that they need support. And they will receive such support as soon as possible because no one is taken away from the project with a ticking deadline. Sometimes just talking about the problem out loud effectively speeds up finding a solution (https://en.wikipedia.org/wiki/Rubber_duck_debugging) Thanks to previous experiences, we can also help make architectural decisions more efficiently, which strongly affect the future maintenance of the software being created and are difficult to change if it turns out that the chosen solution was not the best.
In addition, we can work on developing an internal training program, available to everyone. We are already working on the topic of fundamental concepts and problems in the IT world, but at a pro level. We will also develop a broad development program for PMs, HR departments, or other non-technical people. In this case, knowledge from the IT world will help improve communication and mutual understanding with technical teams, which will translate into project quality or a more efficient recruitment process.
If you feel inspired and are thinking about creating such a role in your organization, I will suggest what traits you should look for in a person who will become a professional IT mentor:
- broad technical knowledge from the IT world (people who have been full-stack developers, for example, will be good candidates),
- experience gained in projects on various topics, preferably those that have been successfully
- launched into production
- knowledge of how to take care of applications even after their production launch,
- willingness to share knowledge with others and, importantly, the ability to transfer knowledge, patience and a focus on quality communication,
- business sense and understanding of customer needs.
And what if we step out of the company to gain knowledge?
The interest in entering the IT world is huge, but there is still a shortage of specialists. So, why not start implementing programming adepts even before they appear in teams?
This is how the idea of building "The Software Academy" was born, a programming school (and more) closely related to EENGINE (a software house where e-commerce systems and dedicated applications in PHP, Ruby, or .NET are created). Thanks to the approach based on practical knowledge transfer, based on EE experiences, the school will always be up-to-date and will equip those interested with the necessary skills.
Moreover, by limiting the number of places in training courses or boot camps, it will be possible to focus on the qualitative transfer of knowledge and mentor support for participants.
To selected participants, we will propose joining EENGINE because we want to welcome programmers with whom we have already built cool relationships. If you come to us, you will receive further mentor support after starting work, so education will not end with a farewell handshake and a certificate.
Currently, we are working on building the substantive program and creating educational materials for future participants. The whole thing will strongly rely on many years of commercial experience. Thanks to them, we can focus on transferring useful knowledge that can be quickly applied in future work.
Soon, we plan to organize boot camps to prepare for work in positions such as:
- Web Application Developer (Front-end and Back-end),
- IT Project Manager,
- Web Application Tester (with automation).
Shorter courses covering narrower topics will also be offered, such as:
- Hexagonal Architecture,
- Unit Testing,
- Rest API and Single Page Applications,
- Designing Large IT Systems.
Follow us as detailed information about them will soon be available.