A short list of what I look for in a team culture.
1. Customer Focused
– We ship product that works and keeps customers working.
– I am empowered to take action to unblock customers
– I am empowered to stop actions that will break customers.
2. Take Responsibility
– We all own all the service.
– Engineers are experts in, not owners of features.
– If I am overruled, I will support the decision and work to its success.
– I am empowered to contribute to any area of the system without “permission”
– I am empowered to raise issues, concerns, bugs at any time and can investigate further as needed.
3. Mistakes are a failure of system, not a failure of people
– Everyone makes mistakes.
– I am empowered to automate and simplify areas that are error-prone.
– I am empowered to respond to failures to ensure they do not recur.
4. Complexity drives failure
– Write code with the expectation that it will be maintained and judged for years to come.
– Complexity should be centralized as much as possible.
– Readability and maintainability is preferred to optimality.
– I am empowered to iterate on features until the proper balance is struck.
5. Telemetry Driven
– When data is available it drives designs and decisions.
– Questions and disagreements should be resolved by production data to the extent possible.
– I am empowered to require appropriate telemetry for all features, regardless of deadlines.