5

TL; DR;

How to diplomatically decline a new role of tech lead given to me, because the project related to that role is a total mess? I'd like to go back to a regular programmer role.


About me and company

I'm a back end programmer, with a few years of commercial experience and a decent foundation of skills. All that makes me a solid regular developer. I feel best in a role of creator of web applications, particularly the back end logic that runs behind the scenes, usually encapsulated in a form of a Web API.

I'm currently working in an average size software house, about one hundred people in total. When I joined, I've been thrown right away to a fairly complex project that was about to start. I was the only back end developer for the first two months. The deadlines for the project were unrealistic. It was a bit of hassle, but at least there was no unproductive waiting for tasks. In the end, we still managed to deliver a working system, of which I couldn't be more proud, as I made most of the architectural decisions. The project was created from scratch and given the non-template technological requirements, tight deadlines, constant changes in business requirements in the middle of development... it was a job well done.

Then, I've been asked to help colleagues in other project, as the amount of work to do in my first project was declining. I've agreed and for the last six months I've been part of several projects, usually for about a month. I had to help a little, then I was moved on to the next one.

The penultimate project I've been part of was a complete disarray. Luckily, the client wanted to migrate some part of it to a new version, so my task was to create something new. It was back end logic, I didn't have to continue the development of the old one, so it wasn't tragic. Yes, I was alone and being outsourced for two months, but the client had a calm attitude and I did what I wanted, so it was okay.

Two months has passed, and this project also had to end. After that time I had hoped for something internal, something similar to my first project (with exception to unrealistic deadlines). But as it turned out, there was another external project, with the possibility for me to be a tech lead, advising other developers and being the first contact person for the client. Me, tech lead? Yeah! A little early for my experience I'd say, but doesn't that sound good, does it? I won't find out until I try, right? I gave it the green light.

The current problem

I've been introduced to the client's system. It's huge, in a process of migrating from older code, but the actual "new" code doesn't look better at all. There is a general lack of competent employees, and that results in dozens of projects I've been shown... that are a mess. Once again. I won't dive in details, but it is one big mud hut. And problem is, this mud hut is live and in production. So there is no option for tearing down the hut, as the client obviously doesn't want that. What he wants is to keep developing it, add a kitchen on the second floor and build a garage next to it. And I am not complaining only about the quality of the code here, but also about the lack of security, especially since the system is quite frequently visited. It's just nothing an ordinary programmer would like to touch or be part of.

I've been a member of such projects previously, but usually I'm lucky to just visit the hut from time to time, only to have a look and then go back to building a concrete house with a correct layout following best practices, just like in the previous project I was in for two months. But what I've been tasked here is to keep developing the mud hut, that involves front end stuff and oversee/advise it development as a "tech lead".

My salary hasn't changed with my new role as tech lead, although I've been just getting started. It has been two weeks.

What I'd like to do

I'd like to go back to being a mere back end developer, minding my own business, not lipsticking a corpse someone else made. An internal project would be best. Being outsourced to others doesn't feel great, especially since the company I work for is a software house, not an outsourcing company.

What I tried so far

I've scheduled a meeting with a trusted project manager with whom I can speak freely. I shared my thoughts and concerns with him. Furthermore, I've used several arguments:

  • not my role, I'm back end programmer doing full stack stuff
  • not the job I've been recruited - back end programmer
  • often tasks are basically really simple, making me do it feels like downgrade
  • half of work time, I'm waiting for tasks or more detailed requirements
  • code base is a mess with inability to change
  • no prospects for situation improvement

He then talked to the company co-funder and delivery manger that keeps the whole outsourcing thing going.

The results? I've been moved to other part of client's system where was supposed to be more back end tasks. There were some at the start, but in the end I'm again doing some full stack stuff intertwined with back end. For example, right now, I'm creating an infrastructure for integration with a third-party lookup API, but nobody knows yet what kind of API... So, slightly better than the initial part of client's system, but still the same development approach, still molding the hut.

Question

How to diplomatically (yet, firmly) tell my employer that I do not want to be the "tech lead" for a project that looks like this? I honestly just want to run away from it and be back doing what I like to do and what I know how to do. In the first project I described in the introduction, I was kind of a tech lead for my fellow back end developers, but that was something totally different.

I consider quitting, and would not be the first person to do so because of this project. Some front end guy did not stand it and resigned after being tasked with tweaking over configuration files entire days for two months. Also, quitting seems like the right step, because I have the impression that the concerns I convey are not actually addressed, instead are just replied with "yes" yet nothing changes. The co-founder keeps saying "nothing is forced here, let's just give the client more time", but I do not believe this. I just think he is focused on making more profit, as the client is foreign.

Rumors say that the company I'm outsourced to is also struggling with employment, as supposedly there is a high rotation present. They say people leave pretty often, and I already met a few that have just joined, so that really could be true.

