Skip to main content

Command Palette

Search for a command to run...

SPEC - Safe Pragmatic Engineering Culture

Setting values for your engineering org

Published
4 min read

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.

More from this blog

Justin McCullough's Blog

2 posts

I am an engineering leader focused on building mission driven teams. I live and work remotely from Northern Indiana. I am in a solid relationship with C#. I spend most of my time with my 4 daughters.