That means in a couple of weeks it will be one year for me in Greater China. One of my colleagues asked me if i was going to be doing something to celebrate. I hadn't even thought about it.
I have still been thinking about my first three months on the job and that embarrassing raise.
This is one of the few companies where i haven't really had much guidance from management as to what exactly they see as my role and responsibilities. They hired me as a basic developer, but i keep getting pushed into doing stuff that would be more efficiently handled by the people who were hired to do that sort of stuff in the first place. I think the problem is that everyone here agrees to every project that comes down the line and then nothing really gets done because no one has the balls to stand up and slash the scope and prioritize and drive a single task all the way to completion. This sort of thing is typical of larger companies, but it's a bit frustrating when it's happening inside a dev team of only around 25 guys.
My strategy for dealing with the inertia is to try to lead from the bottom. I am pushing small, achievable side-projects that i have the power to affect myself, and i am saying no to larger side-projects that i am being volunteered for. Because our company has tons of shit on the backlog, saying no isn't me ducking out of doing the work - it's just me being a fucking professional. If i don't take on too much stuff, i can really focus on getting one thing out the door and then moving on to the next thing. This, in contrast to some of my overwhelmed colleagues who mill around not really delivering anything at all. I figure setting a good example is the best i can do.
Well, that was the case until my manager decided to dictate exactly where i should be spending my time. And where she has wanted me spending time over the past few weeks is researching a huge set of unspecced features that she has (foolishly) decided to promise to the CEO by July. There are 5 or 6 major components to this project, each of which i know will be at least a month's work. Meanwhile, the two features i worked on before still aren't released due to various fuckups, most egregious of which has been yanking me into this new project and forbidding me from helping my colleagues knock the last few bugs on the head.
I made it very clear in my interview that this sort of ivory tower work was exactly the sort of thing that i do not want to do. I did not sign up for doing months-long research projects, and i most definitely did not sign up to do somebody else's job for them. Basically the past two weeks have consisted of me reading through hundreds of thousands of lines of messy source code to try and understand the basic features of our software, then explaining to the product manager what i think the current behaviors are. Instead of, you know, the product manager doing what a product manager is paid to do, which is interview users and observe them interacting with the tool and learn how it actually fucking works so they can explain to the developer why the current implementation is not solving the users' problems.
Anywho, on Thursday evening i had a one-on-one with the CTO. Ostensibly to touch base at the end of my probationary period, but in reality it was because my manager (who incidentally is also the problematic product manager) suggested i speak to him to get a bit more clarity on what exactly was expected of me. I mean, it's already a red flag if your own manager can't tell you what is expected of you in the role you were hired for, but whatevs. In 20 minutes i just echoed my initial interview and brought up the feelings i have been communicating to my manager every week in our one-on-ones. The CTO immediately pointed out that i was on the wrong team for the kind of work i like to do. As it turns out, my manager has not been relaying any of our discussions upstairs. Like, for fuck's sake!
So the CTO proposed i move to a different team. Specifically a team who is responsible for what in software engineering we call triage and escalations. Basically it is the front line after tech support. Like, the customer has a bug, and it's blocking them from working, and they need a fix right the fuck now. Not some hypothetical bullshit feature 6 months down the track that probably won't even solve their problem because product management can't get their heads out of their asses. No. Real customers with real problems who are really using the tools and understand exactly what it is they need to do. Not only are these front line guys delivering those fixes several times a week, but they are also all Chinese guys too. I mean, that is exactly the kind of feedback loop that motivates me, and exactly the environment i wanted to be working in from the start.
Next two weeks i will be transitioning onto that team. I know it will be higher stress work, and i know i will be stuck cleaning up all the mess of the ivory tower developers, and i might have to do some awful jury-rigged hacks just to save the day, but at least i will have the chance to actually fucking save the day. Lordy, how fabulous would it be if i finally got to deliver something to a customer?
Do i feel guilty for leaving my old team in the lurch? Well, not really, not after finding out that my manager has been lying to me about the information she was passing on to the CTO. And especially not after yesterday morning where she blamed me and R (one of my fellow devs) for taking too much time trying to clean up the code and that's why the last feature still isn't released. Like, what!? Any time a manager blames the team reporting to them for not delivering a feature that the manager was responsible for delivering, they utterly failed as a leader. I do feel bad i will be leaving R and D (another fellow dev) behind, but what can you do? I hope their job motivation lies elsewhere, so continuing on that team won't bother them as much.
I hope it gets better. I am resigned to the fact that work is going to suck. It is work, after all. But it would be nice if each week i could at least go home feeling like i achieved something for the customers. If i can just make one person's life a bit easier, then there was purpose.