For nearly a year now, I'm the lead programmer and architect of a very large and ambitious project in the company I work for.
It is a project that I do not believe in, and working on it is burning me out.
I was completely against the idea from the start, and said that we should stick to small manageable goals, while improving the current line of work. However, it was not my call, so this project started, and I ended up being assigned the lead developer of it due to experience in certain complex domain-bound knowledge that is required to take this off the ground.
Despite my beliefs, I tried my best to do the best possible job for this project; but as this project grows, it just gets more and more clear that this is a bottomless pit. The goals are simply far too ambitious.
However, management is happy about the progress so far, and believes this project would be a huge success. Due to their lack of technical understanding, it's very difficult to explain all the issues to them. Also, they're making promises to clients (our clients are large companies) about features and capabilities this project is supposed to have, pre-selling it as much as possible.
I've probably spent over 200 hours in meetings with management and other developers on the team for this project, explaining issues to the management, but they keep shrugging everything off and pretending to not understand why it's a problem or legitimately don't understand. Other developers also understand the issues and sometimes try to back me up, but give up instantly once they see that it pisses off the bosses, so I end up being the only one who openly/regularly complains.
Those complaints are not baseless. The project has already undergone multiple heavy refactors, due to: management asking for A, me recommending B as an alternative to A due to issues with A, management disregarding my design decision and forcing implementation of A because they think they know better, serious problems eventually arise due to A that even management can understand now that A is implemented, have to switch to B.
This is making me hate my job lately. I love the field, I love working on large projects, I love my team members, but I hate this project - because I do not believe in it. I am 100% sure that it will fail, and that all time spent into developing it would've been better spent on something else. It is constantly going in circles, and I'm forced to implement wrong things because the final call is not mine, but rather, of people with more experience in marketing than in development.
Lately, I'm reluctant to even write a single line of code for this project or discuss any feature plans for it. I find myself just reading posts on stack overflow, or tackling random bugs in legacy software / other projects of this company. Legacy software that other developers are afraid to touch due to how "magical" its code is (read: bad), and yet I find this better than working on that new project.
Is there anything that can be done to improve the situation? At the current rate I feel like my only option is to search for a new job or risk losing mental health.
- I still want to work for the company, I like the people here
- I still want to work on large projects, I like to challenge myself and constantly raise the bar
- The people in management are very confident about their decisions, and no matter how many times we argued and I ended up being right (which was every single time), they still prefer to trust their instincts instead of my recommendations. Other developers aren't as confident at confronting upper management, and I feel on my own here.
[Edit] In response to
put on hold ->
Questions require a goal that we can address.
I'm not very good at phrasing; The goal: To keep working for the company, without becoming unprofessional / under-performing, under the constraints that:
- Having disagreements with the core essence of what I work on hurts performance.
- Management/upper Company layers won't change their ways, and their ways cause this disagreements.