February 11th, 2013
AngelList “corporate policy” is that team members should ask forgiveness, not permission.
We would rather have someone do something wrong than ask permission to do it.
Or better, we would rather have someone do something right and not need permission to do it. This is the most common outcome.
We would rather have people ship to production whenever they want, than go through an internal review process. We can fix it on production. We prefer the customer’s review process. And it isn’t too hard to reveal a new feature to a small portion of our users and iterate on it as we expand it to more users.
Eliminating permission increases speed and diversity
Eliminating permission increases the speed and diversity of our decision-making. Our incubator applications are a good example of diverse decision-making: one of our team members built it even though I was telling him, “This is fine, but I don’t think it is that important. Why don’t you work on something else.” It ended up being very important to our users and mission.
There are some sensitive parts of our product that are walled off from this “ask forgiveness” policy. There are some things we want reviewed by the people who “know better”. But it’s really rare.
How it works
This policy only works if you hire insanely smart and capable people, and let go of the ones who are not. We also filter for people who are mission-oriented, care about our customer and want to learn more.
And it doesn’t mean that the founders aren’t standing over your desk telling you, “this isn’t good enough to ship”. That’s why we write down and promote these ideas. Because there is always pressure from someone important to do it another way.
It also wouldn’t work without these other items of corporate propaganda:
You break it, you bought it
If you break something or your stuff is buggy, please fix it. As in straight away mate.
Sweat the details and corner cases
If people are going to ship whatever they want, we need them to sweat the details if they’re going to avoid mistakes.
The best way to do that is to have the rest of the team constantly complain that your code and/or design sucks or, in polite terms, “contains opportunities for improvement.”
Actually, mistakes are fine. They’re something you trade off for other variables like speed of iteration. We just want people to sweat the details because we care about the details.
Again, if people are going to ship whatever they want, whenever they want, how do we get them to make good decisions? One answer is that we ask them to “be real”. As in, treat our users like real people. Treat your teammates like real people. Just be real and do the right thing.
Do what you think is right (and be right)
If you have the freedom to make decisions, you also have the responsibility of being correct.
S/he who codes, rules
Another way we promote good decisions is by pushing the decisions down to the people doing the work. We memorialize that with the motto, “s/he who codes, rules”. As in, when we disagree, the person doing the work makes the decision.
Own the result
Pushing the decision-making down to the worker works best if the same person is responsible for the metrics. So we try to have 1-wo/man teams whenever we can, and we ask them to own the result. We also hire people who care about our customer and want to solve problems for them.
Freedom and Responsibility
All of these dictums are variations on freedom and responsibility. Netflix has a great presentation on the topic. So does Valve. Peter Drucker probably wrote about it 50 years ago. We didn’t invent this stuff, we don’t claim to know what we’re doing, nor is this a perfectly accurate or complete model of how we operate.
- Ask forgiveness, not permission
- Do what you think is right (and be right)
- S/he who codes, rules
- You break it, you bought it
- Sweat the details and corner cases
- Be real
- Own the result
If you’re interested in working with us, we’re always hiring.
Comment on Hacker News →