>This is a not for profit organization that is strictly mandated by government procedures. It has a large budget. It has been around several decades. It serves tens of thousands users a year and enjoys monopoly on the services it's users require.
I'm familiar with that situation.
1.) You're in no danger, there's likely no accountability at any level and you don't have to be in a hurry to quit. As a relative newcomer, what you see as a death spiral is likely status quo for the organization - it's a zombie.
2.) You never had a chance at effecting any real change, so don't feel guilty about bailing.
I too have been in a similar situation, and it was made less stressful by the #1 thing @incision mentions.
Realize that as bad as your company is at building software, it is probably equally bad at other things, like: Recognizing that someone has checked out, or Firing someone.
When I was in your situation I went into cruise control. I did the absolute minimum to avoid disciplinary action and began seeking out greener pastures.
This was my first development job, so I wasn't sure everywhere else wouldn't be the same. I also didn't have a very strong resume yet. I also wanted to switch from Java to Ruby. It ended up taking me almost a year, partly because I wanted to be certain the next place would be an improvement.
The next company I went to work for was awesome :-)
OP, you appear to have plenty of experience and can probably be chose-y about your next move and still not have to wait very long. There are a lot of great places hiring.
It might be a black spot in his career. It will be difficult to explain what went wrong while staying positive. Beside, this can strongly affect his moral. A back flip, if possible is in my opinion the right move: get the hell out of this.
Never, ever, ever bad-mouth a previous employer during an interview.
Even if you worked for Satan himself, and he had Kafka and Joseph Heller design the Waterfall development process, and your team lead had the IQ of a telephone pole and the personality of a Comcast customer service rep.
You can say you weren't a good fit. That you felt the toolchain hurt developer productivity. Talk about how you want to be part of an organization that will let you hit your maximum level of achievement. Talk about how you hate bureaucracy because it puts barriers between you and the work that needs doing.
That's all fine. Show me, the interviewer, how driven you are to create.
But the second you start talking about how miserable you were, or how much of an asshole you thought your boss was, or about how much of an idiot your team lead was, you've basically cost yourself the job.
You might be completely right, but if you start talking about this during an interview, you come across as an antisocial, whiny, needy child. If these problems were so upsetting, why did you stay so long? Why didn't you try to fix things?
I want people in my company that will actively fix problems, not just complain about them.
I, the interviewer, can't change anything about your last job, and complaining to me about it doesn't help either of us. I'm going to wonder how you'll be to work with if you can't put the past behind you. I'm also going to wonder what you'll say about me, and the team, when you leave. Will you paint us in the same light as the job from hell?
If you whine about how much you hated your last job, all you do is turn on every red flag I have regarding personal interaction.
While I disagree with your overal premise, I agree with what you then go on to say. Don't make general criticisms about previous jobs or employers ("it sucked") -- be specific about bad things, how you changed or tried to change or would in future address them, and what you learned.
Saying bad things about previous employers in a constructive manner is not a red flag. (Wasn't there a recent study showing that the people who complain also tend to be productive?) I sure hope so, because I complain a lot.
This is always about what you could have said. Every question in an interview is a chance to prove yourself a worthy hire, and complaining, while technically accurate, at most pushes you no further towards your goal. If your answer is to complain about your previous employer, you have simply wasted that question.
The interviewer doesn't know if your claims are true.
There are lots of people in the world who are impossible to satisfy, who blame all failure on everyone but themselves. They have complaints about everything, justified or otherwise.
By bringing these things up, a person who does not otherwise know you has two possibilities:
- The company you worked for really was that bad. This claim cannot be verified in a meaningful way.
- The candidate you're interviewing is one of these dreaded negative nancies who will disrupt your workplace as they proceed to complain about everything and redirect their own problems upon other people.
Since there is no way to tell which is true, and I have no incentive to trust you, and every disincentive to bring in someone like that into my office, I will not hire you.
Direct, concrete criticism is fine. "We used the waterfall model and I don't believe it works" - but do not come off as bitter, because that's exactly what the Negative Nancy typically sounds like.
As an interviewer, I don't know you. What I do know is that there are a lot of whining "the grass is always greener" types that find fault in everything and don't realize the world isn't perfect.
If you say a single negative thing about your past employer i will immediately be fearful that you are that type of person. In fact, when I interview developers I specifically try to get them to say something negative about their current job. I do this because whiners are so unbelievably destructive to an organization that I never want to hire one.
Now I ask you... What positive purpose does it serve to bad mouth your previous employer to a prospective employer?
>I'm afraid I don't consider a well reasoned and well thought out criticism to be 'whining'
Hello again, friend. I politely request you reconsider what I wrote. I didn't say that you would be a whiner. I said that since I don't know you that my fear is you may be a whiner. Since people who whine are so damaging to organizations, I would almost certainly not hire you regardless of your other attributes.
Having said that, I certainly respect honesty. But please realize there are times when it's better to say nothing than to be completely honest. I've been married for 10 years so I have some experience in this. Have a nice day!
Yeah, I've seen quite a few SMEs now for which this post basically describes the way the company operates.
They put out bad software, slowly, but seem to just about keep on ticking over. Suggestions for improvements are often met with mild positive feedback and a sense of amusement that you think you can actually change the place for the better.
Just think about it this way, you are never going to get the days and weeks and months and potentially years you put in here back. If you don't spend them on something useful you will forever see this as a problem.
So since the place is clearly clueless, you need to decide what your going to do. When you talk to people about this place in the future, they are going to ask you "why you stayed" and your answer is going to reflect on your character and your outlook.
You can try various strategies to fix things, some might help, some might not. But you can practice you skill in identifying roadblocks.
You can switch into anthropologist mode and start studying the people who are dysfunctional. Find how how complete idiots maintain a lock on their power base, what techniques do they use if it is clearly not skill in their job.
You can practice organizational dynamics, try to figure out who the 'players' are and who the 'pawns' are. It's a sort of morbid curiosity and of course once the players notice you are looking at them you will have to be on your toes and bob and weave lest they corner you on the board. (You don't want to end up fired with everyone in the organization thinking you're the reason the world is screwed up, and a good player will try to make that happen to protect their turf)
I wish there was a way to quit and on the way out mark the entrance with ultraviolet sensitive ink or something so that others could know what goes on there and stay away.
Since you are asking these questions though, you are in good shape.
> Find how how complete idiots maintain a lock on their power base, what techniques do they use if it is clearly not skill in their job.
While this is extremely interesting, it's not something that can be learned in a reasonable timeframe, and may never be learned if you don't have the right approach or luck into the relevant facts.
For example, one company I know of, the CEO was in charge for 8 years, while the company constantly lost money. They struggled to come up with new products, flailing around. They only stayed afloat through patent lawsuits, without which they would have been long out of business.
During this entire time, the CEO made mid-six figure salary. I use to remark, "If I understood why that company was still in business, I'd be rich".
Why did the CEO stay in charge? The answer is very boring. 2 of the 3 board members had already checked out, writing off the entire investment, and the third was personal friends with the CEO.
The answer is not always interesting, and there's not always as much to learn as you'd hope.
There is too big a need for talented developers for you to stay there. Call a head-hunter.
I’ve been in such clusterfucks, probably a dozen times (that's a very large number no matter how long your career is) and, as much as I need to tell me that, I never really learned from staying. All I learnt from trying to point out how brocken the situation was (the three first times) was that people do not like to be pointed out their mistakes, and some might actually commit suicide for that. The fourth time, my desk-mate wrote a book on how bad the situation was; the book was really good, actually, in a lucidly desperate and unwillingly helpful way. It ended up selling a dozen million copies (US Ed.: ISBN 0-375-42373-7.)
After that, I’ve learnt more than I want to, and more than I can actually use about too-big-to-fail, harrasment, corporate fraud and covering one’s ass. The only useful tidbit: I’m not happy in larger organisations (something anyone who met me for ten minutes can figure out).
Chiph is right: you will learn something, and be able to avoid patterns, but that's actually not very useful: you can tell a mess without experienced it before (you just did) and two messes never really look alike.
Staying would just make a part of your CV uncomfortable (mine is a minefield); one is probably easy to avoid or explain, and a great source of jokes for dinner-parties.
I make very funny presentations listing fuck-ups; none of them has ever actually helped anyone around me to not find a creative way to get something deeply wrong.
The company was French electricity monopoly EDF, and their reaction to the book was instrumental in propelling it to success. Its creator is now widely known as the French version of Scott "Dilbert" Adams.
Wow, just wow. I am working there at the moment, and it's even worse than you may think.
I've been there as a consultant for almost 2 months now, and I still don't have my computer.
As a developer.
I've been told it's normal, and nobody seems to be alarmed.
But that's not the worst thing. People actually enjoy it, if you listen to some, they found the perfect "job"! But it's crushing me, I'm a very passionate developer, and I miss coding. I'm done working for big french companies, I started looking for greener pastures a week ago, and I'll probably quit my consultancy firm next week.
You can't ignore the psychic impact of working on a project going nowhere, or down the toilet. As noted here, I don't think your own job seems in danger, but if you are not working on stuff that juices you up, and is going well, it will have a medium to long term impact on you.
Hiring managers can tell that you've been working on boring, soul-crushing stuff. This sense is almost indistinguishable from the sense that you are a bored individual; hiring managers won't bother to figure out what's what.
It can take a couple of years to get your 'mojo' back if you have been in the wrong situation -- I would urge you to act wisely, and move before you lose it. You'll be glad.
I agree strongly with this. I worked as a consultant on a zombie project where the out-of-his-depth PM held a 2-3 hour phone call every morning with a team of 15 as his way of moving development along. Needless to say, that didn't work. I was billing a pretty great rate for myself at the time, and for a while sort of enjoyed just reading HN or a book on someone else's dime every morning, but eventually I realized it was sapping my will to do good work of any kind -- either paid or for myself. I found a good stopping point and left.
In the Netherlands we have this TV show called: "help! my husband is a handyman". It is about families living in a mess that should have been a palace. But the handyman had so much jobs to do he just could make up his mind were to begin.
I think this also applies to problematic projects like this toxic one. The mess seems too big to clean up. But it isn't. You just have to start somewhere and clean up little by little.
In the past I had to implement a feature in a toxic software project. While implementing the feature I also refactored some messy code and even deleted some functionality nobody every used (thousands of lines). By doing this I broke some parts on purpose and added some functionality to fix what was broken.
Now others who were also working on the project had to deal with the stuff I broke. Ofcourse nobody liked it, but when they knew I provided better functionality to fix the problems everybody was happy because they knew this had to be done.
Broken gets fixed, shitty lasts forever. That's why sometimes you need to break shitty things on purpose.
"Toxic workplace, what do I do?"
quit. F' that noise. It isn't worth the frustration. I did the same thing about a year ago, working for federally funded science. The worst decisions on earth were made, money was wasted AND they complained about budget cuts. It got to the point that someone was like, "you look miserable?" and I was. Toxic is a perfect word, it was literally eating away at me. I quit, had no job lined up, went on vacation while emailing my contacts about jobs, came back with a job. Done and done. Being in a toxic environment does nothing for you with the exception of teaching you how NOT to do things. But, it seems clear the author of this post realizes that, so your lesson is done. Quit. move on, don't look back. Simple as that.
This sounds like the kind of place where one could put in his 40 hours and bootstrap a project on the side. As long as you can sort of disconnect yourself and avoid feeling overwhelmed, you could also put in just a solidly competent performance and enjoy the steady pay.
If that doesn't interest you, then quit immediately for greener pastures. Even if there's no risk to you, you only get one career, and staying there is wasting time.
This sounds like the kind of place where one could put in his 40 hours and bootstrap a project on the side. As long as you can sort of disconnect yourself and avoid feeling overwhelmed, you could also put in just a solidly competent performance and enjoy the steady pay.
That's not a bad idea. I did basically that for almost 2 years while working for on a trainwreck of a project managed by clueless PHBs. I just came in, did the bare minimum I needed to do to stay employed, and reserved as much of my mental, creative and emotional energy as possible for Fogbeam work after hours. Hell, I'd probably still be there, except I got so bored and tired of the B.S. that I started speaking my mind about things, and pissed off a lot of the managers, and eventually got laid off.
In hindsight though, getting let go from that place was a blessing. You can do that deal, but it takes a toll on you after a while, even if the job is nominally "easy". There's a unique sort of mental stress that comes from grinding through soul-sucking boring bullshit, tedious meetings, and inane bullshit day after day after day after day...
The day I walked out, the sense of relief was virtually palpable.
So I guess I'd say "go this route, but don't let it stress you out too much. Tolerate it as long as you can stay sane, then just bail, or force them to let you go".
Although it adds color to the situation, not all non-profits are clueless about technology. There are many that are run as well as (or better than!) many tech startups.
If you're based in the Washington DC area, drop me a line. I'd love to connect and help you find a better position. (I'm not a headhunter or recruiter - just a non-profit developer who doesn't want to let one clueless NGO tarnish your impression of all non-profit tech for life.)
First, what you describe is pretty typical in certain sectors. They have a monopoly mandated by the government. They have no profit motive. You need to start by stepping back and realizing what the incentives are.
This is to do just well enough to avoid the ire of the government regulators. They don't need to earn customers. They don't need to offer quality services. They just need to do just well enough to scrape by. This is exactly what they are doing.
So the first thing you need to do is adjust your expectations and understand that it is all a charade, and that that is what the real game is.
The second thing you need to do is take a look at yourself. Do you want to work in such a place? If not start looking for another job now before the environment poisons you. The real danger is that it can poison what you want in your career if you want to effect change.
Will you learn more (career-wise) by staying and observing the fall & aftermath, or by leaving now?
I would put forth that you'll learn more by this experience about how people deal with failure and what happens afterwards than you would if you left. Will there be shouting & tears? Probably. Will people get fired? Almost certainly. Will you get fired? Chances are low, but not zero. Worst case scenario - you get some severance money.
Given the track record of successes in the software industry (few/poor), learning what not to repeat will probably take you further than anything you could learn by swapping jobs and doing CRUD work. And if you get asked about it, you say "I could have left, but I intentionally stayed on, as I felt that this was something that I needed to experience so that I wouldn't repeat these errors."
The important thing is to act strictly as an observer (do your work, but .. observe what is going on around you), and not to engage in any schadenfreude or gloating. The people that lost their jobs -- for the majority of them, what happened was not their fault and they shouldn't be blamed or made fun of.
So build up some savings (you should have 6 months of fixed expenses saved up, anyway), sit back, and enjoy the ride.
I disagree, but respectfully so. You will learn a lot by staying, but as you said, it truly is a toxic situation. You'd learn a lot by shoveling toxic checmicals every day for 6 months too, but that has semi-permanent effects on you, and it's just not worth it.
I recommend you get the hell out, ASAP. Take your time enough to try your best to pick a new landing spot that is not so dysfunctional (even then, there's no guarantees, but give it a good shot).
Life is short. Pick a new spot that will be as enjoyable as possible on a daily basis, while also carrying your career in the direction you want to go, and GET THERE ASAP.
(And I say that from experience -- I've found myself in a few of these messes myself).
But if you're young enough, you may be able to quickly recover from this situation. Better than if you ended up in a similar situation towards the middle / end of your career. One thing that a similar situation in my early twenties helps me with now, is no matter what, I can always say "At least it isn't near as bad as that company". Or, I can properly assess my current situation and know if it is getting just as bad / worse.
> I would put forth that you'll learn more by this experience about how people deal with failure and what happens afterwards than you would if you left. Will there be shouting & tears? Probably. Will people get fired? Almost certainly. Will you get fired? Chances are low, but not zero. Worst case scenario - you get some severance money.
No one is getting fired. This project is in steady-state.
Barring that, adhocratic takeover. Loudly proclaim "I AM TAKING OVER THIS WING, IF YOU LOVE ME FOLLOW ME" and start treating the project as if it was only you working on it. See what those who do follow you want to work on, and split tasks according to mesh-management protocols.
This assumes that you care about the project getting done, if you don't, pull a Wally and enjoy all the extra free time. :)
By the way, I give this advice after having done this at least once. The product was delivered slightly ahead of the revised schedule, after which the team was disbanded because the higher-ups did not want to deal with the surreal situation. I managed to get 1 out of 6 developers to follow me.
I did something like that once, many years ago. I was working on a doomed project to replace the numerical control for the companies main product line--internal grinding machine tools. The project was going no where. I was getting sent out of state to attend worthless meetings.
I took myself off the project, sat down and wrote an OS for the existing hardware and dragged a few coworkers along for the ride. By the time I left, almost all of the software group was working on my OS.
This was many years ago--I would never write an embedded OS today but this was the early days of microprocessors and good embedded OS software was very expensive and generally licensed on a per use basis. Trying to get the company to pay license fees would have killed the project immediately.
The OS and subsequent application software took about 2 years and worked quite well. It helped the company get a contract from GM Saturn. I learned a huge amount in those 2 years. It didn't help me keep my job at the company though. The broken nature of the company wasn't fixed by simply delivering working software. There was really nothing I could have done to extend my career there and in hindsight, I should probably have gone and done something different.
Not much to tell; the person who had put himself in charge of building this Android based sensor for NASA wanted to build a little empire, and kept asking for more funds and personnel and insisting that all communication go through him.
There was me and one other person doing all the work, so we just tuned everyone else (four people) out and forged on (to the extent of ordering parts and PCBs on our own dime, etc.)
The higher ups were getting two sets of reports, one saying "we are stuck and need more resources", the other showing progress. Eventually the final recipient of the sensor called a meeting, at which we just showed up with three working units from the first production batch (we had gotten the PCBs printed and I had hand assembled them, but it wasn't really fair to call them prototypes anymore).
That caused quite a bit of cognitive dissonance :)
This assumes that you care about the project getting done, if you don't, pull a Wally and enjoy all the extra free time. :)
There's a part of me that wants to treat Wally as my role-model! He's definitely my favorite Dilbert character.
Unfortunately, I had the (good|bad) fortune to inherit (or learn) a strong work ethic from my dad when I was a kid, and while I don't mind a bit of goofing off here and there, I could never pull a "full Wally". And now that I have a startup to work on, I have a hard time even letting myself take a day off without feeling guilty. :-(
While this fish was rotting from the head down long before you arrived, it would be better not to be around when stool samples hit the gaseous oscillator. Some of it might stick to you by mere association.
This is superior advice to quitting immediately. You're much more likely to get a good offer if you already have a job and don't need a new one (talking in the financial sense here) than if you quit first and then have to negotiate a package from a position of unemployment.
I've seen people quit their job and be forced to come back when they couldn't find work elsewhere. Why take that risk when there's no need?
> In addition to that, we are being thrown onto the Agile train with hope that it will save us.
I can hear the higher-level discussion in my head: "We don't have a plan, we don't have clear requirements, and we have no process ... that means we're already agile, right?" "Let me look at my checklist, Jeff. Yes, it seems we are in fact agile."
It isn't necessarily nonsense... To some Agile is a word to describe a process that leads to quality software being delivered with a happy team. To others, it's a consulting gong show. All depends on who is leading. Just like any approach.
Lean startups are talked about a lot on HN for example but there are plenty of debacles and snake oil consultants in that realm as well.
- they are no longer in their early 30's. I have a family to sustain.
- don't see themselves as rockstar developers. I constantly dabble in side projects from natural language processing to web development to building Android apps. I feel I provide a lot of "out of the box" input. But since I am a hard case of impostor's syndrome I don't feel like I could eg. lead a team. Or, heaven forbid, do a start-up.
I feel I am wasting my life here, but the market is not great for self-conscious devs.
If the option exists to keep doing the horrible job, that means there is no direct pressure to quit it. That means sustaining your family is never a problem, you can hold on to the job while you are looking for a new one. You can even have someone else (a headhunter) do the looking while you work the job.
Maybe you should stop giving your self syndromes and acknowledge that you know how to program. Businesses are looking for people who know how to program, why do you think the market is not great? Last thing I heard many businesses are still scrambling for web and app developers.
It is a well kept secret, but the kind of team leader that doesn't think he's a good team leader often is a good team leader. If you position yourself as just 'one of the boys' you get a lot more honest feedback, and you'll be less of a cock to your team.
Doing a startup as someone who lacks confidence and needs to sustain a family seems like a bad idea, unless you could get into YC or something.
Also.. maybe I'm naieve but you should do something about your confidence, aren't you raising a child?
>Businesses are looking for people who know how to program, why do you think the market is not great?
Because basically the only interviews I got in the last months were in other enterprisey gulags. It's not enough to know how to code, you need to be able to market yourself, be part of the attention-based economy (I am an introvert, I don't really know how to leave an impression in the web 2.0) and presumably invest a ton of time in grooming your open-source projects.
I am no complete failure, over the years I have done quite some stuff - but a lot of that is NSFW, so not so great as a showcase.
>maybe I'm naieve but you should do something about your confidence, aren't you raising a child?
I don't really know what to make of this - I do, but it's not like I can just pull myself together to raise my self-confidence. I have been making gradual improvements, but I just can't flick a switch.
>> maybe I'm naieve but you should do something about your confidence, aren't you raising a child?
> I don't really know what to make of this - I do, but it's not like I can just pull myself together to raise my self-confidence. I have been making gradual improvements, but I just can't flick a switch.
I'm sorry I am not trying to say that it's something you can just do, but you were sounding a bit defeatist. If you say you're making gradual improvements I respect that.
The attention-based economy is simpler than you make it sound. The idea is just to build something you like, NSFW or not, and put it on github. Use some hip technologies to show you have the ability to learn new technology.
For fun, here's a small recipe:
Pick a combination of 3 technologies that have been up on HackerNews lately, say AngularJS with MongoDB and Node.js, do 2 small projects with them, and maybe an Android app in Java (or whatever your enterprisey language of choice is) that does something silly like open your garage door or plays words your child said.
Now you have 3 original projects on github that show aptitude in frontend dev, backend dev and app dev, fill out your github resume with at least 3 forked open source projects you find interesting, and another 2 you submitted a patch to (just fix a spelling mistake in their docs or a trivial bug in their tracker).
I bet you could build this github resume in 2 months of free moments in evenings/weekends. Accomplishing this will give you a confidence boost ('hey I can do hip stuff') and I bet it'll do your resume a lot of good :)
Fellow dabbler here post-30. I totally understand and feel the same way.
Recently, I realized that my dabbling behavior is what keeps me from achieving expert status in any particular tool/language. I am broad, not deep. Oh ...and I discovered that I don't like managing people.
I think what you are describing is pretty common among developers. The good thing about your situation, is that you have the power to change your self limiting behaviours. You have to push yourself. Finish a webapp and post it to HN. Get involved in a local tech group and do a talk. Sign up for a MOOC from Coursera or Udacity. All of these requires hard work, but will give you confidence. Beeing successful as a software developer is as much about how you market yourself as how good a dev you are. So if you want success, you have to learn how do those things. I'm learning this as well. It's not easy, but necessary.
> I am planning on doing a graceful back-flip out of this mess and quit. What are your suggestions for immediate and eventual haul until my tenure is over ?
Are you asking what you can do to improve the project while you hunt for a new job? I'm not sure what "immediate and eventual haul" means. It sounds like you feel some personal or professional motivation to help the project, even if you have already "checked out".
I recommend that you start your job hunt immediately, network with positive and connected people in the organization while you still can, leave a good impression with your managers if possible, and generally avoid rocking the boat.
Even though it may feel cathartic, burning bridges is unproductive. This is a small industry and you can only hurt yourself. The organization will not make any changes based on anything you say in your exit interview that might rescue the project or improve the lot of the co-workers you leave behind.
I have to add my vote to the "quit sooner rather than later" column. Several years ago I worked in a similarly dysfunctional environment (also in a monopoly position in their industry): terrible code, terrible development processes, you name it. I was tempted to quit after a month but gritted my teeth and tried to change things as best I could. I quit after nine months there because I realized that I was a) getting nowhere with higher mismanagement b) waking up angry because I was having dreams about the technical arguments I'd have the next day. Leaving that place was I think one of the best career decisions I have ever made. Epilogue: I nearly doubled my salary at my next gig, which also was nicer to work at. Life is too short to endure a shitty job. Good luck!
Some of the time, potential employers look at what you did when they knew times were rough at a given job. They assess your actions and ability to perform under duress. While I do not say stay. I would say take the time to provide the most value you can while you consider your next career move.
For example: Document inefficiencies, cultivate worthwhile relationships if applicable, establish trust where available and create a turnaround plan. The goal is not necessarily that you have to save everything but provide an open communication channel in case someone decides to shift culture for the better.
Lastly, stay humble. While it seems toxic and a road to nowhere, remember that where you are could be worse. You are a professional. Don't lose sight of that.
Been there. You're in no harm as long as you leave within the next 6 months. Don't let yourself grow bitter. Don't get to the point where you feel you have to leave now! You don't want your sanity or your career to suffer. Once you become "damanged" it will take a while to "heal" but during that time other hiring managers will pick it up like a sixth sense.
If you make the exit and explain to anyone who asks why you are leaving that you feel you are under utilized (no negative remarks) then they have to accept that. If they press, be diplomatic. Good luck.
I think this article describes the majority of jobs out there. Of the 5 places I've worked, only one of them could be described as "functional". I've learned to just deal with it. I put my 8 hours in each day, and then hit the personal projects hard when I come home. I've learned not to rely on my job for anything other than a paycheck.
Until you find a new gig, go to work, do what you're told, and collect your paycheck. Don't invest any emotion in it or try to go above and beyond to help, it will just leave you bitter when it goes nowhere. Get out quickly though, because it could easily become a blemish on your resume.
Yes, I have that situation too, with 2 other guys I develop some government's application from scratch, this 2 other guys don't understand anything about software development, there's no solid foundation, messy database structure not even have standard code convention and yes in business level changes is inevitable, the development itself running for almost 2 years, this is hell for me, I value best practices in any level, but reality is cruel, even my boss quit this project and replaced with other mediocre boss.
Until now, I still in this toxic workplace, hope for changes always came everyday, then again reality is cruel, I'm thinking to quit, surrender, find other place and I will.
So, my poor friend, if there's no good progress at all, please get out, you and your talent deserve better.
"what do I do?"- If you can jump ship ASAP, there is tons of opportunity out there.
I was in a similar situation (not quite as bad), but I couldn't leave because of a business obligation. I survived by insulating myself from the dipshits. We formed an isolated 'blackops' team within engineering that was beholden to nobody but ourselves. We were able to move at lightspeed compared to the rest of engineering.
After a year our small team actually began a major pivot for the company (culture, technology, etc..) and breathed new life into the company. Most of the diphits were jettisoned and the others were moved into supporting roles.
I'm curious to know how you fingered the organization based on the scant amount clues provided in the text; like incision said earlier, there are a large number of companies in the exact same situation. What makes you think you've got the right one, specifically?
I would like to say that there's a chance of salvaging the project but there probably isn't and its not your fault. I haven't been in your situation before but I would suggest that your course of action depends on you core morals.
Do your job, find a better place switch. if the money is good, consider one more lap at accepting the state of affairs and stay clear of the guillotine that will eventually make an appearance.
Although I'm no developer I've been in a similar situation, where the boss was bullying a colleague of mine. Situation got so infected because of this that almost everyone in the company stood up to the boss. For the bullied colleague, and the few of us who worked closely to her, it ended up getting us all fired. I consider myself good at what I do and some of the others that were sacked excellent. I didn't have the choice to stay or leave. Being let go, I was afraid my career would take a serious dive. It didn't. Next employer bumped my salary, gave me great conditions and I actually enjoy working nowadays.
In hindsight being let go was the best thing for me. It's hard to realize it when you're in it though. My advice to you is to leave and (try) to never look back.
Considering bad mouthing your previous employer, just don't. You can share such details after you're hired and people have gotten to know you. Mention the work you've done instead during interview.
> There's an insurmountable amount of technical debt that nobody wants to acknowledge.
That is the impossible issue. By refusing to acknowledge the fundamental technical debt, ALL other conversations are entirely pointless.
You end up trying to come up with backchannel misleading ways to solve the real issue... "maybe if I just say we need more tests" ... "maybe if I recommend a new architecture, which will force a rewrite" ... etc.
The problem with all these things is that if they aren't validated and required by the technical debt (which is unacknowledged), you just seem crazy!
I have now had to deal with crippling technical debt twice, and I think it is maybe the most toxic issue I have ever seen, made worse when there is an emotional connection or overvaluing of that code.
At a certain point, if you have too much technical debt... I think you just have to declare bankruptcy on it and start over, doing your best to reuse the bits that are worth it.
I enjoy my job a lot and once in a while I think about quitting. My reasons are what you might call the first world problems of the tech world. The people I work with are great, but the organization is occasionally bonkers.
I left a defense contractor because I didn't like the way they managed projects. I found a new job and gave two weeks notice when a hole appeared in the schedule.
It is healthy to think about moving on even when you are in a stable, even great situation. If you don't, you won't make your life an adventure.
Saying all this as a generally satisfied person, I have no doubts I would be looking for an exit in your shoes.
I would find one too, because as an engineer, interviewer, and needer of engineering talent to work with, I know that good candidates are hard to come by.
Well it looks like a mess and you can't do anything about it so here's what I would suggest.
You already decided you want out so you have nothing to loose make a lot of noise and get everybody's attention, try to take the lead and make something out of that crap project.
One of 2 things will happen
1 you will take the lead and save the project and earn a lot of respect from everyone by doing so or
2 and most likely they will treat you like the new guy with no experience and ignore your or fire you because you see things they don't want you to see and are being disruptive.
From where I'm standing both outcomes seem favorable to you
1. you earn respect and maybe more
2. you get out of a failed project and dysfunctional community
Since this is non-profit, it almost certainly doesn't pay you well enough to waste your days on a massive death march project like that. No unit tests? You've gotta be freakin' kidding me. Cut and run as soon as you can get another offer.
Quit. Tell the reason why in a polite way. Write an email to the CEO of the organization, and to your bosses. In the end they will thank you. Find a nice job that suits your working style.
For me for example, I worked one year in a big telco where they hired lots of CertifiedScrumMasters, which tried to introduce scrum, but at the same time managers without any technical knowledge came walking into our room asking when feature X will be delivered, and why it is not delivired yet.
Introducing automated testing went very difficult since the budget was strict. Bad developers where hired because they had a "Certified Java" certification. It's a mess.
I now work at a startup and I get to hire the people! :-)
"The specific project I work on is way behind. It was supposed to be delivered before I joined. There's an insurmountable amount of technical debt that nobody wants to acknowledge. Bad decisions were made with regards to developer software, tools, source control, software design, database management, environments etc."
Welcome to the wonderful world of IT :-)
My advice: You're going to be looking for a new job very soon and during the interview you're going to be asked about your last job. You'll tell them how bad it is and they'll ask you what you did about it. At this time you need to think about how you'd like to be able to answer that question, and act accordingly.
If all of the common procedures like peer review and QA are absent, you've got some sweet freedom. The real problem is that you're trying to change it, try to live with it instead. This kind of workplace could be a lot of fun ;)
Sounds pretty normal for a big org. If that's not your cup of tea, quit and move on to something that fits you better and do it quickly. You've got nothing to lose and they really won't miss you so why prolong the agony?
I think it might be revealing that nothing positive or anything about the job that might want to keep you there is mentioned in the writeup. If you don't like it and the environment is toxic, life is too short.
I suppose I am in the minority when I say I was in the same sort of position but stuck with it. I was hired to work on a zombie of a product, walking dead, unprofitable. The problem was there had been no direction for several years and with my help the project is now back on track. There was a period of time where I did the absolute minimum but by taking the initiative and doubling down I am proud of what I have done. I have a problem with startup culture where people are quick to jump ship instead of putting in the required work to create real change.
I think your plan is right - leaving is the only option. And rocking the boat before you leave is probably not useful to the org, nor helpful to your career. This sucker is going down, and moving along is the right call.
As you transferred in, and seem to show some loyalty to the org transferring seems to be a good possibility to look into, particularly as I agree with Incision: you in no danger (of getting fired/etc.)
On the other hand projects that are going down are horrible for your mental health and sometimes physical health, and as such getting out is important.
Just imagine what you could do in an environment that nurtures you, values your opinions and embraces change as a Great Thing (tm). The job markets are in your favour these days. There are a lot of start ups and more established companies looking for people like you who obviously stand out. If I was you I'd start fishing to see what are my options in other places. One of these options will be something you just can't not take and your notice of resignation will be easier to hand out.
If you decide to stay, how you handle this situation and how you get to the end of the project will be remembered by everyone involved. Assuming you dig in, do the best you can and try to keep your chin up, this can help lead you to better opportunities on new projects where you are asked for by name. Also, the relationships you make now, can also follow you and can be leveraged down the road as the company grows and as you maneuver through the growth of your career.
While I can't give any meaningful advice I can say that I relate a lot with the following "People that should not make any decision with regards to how we develop and deliver the software have all the say."
At my workplace I feel the same, what I have been doing is just keep up with the orders and tasks assigned, just enough to stay employed.
I must say that I have been considering leaving for a long time now.
This sounds like almost every nonprofit I've worked for as a consultant. There are very few that are actually technology driven, moreover they're often driven by mediocrity.
That doesn't mean they're not nice people, and that they're stupid (well ok sometimes it does), but it usually means they're working poorly. Often the organizations lack leadership because people with leadership skills tend to go for money.
Sometimes the fix cannot be implemented at the team level. It has to be implemented on a larger systems level. In other words, either the organization itself has to go bankrupt and be dismembered, or your entire team has to be dismantled and rebooted.
That's the advantage of living in a capitalist society though. Organization level reboots are relatively easy.
Leave. The org is old enough and established enough that it isn't going to change and you won't change it, it will change you (think Gollum). There are plenty of good and great places for a talented person to work. Don't waste your life working for bad organizations.
What should you do? Quit. Sooner the better. It's like dating someone and hoping you will be able to change the things you don't like about them later - it will never happen. Get up, get out and go work for a smarter organization. Life is too short!
As others said - commit to Quit. Create two options for yourself - one job and one working for yourself. Staying will tar you with the brush of the company.
But before you leave write a very well considered and professional memo and send it to the CE/board/exec team, offering to meet with them as well.
Keep it internal, and leave it there.
I would aim at communicating three things:
1: That a problem exists at your level, and give three examples of how this manifests. Focus on how things work rather than on people and personalities and the overall implications for the project and organisation.
2: Your understanding of the root causes of the problems. For this it's best to canvas other people but make sure the conclusions are your own and not blamed on others. Focus on causes that are not people but processes/structures that have et the organisation up to fail.
3: Your recommendations for the senior exec/board etc. Again I would give tangible things they can do that do not involve individuals, such as immediately de-scope the project, bring in certain external help, separate out this department and that and so on.
If they are smart they will meet with you, and even keep you on in a role where you can help make changes. I suspect they will not, but at the very least you will have tried, and they will have evidence that they should not ignore.
The only thing we always have is our reputation. I suggest that relying on others to be nice is a good way to lose it, and that knowing we didn't do the right thing in a certain circumstance is also bad for our own self-esteem.
If the poster would like a reputation as a nice guy - then sure, he could leave without saying much and hope that nobody says anything bad about him, or even remembers that he worked there.
If he'd like a more proactive approach, then he could try to leave a reputation as a nice yet strong person, a competent person who was brave enough to try to help, but also polite enough to escalate it quietly.
Imagine being were offered a job at Enron, or with Bernie Madoff, knowing what we know now. Who would take it? Who would steal away into the night if we found ourselves there? Who would first try to do something about it or at least document that we saw things were wrong and/or try to escalate?
I would hope I would be firmly in this camp, trying to be someone who is unafraid to live to my own values, not those of others.
To reply on the divorce example:
A thoughtful discussion about why things are not working out between two partners is always in order, even after the divorce. We are all trying to learn. But just as the example of bad breath is not the root cause of a divorce, some of the symptoms in the original post are not the real problem.