Skip to content

Instantly share code, notes, and snippets.

@voidfiles
Created April 1, 2015 04:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save voidfiles/64a44e58c92194315fbc to your computer and use it in GitHub Desktop.
Save voidfiles/64a44e58c92194315fbc to your computer and use it in GitHub Desktop.
<form id="checklist">
<fieldset>
<h2 id="alignment"><span>Alignment</span></h2>
<p class="description">Unifying group and individual direction and goals around the singular vision of the organization.</p>
<ul class="check-list">
<li class="check-item filter-item i1 culture">
<label for="01_cm1" name="01_cm1" class="label">
We prioritize according to business objectives.
<span class="more show">DevOps is all about alignment. It was born out of frustration and trouble between the disparate priorities and incentives of Development and Operations teams. Alignment comes from unifying towards a common goal.</span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i2 culture">
<label for="01_cm2" name="01_cm2" class="label">
We volunteer for tasks rather than having them assigned.
<span class="more show">Autonomy is a critical facet to motivation and job satisfaction. By allowing team members to self-select tasks, you'll see them work on what they're best suited to complete.</span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i3 culture measurement">
<label for="01_cm3" name="01_cm3" class="label">
Our team has clear objectives that correspond with our company vision.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item Measurement">Measurement</li>
</ul>
</label>
</li>
<li class="check-item filter-item i4 culture automation measurement">
<label for="01_cm4" name="01_cm4" class="label">
Our product team is focused on sustainable velocity rather than current speed.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item automation">Automation</li>
<li class="filter-item Measurement">Measurement</li>
</ul>
</label>
</li>
<li class="check-item filter-item i5 culture measurement">
<label for="01_cm5" name="01_cm5" class="label">
We focus on time to repair rather than time between issues.
<span class="more">A great deal of software delivery theory actually stems from manufacturing. The major difference is that testing failure is faster, cheaper and non-destructive. Thus, we focus on early failure detection through automated testing, as far upstream as possible to catch issues before they become costly. We also focus on learning from simulating production failure by staging <a href="https://stripe.com/blog/game-day-exercises-at-stripe" target="_blank">'Game Days'</a>, <a href="http://www.pagerduty.com/blog/failure-friday-at-pagerduty/" target="_blank">'Failure Fridays'</a> and optimizing reaction time and corrective process.</span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item Measurement">Measurement</li>
</ul>
</label>
</li>
<li class="check-item filter-item i6 culture">
<label for="01_cm6" name="01_cm6" class="label">
DevOps is not isolated to a specific role in our organization.
<span class="more">Hiring a 'DevOps engineer' is an antipattern because it charges an individual with understanding and operating in two worlds with their respective opposing incentives, while remaining independent of either, as their own silo. Even more confusing is reconciling that position with a larger organizational DevOps pursuit. Hiring an Automation, Systems, Operations or Development engineer specifically, or just simply an engineer would be more humane and doesn't require you to write a manifesto for your job descriptions. For more info on hiring for DevOps, see <a href="http://www.oreilly.com/webops-perf/free/devops-hiring.csp">O'Reilly's free book.</a></span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i7 culture">
<label for="01_cm7" name="01_cm7" class="label">
DevOps is not isolated to a specific team in our organization.
<span class="more">DevOps works best as a cross-functional team focus. Large organizations have often seen success with an exploratory task force team or a greenfield project team, but in order to get optimal results every team should be able to build and deliver without relying on another department. Vote no on silos!</span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i8 culture">
<label for="01_cm8" name="01_cm8" class="label">
Our operational functions are seen as a source of competitive advantage.
<span class="more">A large part of why DevOps exists is in reaction to common perceptions of IT as a cost to an organization, yet we now know it can just as easily be a source of innovation.</span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
</ul>
</fieldset>
<fieldset>
<h2 id="context"><span>Context</span></h2>
<p class="description">Making relevant information and contact available to those who need it, when they need it.</p>
<ul class="check-list">
<li class="check-item filter-item i9 culture sharing">
<label for="02_cm1" name="02_cm1" class="label">
Representation from our operations team is involved in development sprint planning.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i10 culture sharing">
<label for="02_cm2" name="02_cm2" class="label">
We make potential changes visible to all members of our product team.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i11 culture sharing">
<label for="02_cm3" name="02_cm3" class="label">
We have an automated system for running tasks and receiving notifications with our team chat.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i12 culture sharing">
<label for="02_cm4" name="02_cm4" class="label">
We consult with auditors and regulators regularly and seek guidance when designing systems.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i13 culture sharing">
<label for="02_cm5" name="02_cm5" class="label">
Our team is encouraged to question tasks and priorities.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i14 sharing">
<label for="02_cm6" name="02_cm6" class="label">
We have a centralized instant message system including all members of our product team.
<ul class="tags">
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i15 sharing measurement">
<label for="02_cm7" name="02_cm7" class="label">
All members of our product team have access to environment status, metrics and history.
<ul class="tags">
<li class="filter-item sharing">Sharing</li>
<li class="filter-item measurement">Measurement</li>
</ul>
</label>
</li>
<li class="check-item filter-item i16 sharing measurement">
<label for="02_cm8" name="02_cm8" class="label">
All members of our product team have access to code status, metrics and history.
<ul class="tags">
<li class="filter-item sharing">Sharing</li>
<li class="filter-item measurement">Measurement</li>
</ul>
</label>
</li>
</ul>
</fieldset>
<fieldset>
<h2 id="learning"><span>Learning</span></h2>
<p class="description">Empowering personal growth and fostering understanding through continuous improvement.</p>
<ul class="check-list">
<li class="check-item filter-item i17 culture">
<label for="03_cm1" name="03_cm1" class="label">
We cultivate an environment of continuous learning.
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i18 culture">
<label for="03_cm2" name="03_cm2" class="label">
We regularly celebrate our product team's learnings and success internally.
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i19 culture sharing">
<label for="03_cm3" name="03_cm3" class="label">
We regularly share our product team's learnings and success with the rest of our organization.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i20 culture sharing measurement">
<label for="03_cm4" name="03_cm4" class="label">
We openly discuss failures in order to share learning.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
<li class="filter-item measurement">Measurement</li>
</ul>
</label>
</li>
<li class="check-item filter-item i21 culture measurement">
<label for="03_cm5" name="03_cm5" class="label">
We identify skills needed to improve or address future objectives.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item measurement">Measurement</li>
</ul>
</label>
</li>
<li class="check-item filter-item i22 culture measurement">
<label for="03_cm6" name="03_cm6" class="label">
We strive to examine how we complete our work, and how effectively we complete it.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item measurement">Measurement</li>
</ul>
</label>
</li>
<li class="check-item filter-item i23 measurement">
<label for="03_cm7" name="03_cm7" class="label">
We estimate based on measurement and past experience.
<ul class="tags">
<li class="filter-item measurement">Measurement</li>
</ul>
</label>
</li>
</ul>
</fieldset>
<fieldset>
<h2 id="lifecycle"><span>Lifecycle</span></h2>
<p class="description">Focus on software as a product deserving of care, attention and reflection, within an ever-changing ecosystem.</p>
<ul class="check-list">
<li class="check-item filter-item i24 culture">
<label for="04_cm1" name="04_cm1" class="label">
Our software development cycle is 2 weeks or less.
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i25 culture measurement">
<label for="04_cm2" name="04_cm2" class="label">
Our software development cycle is defined by releasing a working change into production.
<span class="more">Iterative development and process optimization depends on repeatedly performing the critical functions of building and deploying software. The more it's done, the better it's understood, the easier it is to improve and automate.</span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item measurement">Measurement</li>
</ul>
</label>
</li>
<li class="check-item filter-item i26 culture">
<label for="04_cm3" name="04_cm3" class="label">
We stop development upon discovering a defect and prioritize its repair.
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i27 culture automation">
<label for="04_cm4" name="04_cm4" class="label">
Developers or product owners are able to deploy our product to production.
<span class="more">The focus here is empowering the most informed to perform the task. Someone intimately familiar with a change is best positioned to evaluate its performance and correctness. Developers and POs should be empowered to measure and visualize the operation of the change as well, in order to give them a holistic view of the changed system.</span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item automation">Automation</li>
</ul>
</label>
</li>
<li class="check-item filter-item i28 automation testing">
<label for="04_cm5" name="04_cm5" class="label">
We have automated testing prior to automated production deployment.
<span class="more">Production deploys can still be manually initiated in cases where a signoff is required, yet the testing, deployment process and validation should be entirely automated to ensure consistency, accuracy and optimal speed. Automating deploys means no copy and paste, less security risk, more auditability, more confidence.</span>
<ul class="tags">
<li class="filter-item automation">Automation</li>
<li class="filter-item testing">Testing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i29 automation">
<label for="04_cm6" name="04_cm6" class="label">
Our configuration of systems is automated.
<span class="more">Friends don't let friends manually configure systems.</span>
<ul class="tags">
<li class="filter-item automation">Automation</li>
</ul>
</label>
</li>
<li class="check-item filter-item i30 automation">
<label for="04_cm7" name="04_cm7" class="label">
Our deployed system configuration is immutable.
<span class="more">Immutability is an ideal state as it allows operations to focus on optimizing consistent and predictable systems.</span>
<ul class="tags">
<li class="filter-item automation">Automation</li>
</ul>
</label>
</li>
<li class="check-item filter-item i31 automation testing">
<label for="04_cm8" name="04_cm8" class="label">
Our release and deployment automation is environment agnostic.
<span class="more">To avoid fragmentation or repetition, it's best to limit environmental differences to variable values only.</span>
<ul class="tags">
<li class="filter-item automation">Automation</li>
<li class="filter-item testing">Testing</li>
</ul>
</label>
</li>
</ul>
</fieldset>
<fieldset>
<h2 id="organization"><span>Organization</span></h2>
<p class="description">Providing structure for interaction and cohesion supporting collaboration and productivity.</p>
<ul class="check-list">
<li class="check-item filter-item i32 culture sharing">
<label for="05_cm1" name="05_cm1" class="label">
Our subject matter expertise is not isolated to individuals.
<span class="more">If you're lucky, you're surrounded by experts. Ideally, they're not just islands of knowledge and responsibility, but part of a peer group within the organization.</span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i33 culture sharing testing">
<label for="05_cm2" name="05_cm2" class="label">
We enable peer and cross-functional review for changes.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
<li class="filter-item testing">Testing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i34 culture">
<label for="05_cm3" name="05_cm3" class="label">
Our organization is configured around cross-functional teams.
<span class="more">Cross-functional teams are more empowered to build and deploy their own software without being hindered by constraints. They also avoid an 'us vs them' effect of siloed functional teams, learn from, and foster awareness and empathy for eachothers priorities and interests.</span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i35 culture">
<label for="05_cm4" name="05_cm4" class="label">
Our teams are customer and product oriented.
<span class="more">Customer focus helps align teams towards valuable goals, and keeps development and engineering zeroed in on delivery and processing feedback.</span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i36 culture sharing">
<label for="05_cm5" name="05_cm5" class="label">
We review priorities on a regular basis.
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i37 automation testing">
<label for="05_cm6" name="05_cm6" class="label">
Our developers have access to production-like systems to work and test on.
<ul class="tags">
<li class="filter-item automation">Automation</li>
<li class="filter-item testing">Testing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i38 automation testing">
<label for="05_cm7" name="05_cm7" class="label">
Our developers have access to production-like data to work and test against.
<ul class="tags">
<li class="filter-item automation">Automation</li>
<li class="filter-item testing">Testing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i39 automation testing">
<label for="05_cm8" name="05_cm8" class="label">
Our developers have access to dependencies required to build and test software.
<ul class="tags">
<li class="filter-item automation">Automation</li>
<li class="filter-item testing">Testing</li>
</ul>
</label>
</li>
</ul>
</fieldset>
<fieldset>
<h2 id="process"><span>Process</span></h2>
<p class="description">Rituals crafted to foster consistency and confidence, providing a framework for continuous improvement.</p>
<ul class="check-list">
<li class="check-item filter-item i40 culture">
<label for="06_cm1" name="06_cm1" class="label">
Our organization follows agile development practices.
<span class="more">To realize the full power of a focus on DevOps, feedback and regular iteration are critical. <a href="http://www.agileweboperations.com/lean-agile-devops-related" target="_blank">DevOps is built on agile.</a></span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i41 culture sharing">
<label for="06_cm2" name="06_cm2" class="label">
We practice blameless postmortems.
<span class="more">Focus on learning and continual improvement. This is the human equivalent of focusing on MTTR vs MTBF. Read: <a href="https://codeascraft.com/2012/05/22/blameless-postmortems/" target="_blank">John Allspaw's great article on Etsy's process</a></span>
<ul class="tags">
<li class="filter-item culture">Culture</li>
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i42 culture measurement">
<label for="06_cm3" name="06_cm3" class="label">
We regularly examine constraints in our delivery process.
<ul class="tags">
<li class="filter-item culture">Culture</li>
</ul>
</label>
</li>
<li class="check-item filter-item i43 automation testing">
<label for="06_cm4" name="06_cm4" class="label">
Our system configuration is committed into version control.
<ul class="tags">
<li class="filter-item automation">Automation</li>
<li class="filter-item testing">Testing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i44 sharing">
<label for="06_cm5" name="06_cm5" class="label">
Our documentation is version controlled and shared.
<ul class="tags">
<li class="filter-item sharing">Sharing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i45 sharing">
<label for="06_cm6" name="06_cm6" class="label">
We maintain a backlog of tasks, visible to all team members and available for comment.
<ul class="tags">
</ul>
</label>
</li>
<li class="check-item filter-item i46 testing">
<label for="06_cm7" name="06_cm7" class="label">
We practice test or behaviour driven development.
<ul class="tags">
<li class="filter-item testing">Testing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i47 testing">
<label for="06_cm8" name="06_cm8" class="label">
We test our changes against a merge with our mainline code.
<span class="more">Until you prove your code isn't a destructive regression, it shouldn't be deployed for someone else to discover. Automated testing and frequent merging should catch most of these issues, and make sure you don't find out about problems from someone else - or worse, Twitter.</span>
<ul class="tags">
<li class="filter-item testing">Testing</li>
</ul>
</label>
</li>
<li class="check-item filter-item i48 testing">
<label for="06_cm9" name="06_cm9" class="label">
We test our changes against production-equivalent load and use patterns.
<ul class="tags">
<li class="filter-item testing">Testing</li>
</ul>
</label>
</li>
</ul>
</fieldset>
<div class="score-summary">
<h2 id="summary"><span>Score</span></h2>
<ul id="score" class="check-list">
</ul>
</div>
<ul class="nav">
<li title="Back to top"><a href="#wrapper" class="icon up"><span>Top</span></a></li>
<li title="Print"><a href="javascript:window.print()" class="icon print"><span>Print</span></a></li>
<li title="Reset"><span>Reset</span></li>
</ul>
</form>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment