views:

1570

answers:

23

I was watching something on TV the other day and sat in disbelief as someone said something to the effect of, "I wish we could round up all of the people who made mistakes and punish them." That statement floored me. Punishing malevolence is one thing (preferably by immediate dismissal), but punishing mistakes? How is one to learn? Doesn't doing so stifle innovation? You can't be right every time. Don't we learn more from mistakes than being successful?

So, this got me to thinking. Mistakes are a way of life for developers, but many managers don't see it that way. I know I've worked in places where one could be reprimanded for mistakes in both judgment (e.g. incorrect estimations on time) and execution (e.g. plain old software bugs). My question to the SO community is, do you work at a place where mistakes are punished? And if you do, do you find that that behavior has an impact on your company's level of innovation?

In other words, are you encouraged to find good solutions to problems by venturing out and making mistakes or are you only permitted to implement tried-and-true (and therefore old and probably boring) solutions?

ETA: I'm not talking about chronic mistakes. I'm talking about honest-to-goodness mistakes where one did not intend the anomalous outcome and was reasonably unlikely to foresee such an outcome.

+2  A: 

In many places, consistently making many mistakes means you don't get promoted, or you don't get the fun projects or you don't get a decent raise or bonus in the next evaluation period. That usually speaks for itself.

Diodeus
+2  A: 

Yes, my employer punishes my mistakes by taking away responsibilities from me. It's so hard to gain trust, and so easy to lose it.

Jin Kim
+6  A: 

My employer doesn't punish, but Microsoft does:

http://www.youtube.com/watch?v=D28FkfJiauk

;-)

0xA3
I still enjoy that video. Wish it were true...
Huntrods
Damn, I was just about to post that link.
Ryan Fox
+3  A: 

Yes, they try to where I work, and it causes problems. Most of the time the "mistakes" are covered up. People convince qa not to report errors or the developer is sneaky and trys to fix the problem in production on the fly (we lock it down, but there are always ways).

Really it stifles innovation. No one is willing to take a risk, because they know the consequences. The product stagnates and no one learns. It costs the company more money in the end this way, because risks are where the big rewards come from. You don't lose what you don't put in, but then you don't win either.

Kevin
+2  A: 

I believe what was meant by the "punish mistakes" comment was more that we should not be "rewarding mistakes" by giving people money after they screw up. If you're rewarded for your mistakes then you never learn from them.

In the career world, making enough mistakes will not only get you no raise (which actually can cost you money due to inflation, your current salary is worth less next year), it will result in a "poor" performance rating. These are forms of punishment. But this discussion really has nothing to do with programming, either.

SoapBox
Actually, the discussion has a lot to do with programming, you just chose to focus on the political intro. The focus is the stifling of innovation by harsh regimes in a career path (programming) that basically implies mistakes will be made.
Robert C. Barth
+4  A: 

Mistakes happen. There may be gritting teeth, but it happens. Now if you keep making the same ones...

n8wrl
A: 

My previous employer did. That's why I don't work there anymore.
And the market punishes many mistakes quite brutally. You go out of business.

Jim Davis
+7  A: 

I'm really more interested in why the mistake happened. An honest mistake with big consequences is less of a problem than a careless error with minor consequences. The person resonsible for the former will learn a lesson, while the person responsible for the latter is just getting warmed up.

Jon B
+1  A: 

I'm not sure I see the connection between the big 3 and developer mistakes.

If as a developer you consistently make honest mistakes more frequently than other developers, you may eventually get shafted for promotions. But mistakes are part of the profession. You get paid to write code that initially has bugs in it and to try and catch your mistakes early enough. If you act in gross negligence or out of greed or something like that, you will get punished more severely.

In the case of the big 3 or the banking industry, you are talking about people who got millions of dollars exactly so they would guide a company without making mistakes, cutting corners, etc. At least in the case of the finance industry, they were bending the rules for the sake of their bonuses and greed and knew very well what was going to happen, there were enough warnings on the wall, so they should get "punished".

Uri
+2  A: 

I've worked in a company that it had very harsh punishment on mistakes: shouts, threats of being fired and ... more.
The outcome was that the employees, including me, had very low productivity. We preferred to check a piece of code or a result again and again so that we would not be wrong, in cases it was far from obvious that everything was alright and we should do something else.
Last time I checked, they lost one of their most profit-generating customers, probably because someone with better management could make a better offer.

