

Humiliation in Startups - cyborg
http://www.mkrecny.com/entry/21/

======
smacktoward
I grew up on military bases around military people, and in that environment I
learned one bit of wisdom that has helped me many times when managing people:

If you're in charge, and your people screw up, it's not _their_ fault. It's
_yours._

Yes, they made a mistake. But _why_ did they make it? Did you not train them
sufficiently? Did you not give them the mentoring they need? Did you fail to
get important tools or information to them? Did you put them in a position of
greater responsibility than they're currently equipped to handle, or where
their skills don't match the needs of the position?

At first when you try to wrap your mind around this line of thinking, it can
be difficult. Why should I be held responsible when Jack the Junior Coder is
the one who actually screwed up? But eventually, if you stick with it, you
learn something important: on a real team, _who_ screwed up is irrelevant. If
one person fails, the whole team fails. And your job as a leader is to help
your people get to a place where they _fail less and less every day_ , not to
pin blame.

This is the difference between a manager and a leader: a leader is someone who
accepts responsibility not just for his own actions, but for his team's as
well.

~~~
nateberkopec
"If words of command are not clear and distinct, if orders are not thoroughly
understood, the general is to blame. But if his orders are clear, and the
soldiers nevertheless disobey, then it is the fault of their officers." - Sun
Tzu

I think startups have a lot to learn from the military community. Yes, for the
most part modern militaries are extensive bureaucracies, but military thinkers
and intellectuals are really at the forefront of management science. John Boyd
basically wrote The Lean Startup 30 years before Eric Ries did.

~~~
smacktoward
I have had a blog post rattling around in my head forever introducing Boyd's
leadership principles to non-military folks. Should probably get around to
actually writing it one of these days...

~~~
tomjen3
One of these days is, empirically, none of these days at least for me, so
could you just post a link to some introduction?

~~~
smacktoward
The best overall study of Boyd and Boydism is Robert Coram's book _Boyd: The
Fighter Pilot Who Changed The Art Of War_ : [http://www.amazon.com/Boyd-The-
Fighter-Pilot-Changed/dp/0316...](http://www.amazon.com/Boyd-The-Fighter-
Pilot-Changed/dp/0316881465)

The best general-audiences intro to Boyd-as-philosophy is probably Chet
Richards' book _Certain to Win_ : [http://www.amazon.com/Certain-Win-Strategy-
Applied-Business/...](http://www.amazon.com/Certain-Win-Strategy-Applied-
Business/dp/1413453767)

Wikipedia has some brief descriptions of Boyd's work and thinking in his page
on him:
[http://en.wikipedia.org/wiki/John_Boyd_%28military_strategis...](http://en.wikipedia.org/wiki/John_Boyd_%28military_strategist)

 _Fast Company_ magazine did a decent article on Boyd-for-business back in
2002: <http://www.fastcompany.com/magazine/59/pilot.html>

Many of Boyd's original writings have been preserved and made available for
download here: <http://dnipogo.org/john-r-boyd/> (Warning, though, these were
not written for a general audience and can be quite dense.)

------
nateberkopec
The idolization of Steve Jobs has a lot of issues, and this might be a good
example of one. We don't know whether Apple succeeded in spite of or because
of Steve's management behaviors.

It's also worth noting that the original Mac (the same time period most of
those 'crazy Steve' stories originate from) was a huge commercial 'meh'.

~~~
JVIDEL
Word, when I read that he said to Jon Ive "your ideas are shit" I couldn't
believe that guy would keep working for him.

~~~
nateberkopec
Wow, really? Source?

~~~
JVIDEL
His bio, check it.

Also I didn't know (before that) that he refused to pay his daughter's tuition
and some friends of his wife had to do it instead.

Awkward at the least...

~~~
Tomis02
Why awkward?

~~~
JVIDEL
Guy is a billionaire and wont pay for his own daughter's college? hello?

~~~
Tomis02
Whereas most people in this situation would be qualified as assholes (and
rightly so), Steve Jobs gets a mild look of disapproval. For me, "awkward"
does not begin to convey how screwed up that is. It seems that people have a
real hard time accepting that the guy they worship for delivering some of
their gadgets was in fact a major douchebag.

