The Magnetic Engineering Manifesto
Creating a sustainable and consistent engineering culture means answering some fundamental questions:
- What do we believe in?
- How do we align all our ideas into a vision that is easy to understand?
- How do we turn that vision into something long-lived and actionable that can be used to drive our cultural growth?
To address these questions, we recently released a Magnetic Engineering Manifesto that we believe will help us along this path. We’re sharing it here in the hope that it will inspire other companies to take the time to write down their own thoughts on culture.
What’s in a Culture?
Culture is inherently hard to define, but we all agree on a few things it isn’t. It isn’t perks, like a pool table or free meals (although we have those at Magnetic). It isn’t vacation policy, or compensation structure, although it might influence those choices.
To us, culture isn’t what, so much as how. Our culture describes how we react when faced with an uncertain situation, or how we attack a new challenge. It defines when and how we ship code, and how much and whose time went into validating that change before it went live. It is how we celebrate successes as a team, and how we correct when we’re off course.
Just as the Agile software development movement extends beyond the range of the Agile Manifesto, our culture at Magnetic is bigger than the seven points of our own manifesto. But as a foundational document, we hope and expect our manifesto to shape the future of culture at Magnetic, just as the Agile Manifesto has done for a generation of programmers.
In the spirit of the Agile Manifesto, we formed ours as a series of “we have come to value X over Y” statements:
Self-direction, initiative, and bottom-up decision making over waiting for instruction, or top-down, command-and-control philosophies.
Being transparent and inclusive in decision-making over making decisions in small groups behind closed doors.
Collective ownership of code, infrastructure, architecture, process, quality and culture over knowledge silos or strong ownership by an individual or group, or a “not my job” mentality.
Being an early adopter of promising technologies that have industry momentum and a community around them over falling behind the technology curve or adopting obscure technologies
Moving quickly by making “good” decisions and then course correcting over waiting for “perfect” answers before starting
Mastering a smaller set of tools, frameworks, and languages over using so many tools, frameworks, and languages that we cannot become experts
Quality being everyone’s job over a single process or group that is responsible for quality
Our culture isn’t static. Each new team member and project will alter our culture slightly or subtly. Our Manifesto describes the outlines of our culture, not each detail of it, and we expect and embrace change. However, as our team continues to grow, we want to evolve within the guideposts laid out here.