dimitris mistriotis
A: 

As you go higher in any decision chain, your responsibility needs to grow.

A programmer might be laid off for making a mistake, but it has to be demonstrated that he did something pretty bad to fire him, a manager can be terminated (fired) without cause, a CEO can go to prison.

At some point you should get to the point where not knowing your job IS a criminal offense--claiming it as a mistake should not be an option. Of course, the people hiring you need to take some of the blame as well.

Bill K
I respectfully disagree. The severity of discipline should not go up simply because you're at a higher level of responsibility, and I don't believe they do. CEO's only go to prison if they break the law, not for simply making mistakes.
Robert C. Barth
Do you think that being incompetent in your job as a programmer (and possibly costing your company hundreds of thousands of dollars) is equivalent to being an incompetent president and costing hundreds of thousands of lives? Shouldn't you be expected to know your job at some point?
Bill K
Yes, you should know your job, however, there is no law against being stupid. I'd say that, in the case of an incompetent CEO, the blame is really with the board of directors for not firing the incompetent person. Again, unless the CEO did something against the law, the only remedy is dismissal.
Robert C. Barth
When you are making a million dollars a year and the livelihoods of thousands of employees rest on your decisions, competence SHOULD be a requirement-that it's not is a crime. Of course, I believe most of the current administration should be hung for treason--so take my opinion with a grain of salt.
Bill K
A: 

Depends on the mistake. If you make a careless mistake that has high client visibilty or that costs the company a significant amount of revenue, of course you will be punished in virtually every environmment I've ever worked in. And there have been developers who continually make the same mistakes even after being told not to do something; those developers are eventually deemed incompetent and fired. On the other hand you can't possibly punish every developer for every bug in the system; you would have no developers in fairly fast order.

A place where bad performance isn't punished would in the long run be a very bad place to work. There would be no incentive to not perform badly and all the worst employees would gravitate there. No thanks, I prefer being somewhere that gets rid of the deadwood.

I have found through the years that you are much less likely to get punished if you own up to your mistakes as soon as possible and go to management with a solution. I honestly thought I'd get fired one time when I sliped a decimal point on a bid and underbid the project by 600,000. But I found it and went to the CEO with a proposal for how we could restructure the bid and so in the end I didn't lose my job. But if it had come out after winning the bid and we lost money on the project as a result, I would have been fired and justifiably so.

Does it affect innovation? I suspect that tight deadlines affect innovation far more than fear of punishment if you guess wrong. Of course I probably wouldn't try an innovative solution without a backup idea in case it didn't work in any event.

I'm a little appalled that you find the concept of being punished for mistakes to be appalling.

HLGEM
I guess if bad performance = many mistakes over a period of time, then the person that is performing badly is obviously in the wrong career field and should think about retraining. But that's not punishment, IMO.
Robert C. Barth
+1  A: 

I have been fortunate to work mostly for "enlightened" managers over the years. I do not remember ever being punished for making mistakes.

I did work in a group where the employees used overt peer pressure to "encourage" themselves to avoid sloppy mistakes. They kept a "hoser" box. If you made a mistake that your coworkers thought should have been avoided, you had to put $1 in the box. You also had to explain to the group what you did and how you chould have avoided the mistake. When enough money was collected, they bought beer and pizza for everyone in the group.

It was an unusual group.

Larry Fix
A: 

I don't think the wall street guys comparison is that relevant. Those guys were supposed to be at the very top of an elite field which affects everybody and despite essentially limitless resources available to them they collectively and constructively failed over the course of many years and many opportunities to correct. Because they were greedy and they were complacent. "They" engineered this situation. It wasn't inevitable.

I can't think of any coder in a similar position. Well maybe John Romero...

In our real little worlds, blame cultures just create secrecy cultures.

annakata
+14  A: 

Your question equivocates making a mistake at work versus what the banks and auto industry have done. These are not the same.

The banks spent millions to lobby for the removal of restrictions on leveraging. They then abused the new rules and over leveraged themselves. While they were implementing the deregulation, there were many people who were waving their hands and saying - NO THIS IS NOT A GOOD IDEA. These naysayers also had historical evidence, suggesting the results of such an environment (last depression).

In the IT world, this would be akin to a Crystal Reports writer saying that they need all the ports open on the report server so that Crystal Reports can work properly. The System Admin/DBA says - NO, ARE YOU CRAZY? and then the Crystal Reports guy gets management to force the issue and opens all the ports. A few days later, after the entire network is hacked, and a debriefing is done, I would fire the Crystal Reports writer and perhaps punish the manager that pushed it through.

