Introduction
This is our playbook where we write about the way we use to design, develop, and build scalable web applications and delightful experiences. This playbook is a living document that evolves as we learn and grow. It is a collection of best practices, principles, and guidelines that we follow to build high-quality software products.
We know technology and practices evolve fast. This playbook evolves fast too. We like trying new things while documenting our experience. This playbook also keeps us consistent in our practices, technology choices, management styles.
Why do we do this?
- To document our working practices
- To communicate those practices to those new to the teams
- To share knowledge across our teams
- To maintain our culture in our distributed working environment
- To demonstrate our practices to other disciplines and groups
What belongs in here?
- Our boundaries, or "guardrails" what are the requirements we must stay within? e.g. legal, accessibility, security, ...
- Our views on practices we want to encourage (or discourage), i.e. "best practices"
- Our principles on architecture and practices
- Advice, and recommendations on approaches and tooling
- Guidance and tools to aid in common tasks. Template, checklists, how-tos, ...
What is in this playbook?
We have divided this handbook into three main sections:
-
Software Architecture: This section covers the foundational principles of software architecture, including design patterns, architectural styles, and best practices for creating scalable and maintainable software systems.
-
Infrastructure: This section focuses on the infrastructure that supports our software products, including cloud computing, containerization, and deployment strategies.
-
Development Process: This section outlines the development process we follow to build and maintain our software products, including agile methodologies, continuous integration and deployment, and quality assurance practices.