Ask HN: Why am I underperforming?
The concern my managers have is that I am very productive when I have a free hand but seem to progress slowly when I have to interact and integrate with the rest of the team(who I get along well with).
For example, in the React project we recently began I was quite quick in getting the UI components built and semi functional, progress was fast and noticeable(I was easily the highest performer). The same was true when we did a short practice React project prior to starting this one.
Now that we have formalised a develop branch, each feature begins as a ticket(pre-decided and handed down), features are then worked on as a branch and must be rebased before being merged. Only our CTO has merge abilities and he reviews all tickets before doing so.
It can take days to get branches merged as the CTO is quite busy and codes himself (on a different project)as well as other non-coding CTO tasks, if comments are made they must be resolved or addressed before moving ahead. Nothing gets accepted without tests (actions, reducers, ui components, integration tests etc.) and none of this code is currently live.
I do move along a lot faster when I'm not attempting to get features merged one ticket at a time, waiting for feedback, and using test driven development etc. although my code is not unreliable or brittle.
I got the impression that merely having comments made on my pull requests was not a good thing (a sign that I wasn't doing things right). And when my approach to solving an issue is different from the CTO's it's considered wrong.
I feel that there is something wrong, not simply with my performance but I can't put words to it.
4 comments
[ 0.27 ms ] story [ 71.3 ms ] threadSoftware devs are funny things and over my career I've seemed to notice that how well you mesh with leaders on your team has a big impact in your future on that team. Fortunately/unfortunately it can be the subtlest of things that leads those folks to support or condemn you in their mind. Once you've landed on one side it can be a real challenge to move to the other.
All this is fairly generic advice because IMO you can't hope to give HN enough context to give you specific advice on your problem.
If I'm right and there's a decent degree of unpredictability in how well you will get along with your team and it's hard to change, then it stands to reason that you should maximize your opportunities at making good first impressions until you succeed.
Metcalfe's law describes the utility of a network: increasing exponentially as more nodes join. Your network of friends and professional colleagues may be the most valuable thing you got from a university degree (if you have one). Challenge yourself socially to strengthen your relationship with acquaintances and make new friends/associates through work and professional groups.
Good luck.
It's not abnormal to be better at working on tasks with a bit of leeway than on very specific tickets. That said, if you frequently solve problems in a way different from the CTO's preference, moreso than your coworkers, then it's possible that there are some patterns that the CTO prefers that your coworkers have picked up and started using; you might get less hassle if you're doing things in that way, even when that way is objectively worse, because it puts less cognitive load on the CTO.
That said, it's very possible that the company has just gotten into a bad state and everybody's being nasty and over-critical about everybody else. Structuring commits in such a strange and broken way is indicative of other problems, since nobody would make the CTO approve every commit outside of a real emergency situation with tons of broken code being pushed into the critical path. It may just be that the company is going in a downward spiral and you're an arbitrary target for blame for everybody who's feeling the pressure.