It’s generally a mistake to adopt values like “respect your customers.” True values involve trade-offs. Here’s my humble attempt to list a few reasonable ones for a potential engineering team.
We should…
Hire and pay for world class people
Hire economically
Be together
Work anywhere
Emphasize quality
Emphasize speed
Emphasize market share growth
Emphasize profitability
Be highly leveraged
Be highly self sufficient
Prioritize technology updates
Prioritize technology stability
Focus on experience
Focus on performance
Build for generalists
Build for developers
Be disciplined and methodical
Have urgency and bias for action
Stretch ourselves
Be predictable
Be compassionate
Be right
Build simplicity
Build robustness
Think long term
Think “winner takes all”
Value correctness
Value shipping early
Be collaborative
Be decisive
Deploy and iterate
Stabilize the product
Value working software first
Value complete and comprehensive documentation
Deliver on schedule
Always deliver quality
Be transparent
Exercise discretion
Value professional growth over team stability
Value stability over learning and growth opportunities
Try to fix problems, even if they’re not ours
Stay in our lane
Be radically candid, even if it hurts
All get along