Why Developers Get Fired
jammag writes "Other coders get canned — but never you, right? From a developer who's now a manager (and who admits to being fired himself) comes the inside story on how the Big Ax might sneak up on you. To prevent it, he recommends some strategic bragging, keeping a CYA (Cover Your ...) folder to document your efforts, and making sure that your talent isn't frittered away so much that even your most mediocre colleagues look good. "
However, some people truly have their heads buried in the sand (or their code).
Yes, imagine the shock and horror that you would see on people's faces if I spent my time doing what I'm getting paid to do: develop code. Yes, I'm young. No, I've never been fired but I've been "hired then unhired" out of college because of a poor job environment in the locale of my origin. No matter, plenty of jobs were out there for me.
Spiegel claims he's fired people. I wonder how he would have chosen people if he saw through an employee's thinly veiled attempts to make himself look better? Or if he knew that employee spent time trying to cover his or her own ass instead of -- you know -- just get work done? These points aren't addressed in the blog.
So for those of you reading this, I will offer you an alternative to what the blog suggests. I imagine most developers (even agile developers) have a system for tracking completed requirements and also for fixing reported errors/bugs. If you spend your time chewing up those outstanding items and forget about all this near-Machiavellian bullshit manipulation Spiegel is proposing then you've got nothing to worry about. If your manager wants to fire you, just pull up the numbers if he or she hasn't already and show them. You can't fire a developer that's leading in resolutions and completed requirements. It's that simple. Skip the drama and get to work.
My work here is dung.
This is kinda vicious but my strategy is if someone else's coding isn't good enough or they make massive mistakes, I don't just let it fly. You don't have to be their boss, you only have to be working on the same project as them because you're the one putting up with missing object methods and bad documentation and poorly written code. Tell em to rewrite it before you can use it and correct them and generally let them know that it has to be acceptable or they get to fix it. If anyone asks about project delays, don't hesitate to throw them under the bus and accurately report that they were the reason for the delay because their code didn't work. Soon it'll become really obvious that they're the inferior employee who should be replaced if possible. Do note that if you're the one always screwing up, I hope you expect the same thing to be done to you. Get better at programming or get a different job.
Google's Super Secret Search Algorithm: SELECT @search_results FROM internet WHERE @search_results = 'good'
I wasn't fired because I didn't toot my horn. I got fired because I knew the system too well -- and when upper management was told about this, specifically about a distinct lack of guidance in their security policies and documentation, they canned me. The reason developers get fired is either for the same reason most people get fired -- namely that they piss off the wrong person and they find someone in power to make their dream come true (and someone else's nightmare to begin), -OR- they learn too much about the system and not enough about politics and get caught by surprise when they try to implement a change that is a political hotbed. My last job: In-house developer doing network/system administration, deployment, and integration tasks.
Very often, developing stuff (especially in-house) has conflicting political goals, which are distinct from the design goals. Each team wants a certain piece of the pie and wants assurances they are "indespensible". Well, the problem is that in every project people need to work together and so there is always some overlap or need for integration -- which is fought tooth and nail because once things are integrated and made redundant (as business should be) -- people stop being "indepensible". So those that are slightly more politically aware find ways to strategically delay the project or insert superfluous technical considerations. And should a really good developer see this and figure out a way to convince others (by the strength of his/her design argument) -- this person will very quickly find a surprise pink slip for some random reason.
Keeping your job as a developer is as dependent on your ability to design well as it is on your ability to know when to duck.
#fuckbeta #iamslashdot #dicemustdie
Programming is relatively simple compared to the complexity of human interaction. While we might consider it lame that software development is heavily influenced by purely social factors, it doesn't change the fact that we live in a social world. Too many developers think of themselves as the lone console cowboy, churning out brilliant code few others can understand. Too many developers think if they simply write good code, the rest falls into place.
The hardest part of software development has little to do with computers, but everything to do with people.
Spiegel claims he's fired people. I wonder how he would have chosen people if he saw through an employee's thinly veiled attempts to make himself look better? Or if he knew that employee spent time trying to cover his or her own ass instead of -- you know -- just get work done? These points aren't addressed in the blog.
I think it's a matter of semantics. Bragging as a thin attempt to make yourself look better when you suck is worthless. Managers are not stupid.
However, managers are busy. In most organizations, too busy to do too much work managing their employees. Business bragging simply means to inform your boss when you do something good. Don't lie. Don't stretch the truth. Just provide information the boss might be too busy to notice.
Managers like when you make their jobs easier.
-- Support a free market in the field of government
You must be wet behind the ears. None of what is mentioned in TFA really states you have to take these steps to the extreme. While you never came out and wrote it, you sure make the implication that the writer of the article is telling you to do this.
Hard work only gets you so far. And guess what else? Hard work may never get you promoted. You go on to make another point on the other absolute end, that if you're a hard worker, you must be the top producer in your company. You can work hard and still fail at what you're doing. This is why people are sometimes oblivious. I've worked with a few people like this. They do work really hard. The work that they do, however isn't usually the best and no amount of training can help them out. Some of them just never got it. Some of them were the type of people who thought that their way was the best way to do things when it clearly wasn't. In either case, they worked hard but were eventually let go because of how their work turned out.
It never hurts to chat yourself up casually every now and then. You can do this a number of different ways. I'm a supervisor where I work. All of the supervisor's used to here that the president of the company thought we were doing the bare minimum for our jobs. That we were just good little foot soldiers. I realized part of the problem was that my immediate manager didn't really have an idea of what the fuck I did every day. All he knew was that I helped my team to produce a lot of work that generated a lot of profit.
So one day I took about an hour to sit down and type out a list of projects my team needs to address. These were mostly "as we encounter them" issues. Items where if we take half an hour, an hour even, we could figure out a few things out to help us out in the future. I send this list to my boss with updates about once a month now. It gives him an idea of what else I'm doing and how quickly these tasks are getting done. It also allows him to more easily give me help when I need it.
So what was the net effect of me doing that besides a little extra help from the boss? The president of the company has personally told me on several occasions that he views me as a very valuable employee. That I have a bright future there and that he would rather not ever see me go.
And honestly, if you don't spend a modicum amount of time trying to cover your ass, you may get blind-sided one day. You rail against it, but then in your last paragraph you even cite an example of how to cover your ass. Not everyone has access to raw data to pull up, so some tracking on their end might be necessary. It doesn't take a lot of time to do this.
Pro tip: maintain a list of everything you do: bugs you've closed, features you've added, projects you've planned, servers you've upgraded, or whatever else you've worked on. The next time your boss asks if you've been busy, you'll be glad to have a precise and detailed answer.
Dewey, what part of this looks like authorities should be involved?
I've been a software engineer at the company I'm at for about 7 years now. Was in technical support before that (enterprise level development support).
Here's my solution to not being fired. Make yourself damn good at solving the difficult customer problems no one else can solve. Do it so that customers and executives at your own company request you by name (executives at a customer knowing you by name can help here too). Yes, it makes life somewhat miserable when those ugly ass escalations come in, but you know what, when customers and company exeuctives ask for you by name because you did a great job solving problem xyz 3 months ago and saved a multi-million dollar deal, middle management will think twice about being the one to tell company executives, uhh, that person was fired last month.
Screw making deadlines, I miss deadlines all the time and haven't been fired yet. Why? Because instead of working toward my deadlines I'm saving multi-million dollar deals that could get lost because of other people's incompetence :). It's a great way for job security, and I love troubleshooting, even if the escalations are a pain in the ass.
Good coders get canned all the time. Often it's because they have and exercise integrity which equates to shitting on the kitchen floor in today's corporate environments. The advice in the article is entertaining but probably not practical. If you're on the chopping block there is little you can do to mitigate the outcome. It really depends on your *perceived* value to the organization. People are too smart and narcissistic to change their perception of you based on your bragging. Bragging used to work back when most people with power in an organization had absolutely no idea about technology. If I walk into work and start bragging about my work and skills today, my peers and superiors are just going to be annoyed and think I'm a jerk. Bragging about the team's successes, and how the current team is a cohesive unit, is better advice that may save not only your butt, but your entire team's as well.
I'm a former programmer, now a manager. Recently, we had to cut some dead wood. I went through all my employees and asked myself, "Would I hire this person?" (I didn't hire any of them in the first place). In many cases, the answer was no. Either they shouldn't have been hired in the first place (previous manager was borderline incompetent), they didn't work out as well as expected, or they had attitude/personal problems that outweighed their contributions.
Speaking from previous experience, nothing can save you if your management team believes that the cure for all their department's woes can be found overseas. If slashing the bottom line is their primary concern, I don't think there's anything you can do. Short of moving to Cebu or Bangalore.
Been there. Seen that.
/. Dissent will not be tolerated. Think like us or perish.
...the horrible degree of corruption implied by just about every post under this article?
The essential implication seems to be that your longevity in employment has absolutely nothing to do with your actual work. Rather, it has everything to do with someone else's perception of you, and said perception doesn't necessarily need to have any honest or factual relationship with your work output whatsoever.
If this is the case, I seriously wonder how much longer contemporary human society can last. Is it really so completely, unsparingly rotten out there these days?
The vast majority of my job in a management capacity is to translate from geek to suit and back again. The guy who owns my company, my direct boss, is not technically minded. The man has fantastic ideas, but couldn't write a lick of code or install a server to save his life.
The company is lucky to have someone like me. Many do not. And in the absence of an interpreter, you bet your ass that closing a lot of tickets in the bug tracker will mean dick when it comes to convincing your boss who doesn't read the bug tracker to not fire you. And frankly, pulling out the metrics to show that you're valuable is exactly the kind of strategic bragging you're arguing against.
You can fire a developer who is leading in resolutions and completed requirements. It happens every day. The job is not just to make sure that you're working your butt off, but that your boss knows it. Help them to make informed decisions. It may suck, but you know what, that's life.
Good article generally and good advice. But for a US audience.
"For those who donâ(TM)t see it coming".....here in New Zealand would earn the employer a death sentence in Employment court (well, a large settlement anyway).
NZ law states broadly 2 key points: That there is a relationship of good faith between employer and employee, and that both parties act in a fair way.
examples from both sides:
For the employer:
- Theft by an employee is grounds is grounds for instant dismissal
- A drop in income that requires a restructuring process when some employees might be shed.
For the employee:
- A drop of productivity can be due to various reasons. The employer must determine what those reason are. And instigate a prodedure policy known by both parties. The No.1 rule is "no surprises" to the employee.
- Numerous instances of Case Law indicate the employer must act to prove in a fair way they are right(they are the ones with the resources). For example , allowing one employee to arrive late but then enforce it on another first time late person would show lack of process and earn punitive penalties in employment court.
In post Patriot Act America, the library books scan you.
My question is why do good developers, that are talented get laid off?
Only 'flamers' flame!
Does slashdot hate my posts?
I too was the "star" of my team, and probably the last person that most people in my former company thought would be let go. However, my company was hit especially hard by the recent economic downturn, and as a result, I believe that I was seen as more a luxury by upper management rather than a necessity. So with that, I was laid off.
It's been about 5 months now, and looking back I've often reflected on whether or not there was anything I could have done to change how events unfolded, and yes, there are a couple of things that I could have acted on, but it's tough to be a backstabber and that's pretty much what I would have had to resort to.
Since then, I've also realized a few other things:
(1) Staying in one company and being the "star" there can quickly cause a person (me) to over-estimate their worth.
(2) In my case, working for a single employer was causing me to be lazy with regards to networking and getting myself "out there" and as a result, 5 years worth of incredibly hard work for my one company was really pretty worthless when it came to social currency to land myself my next position.
(3) I am more thankful than ever that my parents instilled in me the art of saving my money. It turned what could have been an incredibly stressful and damaging situation into merely a nuisance and bump in the road. Nothing can quite provide comfort like having a nice pile stashed away for rainy days like getting laid off.
Happily, since then I've contracted for a few companies, and also done some freelancing, both of which have allowed me to really expand my networking efforts, as well as learn a lot of new technologies/methods/etc.. It's really gratifying to know that I have a lot more control over my own success and career, and whether I work 40 or 80 hours per week, my pay won't always stay the same (for better or worse).
Will I ever work for someone else again full-time as a W2? I'm not sure, right now I'm enjoying being more of a free agent and the new experiences it has provided. I'd really like to start my own company, as I think that would really be a lot of fun and a great challenge. So we'll see.
I got laid off once when the old boss died, and the new boss thought I was too tight with the old "administration". After I was gone, the lay offs were done. Go figure.
Later I got fired from Microsoft. Microsoft's corporate culture is about a grading curve. No matter how good your team is, no matter how successful they are, some get "A"s, some "C"s, some "D"s, and some Fail. You get an "A" and (at the time) you could be rich beyond your dreams. You fail, and you are asked to leave.
This makes life at work brutal, because helping others be productive doesn't get you a great grade unless you can clearly claim credit. Furthermore, making use of someone else's advances in an obvious way is going to count for them, so you don't do it. Bottom line, it makes a very productive environment cause deadwood gets tossed. But if you survive a few years, you do so because you can develop an "in" with those that grade you, and you increasingly get grades partly (but almost never solely) because of who likes you.
The bottom line is that your first year is absolutely critical. You are almost never going to get an "A" cause you don't have the "In"s for that. But you can't fall down in visibility or you are toast.
Now it happened that my Dad died the first year I was working there. It was a long and drawn out process with cancer. I took several trips during the year to be with him when things got bad. And for the funeral. And I found it tough to talk to people. Then I had a meeting with my group leader, a guy who laughed nearly constantly but paradoxically had no sense of humor what so ever. We met in a conference room outside the doors of the building, and I was told to simply leave. My stuff would be sent to me.
After being tossed out the door, the project lead told me, "My dad died, and it didn't hurt my productivity."
The bottom line is that I MIGHT have avoided this had I spent more time talking up and down the chain of command about what I was going through. I could have taken leave until I had my head back together. The environment made it tough to get any support from people around me at work, but I might have worked harder at that. But it is also possible that some situations just are not going to be within your ability to manage.
In my experience, bosses want to see things. Working user interfaces. They want to be able to play with products as soon as possible.
Bad strategy:
- Choose the best tools for the job even if this is not one the company used for previous projects
- Write solid, reliable, secure, clean, flexible, scalable, optimized and tested foundations.
- Tell your boss that you spent 80% of the time allowed to the project writing quality code, but there's nothing to look at yet.
- Sequentially and methodically write every part of the project, with a crappy UI just for testing
- Polish the UI, replace images with nice-looking ones
- Profit?
Rewarding strategy:
- Stick with the same old tools: no need to justify nor to demonstrate anything.
- Write crappy foundations. Hard-code data as much as possible. You just need to get a working test case.
- Work on the UI. Make it look cool even if it barely works. Add every possible button as soon as possible, even if they don't trigger any action. Looking at the interface is the way most people will judge the completion of the project.
- Connect the UI to the crappy foundations. You can easily show how much progress you did on the project.
- Rewrite the foundations so that they can deal with real data.
- The project is ready for production, you made the deadline.
- Plugging security holes, rewriting everything so that it can handle the real load, and fixing bugs will be dealt with after the deadline.
- Who cares about the quality of the code ? It's closed source anyway.
{{.sig}}
If your boss likes you, he will set easy goals. If he doesn't like you, he will set unrealistic goals
A former co-worker complained to me that management had it in for him, and that they were setting unrealistic goals for a project he was working on. When he was fired, I inherited that particular project.
This former co-worker was a third-level developer (meaning: his past work experience made his salary bigger than mine). I'm an entry-level developer. He spent around six months on the project, and in the end had very little to show for it. I spent just over a month on it, and duplicated most of his work but on a larger scale (he had done it The Wrong Way, of course).
Everyone involved is surprised at the rate I'm getting results. But really, the project just isn't that difficult; my former co-worker just had very little idea how to do it, and apparently reading any of the dozens of books written on the subject was not among his list of things to do. (That's all I did - I read a book on the subject, then started implementing things based on the guidelines given in the book.)
In other words, the goals set by management were only unrealistic to him because he wasn't good enough at his job to meet them. (He was fired for a reason, after all.)
Unfortunately, the document neglects to mention bad management counter-tactics. I just watched an engineer get guided away from everything productive he did into a "primary focus" of a project to re-write the manager's old project, saw the manager completely ruin the work because it wasn't written exactly the way the manager had done it (which was dangerous stuff, and the point of the project), and block the engineer from closing any other work orders until the primary project was done. The result was that it _killed_ the engineer's productivity on all those little pie charts and project ticket reports, and got him "encouraged to resign". And it kept around that old piece of dirty garbage code, which only that manager knows how to maintain.
I'd love to go directly after the manager for this, but it's hard. The manager knows how to play the paperwork game and the blame game and I'm not even from his company. It won't help the engineer much: I've written him recommendations and am trying to guide him to better work, but the field is still not hiring much.
Disclaimer: I am a lead dev/team leader.
The first thing that struck me about that article was that I had (blissfully) forgotten how horrible, corrupt and incompetent a lot of companies out there are. I agree with the overall thrust of his article, although I'd phrase it as "Be good at what you do, be proud of what you achieve, and act accordingly". That said, I just want to take a few points from the article. This guy has been working in some toxic environments, and it's done bad things to his world view.
Why wouldn't you see this one coming? Well, you might be thinking the missed deadlines are not your fault. Your excuses may include "the design was bad" or "the deadlines are not realistic" or "they are making me code in Java and I am a .NET expert."
Guess what? Excuses don't matter. Results matter.
The job of the manager is to make sure that you're doing your best possible work, and to make sure that all impediments to that are removed. It is not to make ludicrous promises and then blame you when they can't be delivered. If you find yourself working under such a waste of space, move as soon as is practical. If you are such a manager, please consider growing some stones and taking the responsibility you're being paid to take.
You have to promote your work. Yes, I mean brag.
That might work in the U.S.A. Good luck with that in, say, New Zealand.
If you are doing good work, then you'll receive kudos when the software is implemented. And if the implementation is not a success? This is tricky because you don't want to play the blame game in public.
The "in public" is very telling. You don't want to play the blame game at all.
Seriously, people. If you're a good developer, for pity's sake don't work in companies like this. They're rotting your mind.
Rgasuya aata! : I have been coding Perl and cannot tell where my fingers are now!
Many developers imagine themselves to be unique snowflakes, who are so much smarter and better at their jobs than anyone else could possibly ever be, again, this is something I understand. (I work in manufacturing, with engineers, toolmakers and quality people, all of whom either, are smart and know how to do things you don't, or think they do, to varying degrees.)
If you don't want to get fired remember these rules.
Don's rules for being essential, and thus not getting fired.
The better your boss is, the better these will work.
1: Remember who the boss is at all times. When it is you then act like it all times. When it is not you, remember that at all times.
1.1: Have your bosses back at all times, no matter what.
2: When your boss asks for your input give it, argue fight scream, yell explain why he or she is utterly wrong and you are right, do not pull punches.
3: Once your boss has made a decision, even if it is utterly wrong, accept it, go with it, do your best to make it work, if it is even remotely possible. If not, try your best to soften the crash landing. (Hint, sometimes your boss has made a doomed or stupid decision because someone told him he had to, or for some reason he can't explain to you, see rule 1.1)
4: Do brag, do point out when you and why you are useful and what it is you do that makes the company money, and makes your bosses life easier. These are your two primary functions as an employee. Being smart, being cool, coding/designing/solving problems etc.. That's all corollary in nature to making your employer money and making your boss happy.
5: Remember your boss may be a pointy-haired idiot, but he is your boss. (This is worth repeating.)
6: If you feel the need to stab your boss in the back, you make absolutely certain you are going to inflict a fatal wound, and you will have a new boss afterwords. Absolutely certain. (Uhm.. Please keep in mind I mean in a business/employment sense, please don't kill anyone because of what I post on /. However if you do feel the need to kill someone, it is probably better to finish the job with a single stabbing.)
7: Keep your friends close, and your enemies closer.
8: Revenge is a dish best served cold, and anonymously.
9: It is always better to avert any disaster or crisis from happening than it it to be sure you can blame it on someone else. Even if you have a chance to pin it on an enemy, or someone who is incompetent or stupid, don't stab anyone in the back unless it's a fatal wound.
10: In any workplace battle or argument, keep in mind what you stand to lose and what you stand to win, there are times when it is better to cave in and accept defeat even though you are right, than it is to win a bloody hard fought victory which will leave hard feelings on both sides for some time to come.
10.1: This rule applies even when you are smarter than the other side of the argument.
10.2: Even when they are stupid.
10.3 Yes this means you.
11: In terms of internal office conflicts do not forget to give those people you are fighting with a face saving way out no matter how wrong they are, no matter how stupid they are, they are people to, if you glory in explaining and demonstrating how smart you are at their expense today, then someday in the future they will be the one's preparing you a nice cold dish full of anonymous revenge.
Finally: Don't be a dick, don't be controversial for no good reason, like I said several times above, if I am your boss, make absolutely certain that I know you have my back at all times whether I'm right or wrong. [1] If you do this then I will fight for you to the bitter end and do everything but demand whoever wants you
India is way too expensive. How you can possibly compete by making software in India? You should really consider moving development to east Asia.
It's interesting to read in the Indian English-speaking newspapers how people are bemoaning the problem of "their" industry being outsourced to cheaper countries (China and Malaysia, for example). The quality won't be as good, they say, and the communications pathways are too long.
Hands up, those of you who think this sounds ironically familiar.
Do not mock my vision of impractical footwear
Then you make the entirety of the codebase reliant on one person and blame him for it not working in an environment he was not apprised of (in other words, he either wrote it to work in your environment, or a generic one). Then you arbitrarily decide that this person should be at the beck and call of the office outside office hours just because it was a VERY LARGE customer and fire him for not being contactable.
You wankers. I hope he sued your ass off ... oh, wait, this is the States where employers can act like slavery was never abolished.
"Wait. Something's happening. It's opening up! My God, it's full of apricots!"
No, it's not fair today. In fact, in most states employment is "at will", which means among other things that if you aren't a member of a protected class of people (and often if you are a member of a protected class) you can be fired for any reason at any time. And therein lies a large part of the problem.
Cops and teachers both have a very significant tool to protect themselves that developers as a rule lack: a union. Yes, I know, a lot of folks think of union regs as pile of bureaucratic BS, and unions as a bunch of corrupt jackasses (sometimes true), but the simple fact is that unions are very frequently a big net benefit to their members. Unions, for instance, are a primary defense that cops and teachers have against unpaid mandatory overtime.
Nurses right now are protected by the low supply and high demand, much like developers were about 15 years ago.
I am officially gone from