The U.S. automakers are a bit different. These people were dumb, lazy, arrogant. There is no way that the Asian/European automakers should have been able to compete with the U.S. automakers. They had all the advantages in the world. Instead of continuing to innovate and improve, they just tried to keep the status quo.

I like Barney Frank's suggestion. In fact, I would one up him by punishing our elected officials who voted for the Iraq War and for the Financial Insitution bail out. The former group wasted trillions of our dollars, killed/messed up a bunch of our soldiers (and perhaps a million Iraqis); while the latter group voted against the tax payer's will and basically allowed Paulson/Bernanke/Bush to rob the public and give billions of dollars to their friends.

mson
You completely missed the point. The introduction statement was merely that, an introduction. I should probably take it out so that more completely off-topic posts don't get made. I did not equivocate anything, I remarked on the comment about punishing mistakes, which is what the congressman said.
Robert C. Barth
You are using the notion of 'making a mistake' to mean completely different things. oops, I forgot to check in my codeversusi installed apache tomcat on the db server even though i was told not to and now our systems are down and the network is corrupt because i didn't patch tomcat.
mson
btw - that is the definition of equivocation
mson
Doing something you were told not to do is not a mistake, it's a deliberate act of defiance. My point in the post is just that: I DON'T equivocate mistakes and deliberate acts, as the congressman probably does, or else he just misspoke. Either way, I'll edit the question so as not to confuse.
Robert C. Barth
I think this answer is interesting but off-topic. But I won't downvote because I don't believe in that.
Mike Dunlavey
Well that sorta flew off the tracks, didn't it?
PhoenixRedeemer
I certainly hope mson's view of software is not as simplistic and foolish as his views of politics and economics. Shame on everyone who upvoted his useless answer because it meshed with your political opinions.
Ashley Tate
@ashley - yes my view of software is as simple as my view on politics, economics, and life. software should be as simple as possible and people should be accountable for their choices. i go out of my way not to do business with republicans. good developers are logical, thoughtful, and considerate. fortunately, these qualities are mutually exclusive with the disease of modern republicanism. i pity what you endured as a republican congressional page and hope that foley and the others were gentle with you, but i still would never hire you or your ilk.
mson
+3  A: 

God sometimes I feel like an old curmudgeon.

Any company that doesn't "deal" with mistakes is going to fail. Punishment, depending on your definition, may just be one of those things.

I have ADD (as do most of you, I'm sure)... until I was 27 it was untreated. I'm damned good at my job, but I make mistakes, and back before medication, I was a danger to anyone I worked for.

Be careful. Mistakes are almost always accidents in focus... oops, that was the production server. That happens, and your boss is right to say something.

"Really it stifles innovation" is usually a load. Innovation is not for the feint of heart, if you aren't (mostly) CERTAIN your dog will hunt, don't risk it... you shouldn't be wasting your bosses time.

If you break something at 4:55 and then go home at 5 with the damage still done, you have it coming. If you stay at the terminal for 23 hours until you un-screw your screw up, rock and roll. You still screwed up, but you commited to it. That makes a difference.

If someone ELSE screwed up and you got punished. Cut and run. That job sucks, and won't get better.

OhkaBaka
What, exactly, is the point of punishing a mistake, though? The purpose of punishment is to correct behavior contrary to the ideal. The person who makes an unintended mistake is not exhibiting bad behavior that needs to be correct since they never intended to do the wrong thing to begin with.
Robert C. Barth
Also, sometimes the only way to become sure your idea will work, is to try it out. Unless one is of the Nostradamus variety, it is unlikely that everything one tries will work, so there will be failure. Should that failure be punished? It is my opinion that it should not be.
Robert C. Barth
+5  A: 

... Not just mistakes, but an early employer actually punished you if you had "problems".

This is a long time ago; I was a pretty new Engineer, pretty fresh out of school.

We used to have weekly staff meetings. As we would go around the room discussing each person's status for the week, you were encouraged to bring up any "problems" you were having with your tasks.

Since I was pretty green, I thought these were learning opportunities, so would bring up any tough issue that I was facing. The others (all very seasoned programmers) would chime in with helpful tips and away I would go. I learned a tremendous amount that way.

BUT - come performance review time (6 months after starting), I was denied a raise - and told the reason was because I was the ONLY PERSON in the company who was "always having trouble". When I asked for clarification, I was told "Well, you are the only person to raise issues at the staff meetings". The light bulb went on, and I understood why everyone else at the staff meetings always answered "Everything's just fine" each week.

Lesson learned and never forgotten.

Cheers,

-Richard

Huntrods
So was the lesson learnt: "stop doing the right thing because your boss was an idiot" or: "find a job where your boss isn't an idiot"? :)
MGOwen
+2  A: 

I think the term "mistake" is a bit of a misnomer here. "Mistake" implies an isolated incident, one single time when somebody messed up. That's not what's being considered here.

A single mistake in isolation is okay. But when a person goes into their job and consistently does the wrong thing, that's not a mistake; that's incompetence. They're being asked to do a job they cannot do correctly, and the responsible thing for them to do is to find a different job. If they don't, then yes, they should be punished.

Now, to be fair to the bankers at least, I'm not sure anyone could do their job. There were so many lies in the market (many of them stemming from the Federal Reserve's control of interest rates) that they couldn't have known the truth of what was happening, and so they couldn't have made the right decisions--and even if they did, the board of directors would think they were incompetently passing up profit opportunities and fire them. (The carmakers are a different story; even in the middle of the boom it was clear they were doing poorly.) But they were certainly not the right people for the job and even now they won't admit it.

Brent Royal-Gordon
+1  A: 

A colleage ages ago added an entry to the DB to expire records after a certain time, that time was initially set to 2 years in the future for the dev DB. Years later.. salesmen ran through a demo in the morning, then showed the customer in the afternoon.. guess what happened.

So, after that he was known as the person to blame, but the 'mistake' wasn't anything to punish - it was one of those things that happen.

Now me, I've brought down the entire operation of a nationwide car breakdown organisation. I made a change to a component that ran a query. It worked fine on my box and on the test team passed it, yet when rolled out to live it was quickly realised that the query didn't perform nearly well enough to handle several hundred telephone operators using it repeatedly.. the DB was swamped. That was a mistake (and like the Ancient Mariner I'm bound to tell the salutary tale to you) but again, stuff happens, it was fixed straight away and we had good procedures to handle such problems so there was little downtime.


PS. The banking crisis is slightly different - loads of people realised there was a bubble, said so and were shouted down by people claiming the economy was in a new paradigm of ever increasing prices and ever increasing bonuses (which they still want BTW). The car industry is slightly different again as it takes them years to change tack (minimum 4 years to change tooling to produce a new car from design to forecourt) but then they do have extremely dodgy union practices so perhaps it would be good to let them go to the wall.

gbjbaanb
+2  A: 

"What the hell were you thinking!?" from your manager is punishment enough.

Dustin Getz
LMAO. True. I try do that only in the most egregious situations.
Robert C. Barth
+2  A: 

Speaking as a manager and developer, I do not "punish" mistakes. Everyone makes mistakes and must have an opportunity to learn from the mistake. I take it as a coaching opportunity and way to help make the team stronger.

Now if someone is lazy, careless or continues to repeat the same mistake, then there is another issue. We do a good deal of team coding, which helps to reduce the mistakes and typically issues are corrected by the team in a positive (usually the worst someone receives is a bit of ribbing about the mistake in good fun).

Ken I.
+2  A: 

If the mistake is of the form, "Most people wouldn't still be doing that after being told not to do it a few times," then those are punishable. If the mistake isn't of that form, then the question becomes, "Will this severely impact business?" as well as "Will this mistake continue to happen over and over again?" and the answer is "yes" then those are punishable I think, e.g. if in doing some SQL statement you delete all the company's sales data and there isn't a backup to bring it back, I would think one would be in very hot water. At the same time, if the mistake is part of a "growing pain" where someone is learning something then I think the mistake should be accepted as part of the educational process, e.g. working on a new product may not go totally smoothly as bugs and other undocumented features are discovered.

JB King
+2  A: 

I think if you're not making mistakes you're not working. At the same time, a mistake you don't fix is two mistakes.

At my current employer when anybody makes a mistake they admit it, and they fix it ASAP, and they are respected for that. They also help each other find and fix mistakes.

Elsewhere I've seen a very good programmer get royally reamed for a subtle but serious mistake. He was never the same after that. If you see that in your company, I suggest getting out, fast.

Mike Dunlavey