So, is leaving the company inevitable? If I threaten my employer that I will quit if he doesn't give me a normal project where I will be in my actual role, I worry that from that moment I will be seen as the employee that is uncertain, that could leave when things get nasty. I'm worried that such label given to me could lead to even more hopeless projects that are given to me. Aside from the last few not-so-great projects, I like the company I work for. Though, my patience for poor projects is running out.

On the other hand... my trusted project manager joked far too many times about me resigning, so I feel a vibe there that they also worry about me and other people resigning, so resignation could be a good trade card.

9
  • Is your company asking you if you want to be the tech lead or are they telling you that you will be the tech lead?
    – sf02
    Jul 6 at 18:30
  • Interesting case, but could use a TL;DR. Jul 6 at 18:34
  • 1
    One principle that is useful to remember: if you do a project that is so little fun (and not clear whether it is a gain in experience), you probably should be paid better. And vice versa. Jul 6 at 18:36
  • 1
    You've been given a ton of new responsibility of things you don't want to do with no change in pay? Sounds like a big red flag to me.
    – clbx
    Jul 6 at 18:43
  • 1
    @sf02 company asked me in a meeting, I said "okay, let's see how that will go", because who wouldn't agree? I knew little at the time, and now I see that I should have waited with the decision till I see the code. Linus Torvalds was right, "Talk is cheap. Show me the code." And now it feels like I'm dumping the promotion, but at the same time if "tech lead" involves taking care of such mess, then I simply do not want it.
    – Coën
    Jul 6 at 19:30
4

So to be honest I'm not really going to respond directly to your question "How to decline the Tech Lead position" but instead talk about why you don't want the position.

First part is, do you want to be a Tech Lead or not? That is the first question that you need to ask yourself, because for me it's not the type of project that decides that, it's you. You know what you want to be or not.

At this moment of my career I have around 16 years of experience, can you imagine the number of times I had to work on projects that were a mess? Can you imagine the number of stuff that I learned by working on those projects? Can you imagine the times I said "Oh god!! why me?" ( And I'm not even a religious person )

Working on bad projects is also a way to grow ( you will learn a lot I guarantee it ), besides if you are working on a project where the code is a mess, that means, that there are ways to improve it. ( I'm not talking about a full rewrite from 0 ), I'm just saying when you touch something that doesn't look that good, make it look a little bit better and so on and so on.

In your entire career you are going to have to work with projects like this, and if you want to be a Tech Lead, a CTO, whatever you are going to have to learn to deal with inheritance of really bad code and trust me you will learn to deal with it.

If you deal with working on projects with bad code, by just quitting the company or refusing the promotion, how are you going to grow?

5
  • Thanks for reply. I get this second though of me being too picky and instead of sniffing at the role, I should embrace it. But! Reflecting on my past as a programmer, I learned and grew the most when working with people highly competent and more experienced than me or when I'm given a blank sheet and the reins over a project, so I can show my full potential. The client seemingly lacks competent programmers and have existing code base divided into parts of the system, so I don't expect them to allow me to re-do everything, and that's understandable.
    – Coën
    Jul 6 at 23:12
  • I will certainly learn something, there is no doubt about it. But I do doubt that it will be a bulk of knowledge in terms of technical or programming skills. It will be more likely managing skills and generally speaking the soft-skills. I think I'd prefer to continue growing in technical side. Also, it would be not the first case (in this company as well) of a poor project I've been given, so I can say it's piling up. After some time, you begin to question yourself, "Do I really have to do this?" and I still remember the greatness of my first project that I was part of six months ago.
    – Coën
    Jul 6 at 23:12
  • Well of course you shine the most when you have a blank piece of paper, with me is exactly the same thing, and I would say it's like that for probably most of the programmers. You should only embrace it if you really want it. For the technical stuff you will learn how not to do stuff and that is also very very good. Well I don't know how may years of experience you have, but I have seen a lot of stuff on all my years, and some of them really bad. Which also allowed me to shine because I was able to handle it and transform it into something nice.
    – Tio
    Jul 6 at 23:27
  • 1
    You say: "Do I really have to do this?", maybe you need a change of scenery? Another company, another job? Sometimes the only way to move out of projects is to change company. Just my 2 cents.
    – Tio
    Jul 6 at 23:28
  • @Coën if forgot to mention, if you are team leader you need a raise to acknowledge the new responsabilites.
    – Tio
    Jul 6 at 23:29
0

Maybe just say that you don't want a promotion?

"So, is leaving the company inevitable? If I threaten my employer that I will quit if he doesn't give me a normal project where I will be in my actual role"

I think so. What you should do, regardless of your decision here, is make sure you put your concerns and reservations in writing to management. Make sure you clearly spell out what is needed for the project to succeed. Keep copies of this communication in a place where the company can't delete it like a usb drive. Yes, I've seen bad managers try to scapegoat people in situations where they were setup to fail and requests for more resources fell on deaf ears.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .