on training
It took me 4 months to get access to master. Two weeks later, I got access to the privileged user as well. Did this take too long? Should I have asked for more responsibility? It ultimately narrowed down to my experience and my team’s impact.
See, our team consists of yours truly and his mentor. That’s it! Two people are in charge of the most critical part of the company. Until I joined, my mentor had been the sole programmer for two years. For two years, this person’s dedicated everything to keep the product going. They’ve also been on support all throughout this time. The bus factor, in this case, was 1. Sure it’s not ideal, but the company couldn’t afford to hire anyone else. And when they could, it was a junior: me.
Their reasoning was that training someone with zero field knowledge is better and cheaper in the long term than hiring an old fox. On the positive side, the junior would provide outside-the-box ideas, having never encountered the field-specific limitations. They could also learn the field based on the in-house technology, so there wouldn’t be a need to adjust from previous experiences and manage previous expectations. As for the negatives, it might take longer for the new guy to learn a new field than it would take an experienced developer to adjust to a new company’s stack. The company’s perfect bus number would grow in either case, but I’m not veteran enough to know how the growth rates differ and what impact that has.
In any case, what’s done is done. This post is not about justifying past decisions, especially when they’re not mine. From my perspective, it’s like I’m doing another degree. Much different to the official one, I must say. I’m getting the most personalised teaching and curriculum out there. All my coworkers are eager to answer my questions, thus motivating me to get to their standards. Nobody expects me to reach that level any time soon, as this is just the long-term target. I still work with a manager, do reviews, open and close JIRAs. But I am the one who sets the pace for most of these. And the company respects and values me for that. In turn, I value it.
So how can someone join a team and not be able to contribute to master? Well, my mentor merges my branches in my stead. However, when a change doesn’t require a review, I do it myself. I still want my mentor to review 99% of the code I write, as their comments are really insightful. It will probably take one or two more years before I’ll confidently say I’ve learned most things and my training’s ended. But that’s fine for me, and as far as I know, that’s fine for my employer.