This tendency to make Jobs into a person he was not it very disturbing. Of
course, on HN you risk being banned for saying something bad about His
Holiness because some of its highly ranked people are also members of the cult
of Apple, but that alone should not be a reason to tip-toe around the obvious.

~~~
JVIDEL
You are barking at the wrong tree dog...

------
jonny_eh
Wow, a surprising number of comments on that blog post agree with the manager.

Ya, it's a stupid bug, but the way the manager dealt with it was totally out
of line. Whether or not that "style" of management results in better output is
moot, you just don't treat people like that. It's not like the developer shot
the manager's dog or anything.

------
oskarth
I hope no company YC makes this mistake, considering _How to Win Friends and
Influence People_ [0] is recommended reading in YC [1].

For example: _Don't criticize, condemn, or complain._ and _Let the other
person save face._

That is, criticize in private, give praise in public ( _give the person a fine
reputation to live up to_ ). Calling someone a retard is a counter-productive
thing to do.

0:
[https://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influen...](https://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People)

1: <http://news.ycombinator.com/item?id=5584> (can't find where I read it, but
this thread points to pg recommending it)

~~~
qbproger
Is there a YC reading list somewhere? I've been looking to do more reading
lately, and this looks like a good title to start with.

~~~
srijan4
<http://ycombinator.com/lib.html>

------
babarock
Similar humiliations used to happen to me at my first job. It was the first
time I was programming professionally and made a few mistakes that would've
cost the startup a lot. On my second week opn the job, I commented out, by
mistake, the initialization of variable $user (arrrgh!!). The website crashed
on all the signed-in users. My boss being the stressed nerv-ball that he was
crictized me in the same way described in the article.

I think there's a lesson to be taken here. Not for managers (clearly good
management would criticize privately) but for the employee. Learn to take a
yell. It's not good style but it's widely common, people above you scream at
you when you screw up. Learn not to take it personal, and not to let such
incidents affect your passion for your work. The yelling is bad form, but it's
not direct criticism at you. In large entreprises, it's the result of a chain
of screaming starting at the top. In startups it's the result of the nerve-
wrecking stress, founders go through.

'Constructive criticism' is an advice we give would-be managers, but it's a
luxury starting employees rarely get. You're lucky if you meet one such boss
in your career. Learn to take criticism, the bad kind, leaving out the
humiliation. I found the best way to cut a yelling short is by answering
loudly: "You're right I screwed up, I'm sorry. At least now I learned it, it
won't happen again". After getting yelled at like this a few times, you'll
realize it's really not against you, and such an answer would calm down your
boss quickly; make sure not to make that mistake again, because then you'd
really deserve a humiliation ;). This is easier said (written?) than done, but
it's a natural part of one's career. I take it as a mental strength test.

Also, you won't be the junior on the team forever. One day you'll be
responsible for an intern screwing up. Remember that moment and don't be too
harsh.

~~~
AznHisoka
Yup, I also find it's best to say stuff like "Yup, you're right. This was a
dumb mistake. I should be fired for this"

~~~
zxcvb
Never EVER say "I should be fired for this". You probably mean it as a little
joke. Getting yelled at for screwing up is not the right time to make a joke.
Unless of course you are serious, in which case you're an idiot.

Saying something that weird will just make it seem like you don't care or
you're weird.

The fact you say you 'find it best' suggests you get shouted at a lot or you
are making this up. Either way, you shouldn't be dispensing this kind of
nonsense advice to other people who may well follow it.

~~~
AznHisoka
This is an internet message board, not an concentration camp. Lighten up.

~~~
zxcvb
I'm just asking you not to lie or give stupid advice to other users who might
take your advice seriously.

You need to grow up.

~~~
AznHisoka
You're a god? You determine what's stupid or not? You grow up.

------
ja27
That's not just startups where that happens. Senior developers, especially the
"man in a box" geniuses that don't work well with anyone else are downright
abusive of other developers (and God help the poor customer support or QA
people that talk to them).

