Brad Mohs and I worked on these principles for several weeks attempting to strike the right balance of terms and coverage of concerns.
I’m quite happy where we landed on this, but I do expect this to evolve over time.
If changes are made, I’ll update this post with those changes and thoughts behind them.
Technology Guiding Principles
- Scalable: Design and implement to be dynamically scaled.
- Learnable: Short time to meaningful contribution for new team members including: documentation needed for self motivated engagement.
- Reliable: System continues to operate properly in the event of one or more component failures.
- Recordable: Data recorded to provide meaningful business metrics and playback. As the business identifies the
- Supportable: Simple and quick to get from issue notification to identification to resolution.
- Automated: Humans only do what computers can’t.
- Testable: Design for unit, functional, security and load testing.
- Consumable: Interfaces into our systems will be simple and intuitive.
Business Guiding Principles
- Secure: PCI compliance and PII best practices.
- Fast: Systems. Time to market. Updates. Bug Fixes.
- Serviceable: Built to be used.
- Evolvable: Adapt, grow and create products/services as the business needs.
- Malleable: Products/Services/Outputs fit the varied needs of our customers/clients.
- Observable: The business must know how our systems are performing: accurate sales reporting, insightful system monitoring and meaningful notification system.
- Reviewable: Ability to visually confirm before promoting to production. Multi-Tenant: Single instance serves multiple tenants.