The 12 Factor Engineer. Are you one?
“The Twelve-Factor Engineer” is a personal contract of twelve principles aimed to ensure that an engineer is striving to be the best he or she can be in their role as a software or infrastructure engineer.
The way web applications are being developed and the teams developing them are undergoing radical changes. More and more, organizations are re-writing their applications to be cloud-native and these apps are measured up against the yard-stick known as “The Twelve-Factor App”. These applications are usually developed by teams conforming to some flavor of agile, and these teams utilize a continuous delivery/deployment pipeline to get their code to production.
Development teams should be agile, applications should be 12-factor, but what about platform engineers and operators? The platforms which modern cloud-based applications are deployed to are vast under-worlds of compute, network, specialty PaaS operating systems and most importantly, engineers designing solutions and keeping the lights on. Engineers are the unsung heroes of the cloud, but what are the principles in which an engineer should hold his or herself to?
The question of what makes a good engineer is clearly subjective, but what isn’t is the fact that IT is changing. It is no longer acceptable to not know how to automate through code, work together as a team, and most importantly it’s unacceptable to be an obstacle to change.
It’s important that we grow as engineers to be the best versions of ourselves that we can be. By always continuing to learn and being open to change, I believe there is a twelve-factor engineer in all of us.
The Twelve Factors
- I. Transparent: Share knowledge and reduce obfuscation.
- II. Approachable: Be approachable by peers and users.
- III. Automation Focused: Reduce manual processes, service tickets, and human error through code and automation.
- IV. Self Motivated Learner: Be genuinely interested in your field and constantly learn.
- V. Willingness to Listen: Consider opposing opinions, ideas, and methodologies.
- VI. Question Everything and Everyone: Question opinions, ideas, and methodologies.
- VII. Breadth of Knowledge: Have awareness and/or knowledge, to some degree, on a variety of topics.
- VIII. Depth of Knowledge: Strive for expertise and mastery in a small set of topics and skills.
- IX. Influencer: Influence your environment and the people around you in a positive way.
- X. Simplistic: Reduce complicated proposals into elegant, yet complex solutions.
- XI. Adaptability: Change and adapt with time.
- XII. Contributor: Contribute back to the industry.