SPEC - Safe Pragmatic Engineering Culture
Setting values for your engineering org
Background
As a leader, it's essential to provide a set of values for your organization. Providing these values will give your team guidelines for decision-making and a framework in which to operate. This SPEC mantra is the tool I have used to guide these processes for me. It is a result of a company-wide presentation I gave about my team and our product. As a part of the presentation prep, they asked me, "and the principals you follow." At that moment, I realized that I never took the time to fully flesh out my thoughts on what makes a good engineering team. It was great to organize those thoughts into something tangible and shareable.
Safe
- Safe Systems
- Quite simply, if our systems do not meet our security, contractual, or compliance standards, it doesn't ship.
- Building Trust
- Trust is paramount. Continuously invest in security, reliability, and user experience to build an unmatched level of trust between users, engineers, and systems.
- Continuous Testing
- Run automated tests at all levels of the development cycle. Unit Tests, IntegrationTests, Smoke tests, and dedicated testing drills ensure our systems follow a rigorous but smooth process to production.
- Psychological Safety
- We focus on ensuring our engineers are comfortable in their environment. Failures are an opportunity for our team to grow. We foster a culture of thought diversity, inclusive of new ideas, processes, and experimentation.
Pragmatic
- Continuous Improvement
- We make our software iteratively deploying small changes quickly, efficiently, and all the time. We focus on efficient code reviews, smooth pipelines, automated tests, and feature toggles to ensure easy, timely, and controlled systems delivery.
- Simple Scales
- Scaling our software to meet the growth targets is essential. Complex systems are hard to scale. We start as simple as possible and layer in complexity only as needed.
- YAGNI
- You Ain't Gonna Need It. This acronym drives the pragmatic approach. While we always consider future growth and uses cases, YAGNI allows us to focus on the most critical challenges in front of us.
- Craft Differentiators
- Growing markets means increased competition. Our focus is on building those features that make our product unique and crafting delightful user experiences to set ourselves apart.
Engineering
- Engineering Over Programming
- Programming is putting code into an editor, while engineering is the process of solving problems. We are focus on being engineers from test to infrastructure to UX.
- Missions Over Output
- Our teams are mission-driven, guiding the team on their holistic fitment in the organization. These missions allow the team to focus on their impact on the organization over their output metrics. Our teams can quickly gain domain context, onboard new teammates, and scale.
- Collaborative Process
- Our engineering process brings together a cross-functional set of teammates to identify, define, design, implement and deliver solutions. We focus on the people over process and outcomes over output.
- Soft Skills
- We offer our engineers the opportunity to grow beyond writing code. We maintain a culture of experimentation, stretch projects, and career opportunities. This culture allows our teammates to expand their skillsets, achieve career goals and contribute more broadly to our company's future. We do all of this while respecting the diversity of personalities and respecting our teammates not participating.
Culture
- Setting Expectations
- We strive to always set expectations for our engineers, teams, and leadership. Our people always know what we expect from them and what they can expect from their teammates, leaders, and our company.
- Culture Connections
- One of the benefits of having a diverse team is the different cultures and experiences. We encourage our teammates to participate in our informal Culture Connection sessions to share food, pop culture, tourism, events, government, and beyond. We love learning.
- Community Engagement
- We encourage our engineers to engage with the tech community via an array of outlets. We will help our engineers find speaking engagements, support open-source software, and join boards and committees to continue being leaders in the tech industry.
- Organizational Commitment
- Everyone is engaged and supportive of the engineering organization and philosophies. We support a diversity of opinions and fruitful discussions, but we must be committed to the success of our organization after a decision is made. We operate under the assumption of good faith and the best of intentions.