In software, I see a lot of effort and money going into training. Companies tend to have ramp-ups or boot camps for newcomers, courses and training plans for developers, and different training for managers and the product area. At most of the companies I worked for, I had to fill out forms about my technical abilities, but also about my training wants and needs. Normally, I see a training plan listed in job offers alongside other perks. There is no doubt that companies want to train their personnel and are willing to spend time and resources on it.
I am big into training: I love attending workshops and taking courses, I have written training plans for people at my company and I have even given company-wide training as part of the developer training plan. Last year I was even given a special mention in a company email as a person who had given lots of talks and training at the company…
However, I feel there is a lot of money and effort wasted: First, I want to explore why and afterward, propose a better approach.
Why I am not a fan of company training plans:
- Training plans are a product of randomness and luck: While training plans tend to be listed as a perk in the job description, whether you end up having a training plan or not, depends hugely on your manager and/or your tech lead. This adds a lot of randomness and luck to your professional growth.
- Skill levels are sometimes not correctly evaluated: The evaluation of your current and future skill levels tends to be very little specific. I have been told my React skills were a 3 out of 5 and was asked to improve to have at least a 4. No further specifications were given.
- Management has no interest in progress: Often, there is no space to discuss feedback on improving and learning in general. Results are only discussed during performance reviews, that take place once or twice a year. At that point (aka when it’s too late) your manager has already decided whether you reached your goal or not to justify your salary increase or the lack thereof. Real improvement needs regular feedback.
- Training is sometimes used as a break: In the training I gave, I had between 30-50 attendees. But only a handful would participate, most of them would sit muted in the meeting and disappear for the quiz at the end. I am not judging the people that want a break, but if that’s what people attend training for, we won’t improve code quality.
- Training is sometimes not added to Sprint estimates: Training takes time and mental headspace away from the Sprint. If this is not accounted for in your planning, you might be less inclined to attend training or to take courses. That further exacerbates the problem that people who already have difficulties keeping up with their tasks won’t improve because they have no time to study.
- Giving training can burn the teachers out: Preparing training is hard work. Yes, even in times of ChatGPT. I have to think about the content, how to structure the content, how to make the content understandable, and how to create examples that are applicable on a day-to-day basis. I have to think of exercises, homework, and exam questions. I have to prepare a repository for people to play with. It’s also a little nerve-racking to expose yourself, your knowledge, and the limitations of said knowledge. If all of this is just added on top of the normal tasks, volunteer teachers can be discouraged from giving training.
- The results of training and training plans are hard to measure: Never have I ever heard somebody say: “The quality of X in our project did improve thanks to your training.” Or “I finally got quicker with Y thanks to what you taught me”. But shouldn’t that be the goal? It’s nice to know people liked my training, but it feels more important to know that people use the concepts and work more efficiently.
Now that the ranting part is over, let’s formulate some proposals to improve training efficiency for everybody:
If you need a training plan:
- Assume responsibility: I want you to understand that your training and learning are only your responsibility. Don’t whine about your company not giving you an adequate training plan, access to courses, or whatever. You don’t want a random person to decide whether you improve professionally or not.
-
Create your training plan yourself:
- Make a list of training needs and wants: Create a new notion document or .txt file or whatever suits you. Is there something you are really bad at? (Is it CSS?) Write it down. Something that’s part of your tasks but you dread doing it and you always do it wrong. Write that down too. Something that would make your day 100 times easier if you just knew more? (Could be git…) Some article you liked but you never read? Find it in your infinite supply of bookmarks you never look at. Something that interests you but you never took the time to try it? You guessed it, it goes on the list.
- Order and prioritize: I like to prioritize my list a little bit and distinguish between short learning projects (reading an article or watching a Youtube video) and longer learning projects (going through an entire course). I also like to evaluate how much impact would this knowledge have on my day-to-day tasks.
- Now, work on your plan! Sometimes, you have 15 minutes in between meetings. Instead of scrolling Instagram, read this article you bookmarked years ago. Find half an hour at the end of the day to go through your Udemy course. Don’t get overwhelmed if there is a lot on your plan and you have little time. Just try to get into the habit of reading/studying something every week.
- Share your plan with your tech lead and your manager: If you are in luck, they are interested and can even give you feedback.
- Or: Don’t share your plan with your tech lead or manager: Sometimes, the people who manage you are not interested or don’t take the time. That’s ok. Don’t dwell too much on it and make the best out of your current situation. Sometimes you also want to feel free and not give too many explanations. Do what you consider the best option in your current situation.
- Collect evidence that you worked on your training plan. Keep a log of what you did and the results that produced. Even if they are tiny wins. For yourself, but also for your performance reviews. If you went through a CSS course and therefore are producing better CSS, this is something you should mention in your 1:1s. Mention new tiny wins every time you can. Keep in mind that you have to give visibility to the extra effort you put in, nobody else will notice.
If you are somebody who should be writing training plans:
- Make it a priority: I know, you have little time. But if people improve, everybody can work better together and you can delegate more. I have been able to delegate plenty of tasks to juniors and even interns but just giving them a few hours to take a $10 Udemy course.
- Ask them to write their plan and review it. Give them nice feedback and maybe some help on how and where to start. Everybody is different, some people need more guidance than others.
- ASK AND LISTEN: I want people to come to me and ask questions, but that sometimes doesn’t happen. Ask how things are going with the plan regularly. Listen to what they have to say, just listen. Ask them how they are going to solve the issues they have. Only make suggestions when asked. You don’t want to do their work, you want to enable them to solve whatever stands in their way.
- If somehow possible, give them time to work on their training plan: I know that’s a slippery slope since people sometimes use this as an excuse not to work, but they also don’t work on their training plan. So you will have to use your best judgment with this one.
- Keep track of improvements you see: Imagine you put a lot of effort into something at work and your superior doesn’t even notice. Ask if the person itself feels improvements but also talk about the improvements you see. If possible, regularly, not only once a year.
Conclusions
An adult in the workforce should be able to take responsibility for his professional development instead of exposing it to the randomness of managers and company policies. On the other hand, superiors can give employees better opportunities to develop by showing interest and giving constructive feedback. If everybody takes care of his training in a proactive manner, randomness is removed, improvements are easier to track, and human resources doesn’t have to play guessing games on what to do regarding training.
What are your thoughts? Do you have different or better solutions? Let me know down below in the comments.
Top comments (3)
Yes sure , but it's not a the expense of his own time. In IT and specifically with developer , it's kind of expected that you train yourself and if possible on your own free time. No other job does that.
Company should allow "training time" , that you can use with proper training plan paid by the company or on your own because you really need something specific.
The problem is that the company have no possibility to check if you actually learn something while training your self , that why they prefer paying someone to teach you. They have the false impression that you did not spent X hours doing nothing
Totally agree! In an ideal world, they should give you some time, but there is lot's of people abusing this to do nothing, which hurts the ones who actually would use the time wisely.
Not doing any training whatsoever because the company doesn't provide you with posibilities can also diminish your chances in case you want to switch jobs or get a raise, which is why I encourage to take training into your own hands and make the best out of the situation you are in.
As a student who needs to improve the skills, I liked a lot this article. It tells a lot on the limitations of company training plans and advocates for taking personal responsibility for learning and growth. When I was a student, I was often asked to look paperial.com/reviews and get more ideas. I appreciate the practical tips provided for creating and implementing a personalized training plan, empowering individuals to take charge of their professional development.