Hacker News new | ask | show | jobs
by m_fayer 3861 days ago
Really? "Rock star dev who's also a jerk" is typically driven by ego, whereas the actual leader should be driven by the needs of the business and the needs of the customer, and be talented at balancing the two. He should also be a good consensus-builder and emotionally capable, which this guy is by definition not.

So you'll get "impressive" code that leverages sexy technologies that is also late, buggy, and not what the customer actually needs. And on top of it all you'll have a demoralized drama-prone team.

3 comments

I challenge you to find actual leaders in the past, ones we use as examples, who would fit your description of "an actual leader".

A leader is someone who can get people to get shit done. Usually it means convincing them that what the leader wants done is the thing to be done. Consensus-building can be done in many different way - in particular, a very good way is to just arbitrarily announce what the consensus is. In most fields, and in pretty much 99% of business, almost decision is better than prolonged periods of not knowing what to do. And if a leader is competent in the field in question, his arbitrary decisions will usually be good.

So as long as you can align their ego with business/customer needs, a "rock star dev who's also a jerk" isn't the worst choice for a leader.

"isn't the worst" is a pretty low bar.

As for your challenge, just about anyone I have worked for and respected. You don't know them, so you can use a No True Scotsman defense, I guess. That won't change that ego/jerkiness is completely unnecessary.

Bad decisions are catastropic in tech. That's a driving force for things like Agile. Running off and coding or building things without a plan is a recipe for disaster.

I can make you do something by screaming at you. That works to get you up over that hill to attack the pillbox. Doesn't work so well in tech where you will just quit.

But why do you assume that "rockstar dev who's being a jerk" means a despotic leader who only screams at people? I read it as a leader who is a) very opinionated, b) doesn't tolerate bullshit, c) may express himself in an offensive way. You could say that e.g. Patton was a rock-star jerk of military warfare, but it didn't mean he screamed at everyone all the time.

> Bad decisions are catastropic in tech.

No, they're not. What's the worst that could happen? Your SaaS cats-on-Instagram-to-save-the-world startup will flop. Or you won't deliver some product that's being delivered by 2000 identical companies around the world. Or some people won't get to see some annoying ads.

We're not talking medicine or space travel here. If we were, we'd be focusing on whether a leader is effective, not whether he's a nice person.

They meant catastrophic to your business, not catastrophic in some larger sense.
I know. And I meant to put all of this into a proper perspective.
Eric Schmidt at Google was pretty close to that description. He made decisions effectively, but he also listened extensively to input, respected his employees, and would build consensus rather than shouting loudly.
"If you want to build a ship, don't drum up people to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea."
It works if you build a ship, little worse if you have to carve out 10 000 bricks from stone slabs before the end of the week. Working on your passion is something not many of us can experience, and is absolutely not the norm on the job market, even in tech.
I happen to agree with you, in this scenario the leader is someone who leads, not someone who is given a title.

The downside is that their goals may not align well with the company.

pros and cons to everything, but I think it's a mistake to dismiss the idea that the person who stepped up, took the responsibility, and was able to get others to follow isn't the person who should be the leader.

I hate the term rock star dev because it brings up an image of a node.js guy using MongoDB as an ACID data store and writing his own unknownium.js or something like that - if the rest of your team is impressed by that - you're in deep shit anyway.

But I've noticed that in IT/programming people recognize and respect each other on skill and also form "respect based hierarchy" implicitly more than usual. Not suggesting that IT/programming is utopian meritocracy or anything just that from my impressions it's much more meritocratic than other professions I've worked in/by (print, news editing, management) - so it's more likely you get positive results with such open structure.

At my company the "rock star devs" are the probably-autistic guys who knows the answer to everyone's archaic legacy and interoperability questions, are the only guys who actually know assembly, catch the subtle mistakes at code review long before anyone else sees them coming, force us to move technologies when it is absolutely necessary and no sooner, and their code makes up roughly half of the code-base.

What's more, they are complete assholes. And yet, everyone under them respects them and marches to their drumbeat. Their teams get real work done.

If someone thinks there is a better leader than that I'm not sure who the hell they're talking about.

I've met (only a few) devs who are as you describe, but instead of socially incompetent assholes they were committed to humility, cooperation, and professionalism in the best sense of the word. They were better leaders than what you describe.

I actually don't get where this stereotype that the best in our field are inevitably jerks comes from. If you're smart enough to rise to the top engineering-wise, you're probably also smart enough to realize that ours is a collaborative field, no one is right 100% of the time, and that you catch more flies with honey than vinegar.

> So you'll get "impressive" code that leverages sexy technologies that is also late, buggy, and not what the customer actually needs.

The rock star dev is by definition the best dev you have, so no you'll the best code you could from your team since the best guy would be spearheading it.

The rock star dev is the one who thinks he's the best dev you have. Sometimes they overlap, but mostly they don't.
So your definition of the "rock star dev" is the guy who isn't the rock star dev, but thinks he is? I don't think that's how language works.
> The rock star dev is the one who thinks he's the best dev you have.

No, that isn't what it means. Your actual best dev is your rock star, that's the intended meaning of the phrase.