On the other hand, guys I really respect just call those "rookie mistakes" and
expect them to happen. Hopefully you catch them in code review before
customers are impacted.

------
kanja
Humiliation is poison in a work environment. There is no quicker way to make
people resent their jobs, stop interaction, create hate and mistrust and send
a signal that "you don't matter".

~~~
smacktoward
The problem is that bad managers regard those things as features, not bugs.

------
dclaysmith
I think adherence to "compliment publicly, criticize privately" is an absolute
requirement of a good manager.

~~~
CodeMage
While I totally agree with you, this example goes beyond that. Whether it's in
public or in private, calling someone a "retard" and asking them how they
could do something "so fucking stupid" is inexcusably abusive and a reason to
quit on the spot, at the very least.

------
stuff4ben
Unfortunately I've done something similar to this to some outsourced
contractors in India as we were doing a final code review of their
deliverables. I regret it still and have tried to make amends. On the one hand
we're paying them good money to do work we don't have time to do ourselves so
at the time I felt it was ok and warranted. On the other hand they're human
beings just like me with feelings and pride and i took them down a notch in
front of their peers. Yes, I'm a better coder than them, yes we were paying
them lots of money for work I felt should have been better. But the way I went
about it was totally wrong. Sucks but at least I learned from it.

------
gpcz
One of W. Edwards Deming's "Lesser Categories of Obstacles" contends that the
system designed by management is responsible for 85% of mistakes and
unintended consequences in a business, while workers are responsible for about
15% (src:
[https://en.wikipedia.org/wiki/W._Edwards_Deming#Seven_Deadly...](https://en.wikipedia.org/wiki/W._Edwards_Deming#Seven_Deadly_Diseases)
). Deming's 8th Point of Management is to drive out fear so that everyone can
work effectively for the company (src:
[https://en.wikipedia.org/wiki/W._Edwards_Deming#Key_principl...](https://en.wikipedia.org/wiki/W._Edwards_Deming#Key_principles)
). Publicly humiliating the programmer seems to be simultaneously disregarding
the symptoms of a systemic issue (namely, a lack of code reviews) and putting
everyone on the team into a state of fear.

------
DanBC
In the UK employers have a legal duty of care to protect their employees from
harm in the workplace, and this includes stress.

This is written in law, and has been supported by court cases.

One incident like that is wrong, but could perhaps be explained by someone
having a really bad day. Recognition, apology, and no further incidents would
help.

But continued incidents? The company is leaving themselves open to lawsuits.
("Constructive dismissal" and employment tribunal in the UK.) I'm pretty sure
that toxic work environment leading to poor health is something that has been
through US courts.

I mention this because sometimes the only way you get through to PHBs is to
talk about costs and risks, and not "don't let employees be dicks to other
employees".

~~~
justin
Holy crap... nanny state?

I'm not agreeing in any way with the manager in this situation; public
humiliation of employees by managers is both morally cowardly (bullying
someone from a position of power) and ineffective over the long run (in my
opinion). But still, stress happens in most jobs. Often times it is caused by
a combination of home and work factors. It's ridiculous to make "preventing
stress" a legal duty of employers, because that's not wholly within an
employers control. Example: Faulty machine used to serve customers blows up at
work at now you have a lot of angry customers. Stress ensues.

~~~
drewmclellan
It wouldn't be unreasonable to suggest that the stress (and business impact)
could be reduced by making sure any critical machine has a hot-backup should
it fail.

Making sure employees are happy and safe in their work is good business.

------
stevencorona
I would have quit on the spot- you should never put up with that kind of
second-class behavior.

------
intractable_
(x-posted from the OP's comment page)

The people on that page that are saying the abuse as well deserved are part of
the problem.

Sure, it's not good code, and causes problems in production. It's certainly
not the right way to do this -- but constructive criticism, gentle
corrections, and rewards/acknowledgements of successes when they occur are
_far_ more effective in the long run than this public tirade bullshit. AFAIC,
the PM that humiliates an employee in public for any reason is (a) immature,
(b) short-sighted, (c) unprofessional, (d) a poor choice for a PM, and likely
(e) insecure and feels the need to strut his/her intellectual "superiority" in
front of others lest their authority/superiority be called into question.

I also would have quit on the spot -- life is far, far too short to deal with
that kind of crap, and there _are_ other work environments in our field where
one can do what one enjoys and where it's okay to be a fucking human being
instead of being viewed as merely a code generation resource that can be
kicked around when it doesn't "behave."

The proper response to that kind of public humiliation is "Okay, you're right,
it was a pretty stupid thing to do. But not as stupid as abusing your
employees and creating an environment where the primary motivators are
grounded in FUD. I'll collect my things from my desk because...how to
communicate this part adequately...oh yeah: fuck you."

------
Jach
> "How many times do you think the client can connect to the DB per second?
> Thousands!"

Is this a source of concern for the DB? If it is, you might want to consider
limiting connections on one side or the other at a deeper level. Self-
inflicted DoS bugs during development aren't fun, but actual DoS attacks in
production are even less fun. If there's a potential way to bring your DB to
its knees and you get popular enough for trolls (let alone actual crackers) to
take notice (and if you're writing video games that presumably have high score
boards or something similar this isn't that unlikely) expect people to find
it.

It's good to get yelled at some number of times throughout your life to help
you grow a thicker skin, but I've never been yelled at in the work
environment. If it occurred I'd be strongly motivated to quit like others
here. Stating matter-of-factly "That was stupid" is one thing, joking and
exaggerating stupidity of yourself or others is another (and is dependent on
implicit understanding of such and also requires a certain culture of the
group), but when it gets to a manager actually screaming at you about a
possibility of something bad happening then that's the line, at least for me.
If I wanted to get screamed at, I'd join the military.

~~~
Estragon
If I wanted to get screamed at, I'd conclude I was a masochist and seek
therapy.

------
chrisacky
Speaking of awful code. 17 days ago, when the new Galaxy "demo" page launched
from Samsung, they had that webpage, www.tgeltaayehxnx.com with the
countdown.. you guys remember?

Anyway, I was interested to see what was happening with that page out of
interest so I checked out the source.

What I found made me laugh so hard. Given the fact that I knew that second
perfect cache invalidation is pretty hard...and given time zones... I knew
that this wouldn't end well. What happened as a result? They created their own
distributed denial of service that was set to fire off every connected user at
the same time. They ended up taking down their new launching page for their
phone.

This was the code:

    
    
          if (timediff < 0) {
                   //console.log("LIVE!");
                   location.reload(true);
          } else {
                // Do stuff. 
          } 
    
    

Whoever wrote that code, was basically checking if the time difference between
the countdown was zero and then refresh the page. Guess what? This ran
continuously. For thousands of clients...

I wonder what kind of jokes they had at Samsung over this one.

------
parfe
What a terrible environment. Fear from humiliation does not make better code.

Code reviews, instruction, and collaboration help make better code.

~~~
tomjen3
Code reviews are just opportunities for institutionalized bike-shedding.

And in cases like this ensures further humiliation.

Instruction can work, but it requires a smart programmer who can do it right.
Collaboration can work but it reduces the speed you can think at to how fast
two people can communicate instead of how fast one person can think.

And no, I don't have good solution (other than to ensure you only hire the
best people).

------
citricsquid
Please can you increase the font size on your blog? Not only does small size
font make no sense, it is also unreadable for me (chrome, Windows):
<http://i.imgur.com/TZUVi.jpg>

Anywhere from 16px to 22px would be fine, we are here to read the text
afterall. It's the focus!

~~~
aqme28
Can you zoom in to make it more readable?

(ctrl + mouse-wheel for me)

e: VVV Good point.

~~~
DanBC
I could make it more readable by tweaking my settings. But that only helps me.
Asking people to remember to make stuff accessible helps everyone who needs
it.

------
debacle
That has nothing to do with startups - the PM is an asshole.

> so afraid of being publicly railed-on that they wrote pretty much bug-free
> code all the time.

That's a non sequitur. Programmers try to write bug-free code all the time
anyway. No one tries to introduce bugs.

------
droithomme
> It makes me sad to see recent portrayals of Silicon Valley hold up
> humiliation as a recipe for success.

This is an interesting statement in the article and I think it is worth
bringing up. It contrasts significantly to the other article I just read that
said that "public shaming", which is just another word for public humiliation,
is a desirable practice needed to stem the existential threat to engineering
of "brogrammers".

[http://www.cnn.com/2012/05/10/opinion/trapani-brogrammer-
cul...](http://www.cnn.com/2012/05/10/opinion/trapani-brogrammer-
culture/index.html)

> Sometimes the road to enlightenment is paved with public shaming.

------
essayist
A much better approach (from a piano teacher, but it generalizes:

 __Tags like "stupid," "bad at ____", "sloppy," and so on, are ways of saying
"You're performing badly and I don't know why." Once you move it to "you're
performing badly because you have the wrong fingerings," ... it's no longer a
vague personal failing but a causal necessity. Anyone who never understood
limits will flunk calculus. It's not you, it's the bug. __

<http://celandine13.livejournal.com/33599.html>

------
JVIDEL
"You retard! There's no delay in your while loop. How many times do you think
the client can connect to the DB per second? Thousands! I can't believe you'd
do something so fucking stupid!"

Wow, was it that hard to keep it down a little? see:

"Dude there's no delay in your while loop. How many times do you think the
client can connect to the DB per second? Thousands! go fix that"

See? is not sugar-coating it, simply not being a gigantic asshole about it.

~~~
davidw
I think with anyone who cares about doing good work, simply asking the
questions that will lead the person to realize what a fuckup it is should be
enough.

------
stcredzero
Perhaps a good way for such a rookie mistake to be handled would be to turn
this in to playful ribbing. (WAT? WTF?)

I too have been the subject of manager outbursts like this. Only do it if
you're deliberately trying to get rid of the person, and if you're doing that,
be aware of the precedent you're setting. There's too many things to know
about programming for any one person to be expert in everything, and never
make a WTF mistake.

------
sparknlaunch12
Humiliation is not isolated to startups. In fact every industry has these type
of characters. Such behaviour is not the best method of motivating your team.
Sadly it exists.

What will you do differently next time?

Would you call this behaviour out to your other manager or directly to the
perpetrator?

If you want to avoid it happening again you should speak up. Unless you don't
mind the abuse?

------
necro
Would this have helped how you feel better? Or would you feel the same way?

"This is retarded! There's no delay in the while loop. How many times does the
client have to connect to the DB per second? Thousands! I can't believe this
implementation is so fucking stupid!"

In this case we try to refer to the code directly, taking our reference to the
person.

------
moocow01
I don't know about Steve Jobs but every company Ive been in where this has
started to become the culture it has been a sign of a sinking ship... and
every time that sign was accurate.

If you think public humility is motivating it probably is in the short term.
But its the most motivating for getting that resume spruced up again.

~~~
jonny_eh
I dunno, I think we could all use a bit more pubic humility ;)

------
B0Z
The behavior you experienced from the "manager" was, at best, grossly
inappropriate. It may or may not help now, but I think it's important to be
mindful of where other peoples' perspective is. The "shoe on the other foot"
mentality sounds like it has been forgotten both both the manager _and_ you.
It's a two-way street.

------
majmun
i wonder how you didn't notice this while developing app.

~~~
chris_wot
Rookie error. It happens. That's the point of code review.

~~~
drewmclellan
Absolutely. We have code reviews because we all make mistakes. Sometimes
really dumb ones.

It's crazy to be mad at a programmer for a bug in their code found during a
code review. Discuss it, learn from it, and not only does the code get fixed,
everyone involved becomes a better programmer by some small amount.

The only time it's justifiable being mad is if something gets through code
reviews and into production - and at that point it's not the programmer's
fault, it's the fault of procedure which enabled buggy code to ship
undetected. So you get mad at the system, review the failure and fix it.

------
Greg12x
Ouch.

