GlideCleanser
> Do not promote based on tenure
Maybe not solely on tenure ala the government, but the people most likely to understand your company's particular problems and history are those who have been around for quite awhile.
Having someone who can say "We tried A last time and it didn't work because of reasons B,C, and D so what's changed?" in a position of (relative) power is invaluable to avoid repeating mistakes.
> Do not promote into people management roles based on individual contribution
Agreed that someone who doesn't want to be a manager shouldn't be one, but experienced ICs can make pretty ideal managers: They've been on enough projects to make (more) reasonable estimates, they know some of the potential blocks and complications, and they can likely stay a couple steps ahead of their team.
Sure, just because you're hung doesn't mean you have to do porn, but it's easy to see why companies would be eager and even pressure experienced ICs to become managers.
> Choose values that are specific to your company... Stick to them
Why? Shouldn't we re-evaluate our values as time goes on and we gain new information?
It's hard to imagine a contentious set of values (i.e. if your company values are "Don't be evil," then fine) that shouldn't be constantly re-evaluated as time goes on.
> If someone does not add something that no one else in the meeting does, remove them.
Ouch, this sounds like an insidious one that you could abuse heavily to do the committee thing that the OP rails against.
If you want something to go through: Invite only people who agree. If someone calls you on it and asks why you didn't invite more opposition voices, reply "I didn't think Alice had anything to add that Marie didn't, so I didn't invite her." or even just feign ignorance in the name of small meetings.
If you want something to get stuck in committee hell: Invite lots of people with different opinions that will never reach anything close to consensus. Don't invite any two people who agree, because "the other person isn't adding anything."
> Define success first, as objectively as possible. If you have to change the definition of success, it should be because what you're building will be fundamentally flawed without pivoting
That's suuuuper hard to do with anything that's even remotely considered a moonshot.
It also sounds like a good way to waste a shitload of time not actually doing any work. If the project is "upgrade our codebase from Ruby 1.9 to Ruby 2.3.1" then I can spend months dreaming up all sorts of useless bullshit metrics that define "success".
> Have one clear decision maker
Sounds like a formula for a shitty dictatorship. Even the CEO isn't the one clear decision maker.
> Effort can correlate with success
It often does.
> but certainly does not predict it
It often does.
> Writing code at 2am is not a priori more valuable than at 2pm
This kinda sounds like you're shaming people who have different circadian rhythms. I know plenty of night owls who do their best work at 2am and take it easy after lunch.
> Getting into Stanford likely means they thrived in high school. That may correlate with success, but certainly does not predict it.
It also might mean that they:
* Know how to manage their time effectively
* Are fairly mature and forward-thinking
* Are good with delayed gratification
* Are generally intelligent and capable of picking things up quickly
because certainly people who meet those criteria often find themselves at places like Stanford (with luck thrown in, certainly).
I think you're missing the end to that conversation:
>PM: "Ok, we don't have 6 weeks. I can give you 4, but we're just gonna have to make do."
> Dev: "Okay, which features would you like to cut?"
PM: We can't cut any of them. We need features A,B,C in the product and we need it in 4 weeks.
Here we insert a rant from the PM about one of the following:
1) Leadership
2) Hard work
3) Threats about job security
4) Recalling that one time you delivered something ahead of schedule so why is this different
5) I see you getting up to get coffee at least twice a day so stop goofing off and get it done
I think you're vastly overestimating how much power/control said Dev has over the whole process at these sorts of companies.
Sure, they can quit, but if they felt empowered to quit they probably wouldn't be there in the first place: I don't think anyone's busting down the door to work at MedicalBusinessTM.
> we should require licensing for working on safety-critical applications.
Fully agreed, though with some misgivings.
Incorporating safety-critical software into the "professional engineering" spectrum would almost certainly require some things that are seen as near-heresy to the software community, like requiring a 4-year degree from an ABET-accredited program.
Still, I agree.
This is not meant as a slight: I think you're grossly unfamiliar with software development outside of engineering-driven companies.
It's pretty much a guarantee that product managers are deciding these estimates. They might confirm with the developers, but the conversation probably went something like this:
"Does 3 weeks sound about right for this?"
"No, we'll need 6"
"Why?"
"Safety checks"
"Ok, we don't have 6 weeks. I can give you 4, but we're just gonna have to make do."
Is it scary that conversation happened about a piece of medical software? Absolutely. Would I bet $1k that it happens frequently? Absolutely.
> A reputable engineer wouldn't design and build a bridge which might collapse
Rarely does a single engineer design a bridge nowadays, so corporate liability and reputation (good luck landing more contracts if your bridge collapses) is a huge factor in much of that beyond simple ethics.
I would be shocked if anything happened to Merge as a result of this, whereas a company who designed a faulty bridge would be sued into oblivion.
Further, professional engineering in the US is a whole different game that involves licensing and regulations specifically to avoid that situation. Software "engineering" has no such equivalent currently.
Pinning the blame on the peons is a sure-fire way to make sure this situation never changes.
That's a pretty mentally taxing adjustment for most people to make.
It's also incredibly awkward when engaging in small talk with new people. Being evasive about answering where you work will lead to many presumptions (e.g. that you work for a 3 letter agency), few of which are very conducive to continuing a conversation.
Similarly I could just lie about where I work, but I think you can probably see how that's similarly taxing to do continuously.
You also have to avoid:
1) Telling your old co-workers
2) Mentioning or updating anything on social media. Even if you're not "friends" with old co-workers on e.g. Facebook, that information could still be leaked.
3) Giving any sort of talk where your employment might be leaked
4) Being at an industry event where your employment might be leaked
5) Being named on the company site, and thus your name showing up on a simple google search.
If your old employer is vindictive (which could be one reason you left), there are lots and lots of ways for them to find out where their former employee went to.
Being subtle will probably only keep your employment status hidden with the sorts of employers who aren't really making broad non-compete clauses to begin with (i.e. employers who don't care).
Eh, not that I totally disagree with you, but I dunno that that's really true. There are plenty of head coaches (and CEOs) who are just so technically proficient and/or excellent strategists that their lack of charm/empathy/charisma is a non-issue.
Belichick and Jim Harbaugh (say what you want, but he's successful by any sense of the word) are two examples of very successful head coaches who aren't well-known for being particularly charming or empathetic (one is an emotional brick wall and the other is a screaming psychopath).
There are CEOs who aren't particularly well-known for their people skills, but they're so good at strategy and execution that it really doesn't matter much. Anecdotally (from my tenure there), Bezos never gave/gives the impression of being particularly charismatic or charming. He's just really good at building the juggernaut that is Amazon.
I'm not saying those skills are unimportant and certainly people like Belichick are the exception, but it's entirely possible to just be so good at strategy that the rest doesn't really matter. Mayer just doesn't seem to be quite at that level.