It’s been over a year that I’ve been made a unit head. And in this time my team has grown significantly. And most of them are either Juniors/Trainees. And I need to train them up. Training is not cheap either. It’s an investment that I’ll eventually have to get back. Also, if I just focus on training new resources, I will fall a little behind for portfolio projects. What to do? I need to utilize my resources properly as that’s one of my core responsibilities.
My team is pretty diverse. I have Frontend, Backend, QA, BA, DevOps, Designers. Each of them needs their own training path. And individual training wouldn’t cut it I need them to work together at some point as well.
I took some time. Walked around in my mind-palace. Kept thinking what the best way would be to minimize the cost and maximize the profit. Just a reminder profit doesn’t mean money only. Trained resources are part of profit too. Training someone to be reliable is a legit profit. Well in any case let's move forward. I devised a plan to cover most of the bases for the team that needs to be trained.
First of all. I needed to train up a Project Manager. So, I had a 1–1 discussion with him and explained what I wanted and the team I had in my mind. I asked him to mentally prepare for the project as well as choosing a Project management tool.
Next, I wanted the Business Analysts to learn about analyzing business requirements & how to collect them from the client.
I was the client in this situation. I had a meeting with them and gave them a small briefing about my expectations in such a way the clients usually describe. Even if I’m a tech person I didn’t just give them the requirements out of the blue. Otherwise, it won’t be much of a training, would it? I was roleplaying as a client and let them ask me questions to figure out what my actual need was. I wouldn’t say they did the best but hey it’s a start.
After they collected the requirements from me. I suggested them to discuss with PM & Assigned Devs to come up with an estimation and a budget. As a training project it was probably unnecessary but learning how to estimate was part of the training as well. Because I need them to know about estimating too.
They took some time to do the estimation and came back to show me. As a client I didn’t make their life easy. They actually had to defend their estimation. And since I actually know this and that…. It wasn’t easy.
Next up is training the backend devs & front-end devs as well as the designer. I asked them to cook up a prototype with the help of the designer. And ask the PM & Leads to brief the devs. In this way they were being trained to do internal meetings. Which would eventually lead to scrum meeting. See where I’m going with it?
Now I wanted to focus on actual development skills. Not the problem solving part that they can learn themselves. I wanted to focus on the quality of work. That’s something they most certainly need some hint on. At this point I can’t role play as a client. For the devs I need to be the Tech lead they need me to be.
For the backend I made a pair. And asked them to do pair-programming.
They take turns to code and one criticizes the other. I warned them of some common pitfalls of designing a system like that. For example they should start having automatic documentation setup from the start as they are developing API which will need docs anyway. I kinda wanted them to follow TDD but I realized maybe next time. So I didn’t push it. And for first few iterations I did some code review & gave my feedback. And since it was getting better I left them alone with their own training process. I mean I don’t need to train someone who knows how to train themselves right?
As for the front-end I wanted the team-lead to handle that. Wanted to test out how good has he become in guiding the team.
Although I didn’t wanted to burden the fresher devs with unit tests & quality control. I most certainly wanted my DevOps guy to learn setting up SonarQube (A tool to measure code quality). And eventually hook it up with the development process down the line. So I asked him to set it up on the server. And he eventually did it. Great Success! Next I asked him to setup a CI/CD pipeline for the front-end. And that’s done as well.
Enough handholding. I wanted to see how my seedling grows after a month. I plowed the land as much as I could. Fertilized & watered enough. It’s time to see what they do?
Fast Forward 1 month.
The team presented a working version of what I wanted. It wasn’t the best but good enough. I gave them my feedback and they took another two weeks and delivered my project. Now it has become something presentable.
Next step would be doing internal testing from other units and do some security testing and iterate upon it. Sooner or later it’s gonna turn into a fine product.
I made a checklist of what I’ve achieved from this whole 2 month long endeavor. And I’m quite satisfied with what I see here. All while doing home office.
✅Write a blog about how good I’m at my role.
What did they make? Well lets leave that for my business team to write.