Promofarma Training Plan

Santiago Laparra
Tech at PromoFarma by DocMorris
6 min readJun 27, 2019

Learning plan. Why?

In IT World, technological advances don’t stop and it is very important for us to constantly update our skills on the latest technologies, architecture, design, etc.

At Promofarma we know how important is to focus on the continuous learning of our engineers. We believe that having a training plan is just as positive for the company as it is for the developer.

People working at @PromofarmaEng will be able to be aware of any advances in their respective field, this provides stability and calm which results in an increase of talent retention and efficiency

On the other hand, these training plans ensure that our developers have the necessary skills to face new challenges. In addition, we want to guarantee that our applications meet the requirements (#rigor) needed.

Furthermore, our team’s training has a direct impact on the quality of our products and, therefore, on the satisfaction of our customers.

With all this in mind, we are able to establish three fundamental pillars in the objectives of the #PromofarmaTraining plan:

  • A professional career offering.
  • Improve our developers satisfaction and increase retention
  • Increase of our customers satisfaction due to a better quality of our products.

Starting point

Our starting point begins with the Onboarding process. From the moment a new employee arrives at Promofarma, we offer them the necessary tools and knowledge so they can contribute to the company as soon as possible.

This information contains everything from a global vision of the company, objectives, the teams’ organisation, ongoing projects and the architecture of both the infrastructure and software.

We want for everyone to have a clear knowledge of their role in the company, what their role will be inside the team and the results we expect to achieve from their work. Working this way, we are able to achieve clearness and propagate the culture and values of Promofarma.

eXtreme Programming

We think that eXtreme Programming methodology contains tools that helps us on the training of new employees as well as easing the rotation between teams.

Promoting pair programming during the sprint; it is a training and working methodology that ensures better quality in the code, agreed upon and better tested. It also helps us to share technical and/or business knowledge as well as avoiding knowledge silos which can be harmful to the company interests.

Pair programming, Kata

Before finishing each sprint, the team’s feedback in the retrospective or the 1To1 meetings usually help us to identify in which fields we need to improve, and which are the next steps.

Training plans

After analysing the technical training roadmap, we value and prioritise the areas where we should invest. One option that our colleagues value positively is the weekly training session. From our slack #eng-training channel, in addition to sharing interesting reading links, we announce the next training contents and we also share interesting links about posts and videos to reinforce the training given.

Every week we dedicate 2 hours to perform different activities which we combine among the following options:

Reading Club

The reading of technical books about development, analysis and software design helps us improve our knowledge in solving the different problems we face.

A very interesting part of the reading club is to comment on the chapters read during this training session and the possible debates which may arise from it. It helps to settle knowledge, see different points of view or solve any doubts which may have arisen.

The best books on clean code, Refactoring: Improving the Design of Existing Code, Design patterns of GOF, iDDD, microservices, apis, asynchronous processes, etc. are our preferred candidates at the time of reading and we try to combine them with practical exercises (katas).

Katas + pair programming

Another effective step to establish knowledge is the practice of programming exercises, algorithms or software refactoring. For this we perform katas in pair programming mode or mob programming to reinforce the techniques of refactoring, design, solid, etc.

Training-demo about new functionalities or done projects

An interesting way to know what our colleagues are working on, where our developments are heading to and how they are solving their problems. The whole purpose of it, is to demonstrate relevant and interesting projects.

We make small demos which offer a vision of the different ways of dealing with a problem, so to know if they can share or reuse the code developed and offer/receive feedback on it for a possible iteration.

Explaining and teaching development methodologies and solving doubts helps to settle the knowledge acquired as well as opening the possibility of receiving contributions and feedback which may arise from the rest of the team in the demo.

Specific technical training, tools

The architecture and infrastructure of Promofarma is evolving quickly and new technologies are being applied: microservices architecture, asynchronous processes, the improvement of the provisioning automation, the CI/CD process of our applications, etc.

We are migrating to a new model based on containerisation and infrastructure as code, which helps us to take better advantage of resources, for this we are implementing the following tools: Kubernetes, Helm, Docker, Gitlab, etc.

In order to be prepared to use these new technologies, we need to train around these tools on a regular basis. So every week we do training sessions of K8s, Graylog, Helm, GraphQL, RabbitMQ, sagas, circuit breakers, software architecture, etc. This will allow our team to have 100% of autonomy.

Kubernetes training

Training by levels and disciplines

Our IT department is multidisciplinary, composed of engineers from different fields such as Data Science, QA, devops, backend engineers, frontend as well as product owners and leads.

The teams are organised by “business contexts” and in each one of them we can find developers of different fields depending on the needs of each context.

We have to cover the training needs of the different profiles, furthermore the training can be different depending on the seniority of each specialty.

In Promofarma, the tech lead is responsible for understanding the needs and providing access to these training sessions.

To meet the needs of the different levels that a team may have, we consider that doing pair programming or carrying out specific training can help all the members to complete and discover the necessary techniques required in each project.

Training online, conferences

To support and complement the in-house training, we have accounts on several online training platforms such as Codely.tv, O’Reilly, LinuxAcademy or SymfonyCasts where we can find many specific courses and very interesting technical books.

In this way our engineers can take advantage of the training time offered by the company even from home to keep up to date or improve their skills.

Event Storming training

We are also in favour of offering the possibility of attending the different conferences and workshops available at the moment. We have done the certification training of AWS Architecting, attended the Agile Spain Conference, some Event Storming workshops, attended conferences like Software Crafters Barcelona, Devops Barcelona, soon we are going to Php Barcelona and in some cases we have favoured external training such as iDDD workshop.

Training Budget

Promofarma offers its employees an annual budget of €1000 to invest in training. This training includes online courses, workshops, English classes and conferences.

The people who attend these external training sessions will be responsible for transmitting the knowledge acquired in subsequent in-house trainings in order to share that acquired knowledge to the whole team.

Conclusion

Promofarma believes in the training of its employees, we consider it a benefit for both the company and the worker. We want the training to be in our DNA, almost a right.

Expanding skill sets and offering employee education programmes is a win-win. Improving employee retention, while offering productivity benefits for the company. Furthermore, learning is essential to staying aware and remaining competitive.

--

--