We use different frameworks for decision making in different contexts — we don’t have a one-size fits all approach.
For instance,
- For product questions, we tend to use a Consultative approach where one person (often the CEO) takes input from all sides, but is the ultimate decider. This keeps things moving quickly and creates alignment to a single product vision.
- For engineering decisions, we most often use a Delegation approach where the tech-lead for the pod or focus area is delegated the ability to be the ultimate decider.
- In hiring we prioritize hiring only candidates that we think will raise the overall quality of the team — we hold a very high bar. For hiring decisions we tend to use a framework of Consensus: we want to be unanimously excited before making any offers.
- We very rarely if ever use a purely Democratic approach (except for things like deciding what snacks to stock :)). Pure democracy has a tendency to result in disjointed product, design and team decisions.
In any case, the important thing is to have a shared language in which to speak about how decisions are made and to be explicit with which framework we will use for which type of decision.
Opinion of One vs. Strongly Suggest vs. Mandate
Sometimes leaders within Warp will make statements about how something should work. The statements could be in regards to product features, marketing, strategy, etc.
We adopt a specific language (inspired from Jeff Weiner) around clarifying the weight of these statement to try and make it more obvious when those statements from leaders are mere opinions, strong suggestions, or actual decisions that need to be implemented.
- If a leader says “this is an opinion of one” when giving feedback on something, the idea is that the leader is giving an opinion with the same weight as anyone else in the room - just something to consider, but not dictating that something has to be done in a certain way. E.g. “opinion of one - the button should be a different color” does not at all mean that the button has to be a different color. It’s just some constructive feedback for whomever the decision maker is to consider.
- If a leader says “I strongly suggest” when giving feedback on something, this has considerably more weight. It means that the leader believes from experience, data, or some other reason that we should be doing something a certain way. E.g. “I strongly suggest we not spin up a separate microservice for this” means that if we do end up spinning up that microservice, there needs to be a very strong explanation for why we went that route. It doesn’t close down the discussion, but it increases the burden for choosing to go a different direction.
- Typically an “I strongly suggest” type statement from a leader should come with an explanation of why they strongly suggest the thing — it shouldn’t be arbitrary. E.g. “I’ve seen microservice architectures create a ton of work around dev environment setup, extra monitoring burden, knowledge silo’ing — I would only make a new one in the case where the benefits outweigh those costs, and in this case they don’t appear to.”
- Finally, if a leader explicitly uses language around “mandating,” that carries the force of an actual decision. A “mandate” is something that we have to do and are not going to debate further. “Mandates” should be rare and are usually reserved for important strategic decisions.
- Like “strongly suggest” statements, mandates should come with justifications and not be arbitrary. Typically a mandate arises for some big company decision that may be controversial, but that the leader strongly believes needs a firm decision and wants that decision to be clear and acted upon and not re-litigated.
- A famous example of a mandate in action was when Facebook decided that they needed to be mobile first. It was a hard re-orientation around something that was strategically important and that seemed not to be happening without the force of leadership making it an unambiguous priority.
[How We Hire Engineers at Warp](https://warpdev.notion.site/How-We-Hire-Engineers-at-Warp-8431f40209c743c091c18428df560c08)