Developer Isolation: How DevOps Helps Team Building Baltimore Drupal - - PowerPoint PPT Presentation

developer isolation how devops helps team building
SMART_READER_LITE
LIVE PREVIEW

Developer Isolation: How DevOps Helps Team Building Baltimore Drupal - - PowerPoint PPT Presentation

Developer Isolation: How DevOps Helps Team Building Baltimore Drupal Camp - Oct. 12 th , 2018 Matt Westgate @mettamatt About Me 15+ years of Drupal. Yikes! Iowa native DevOps is a collaboration movement. Development Production


slide-1
SLIDE 1

Developer Isolation: How DevOps Helps Team Building

Baltimore Drupal Camp - Oct. 12th, 2018 Matt Westgate @mettamatt

slide-2
SLIDE 2
  • 15+ years of Drupal. Yikes!
  • Iowa native

About Me

slide-3
SLIDE 3

DevOps is a collaboration movement.

Development Production Operations

slide-4
SLIDE 4

Collaboration happens when people feel safe and included. Without safety and collaboration, a DevOps culture and practice cannot thrive.

slide-5
SLIDE 5

Team Effectiveness1

Psychological Safety4

I feel safe to take risks and be vulnerable in front of my team.

Dependability

We complete quality work on time.

Structure & Clarity

We have clear roles, plans and goals.

Meaning

My work is personally important to me.

Impact

The result of my work matters.

Information Flow2

High Cooperation Shared Risks Loosely Coupled Teams Failure -> Inquiry Novelty Implemented

Tooling3

Version Control Code Reviews Build Environments Test Automation Deployment Automation

1. re:Work with Google: https://rework.withgoogle.com/guides/understanding-team-effectiveness/ (2016, Google) 2. A Typology of Organisational Cultures: https://qualitysafety.bmj.com/content/13/suppl_2/ii22 (Westrum, 2004) 3. State of DevOps Report: https://puppet.com/resources/whitepaper/state-of-devops-report (2018, DORA) 4. Psychological Safety and Learning Behavior: https://www.jstor.org/stable/2666999 (1999, Edmondson)

Safety Collaboration DevOps

slide-6
SLIDE 6

Collaboration is measured by how well information flows in an organization.

slide-7
SLIDE 7

Pathological Bureaucratic Generative

Power oriented Rule oriented Performance oriented Low cooperation Modest cooperation High cooperation Messengers shot Messengers neglected Messengers trained Responsibilities shirked Narrow responsibilities Risks are shared Bridging discouraged Bridging tolerated Bridging encouraged Failure -> scapegoating Failure -> justice Failure -> inquiry1 Novelty crushed Novelty > problems Novelty implemented

1. Blameless PostMortems: https://codeascraft.com/2012/05/22/blameless-postmortems/

slide-8
SLIDE 8

Team Effectiveness1

Psychological Safety

I feel safe to take risks and be vulnerable in front of my team.

Dependability

We complete quality work on time.

Structure & Clarity

We have clear roles, plans and goals.

Meaning

My work is personally important to me.

Impact

The result of my work matters.

Information Flow2

High Cooperation Shared Risks Loosely Coupled Teams Failure -> Inquiry Novelty Implemented

Tooling3

Version Control Code Reviews Build Environments Test Automation Deployment Automation

1. re:Work with Google: https://rework.withgoogle.com/guides/understanding-team-effectiveness/steps/introduction/ 2. A Typology of Organisational Cultures: https://qualitysafety.bmj.com/content/13/suppl_2/ii22 3. State of DevOps Report: https://puppet.com/resources/whitepaper/state-of-devops-report

Safety Collaboration DevOps

slide-9
SLIDE 9

Collaboration happens when people feel safe and included. Without safety and collaboration, a DevOps culture and practice cannot thrive.

slide-10
SLIDE 10

Team Effectiveness1

Psychological Safety

I feel safe to take risks and be vulnerable in front of my team.

Dependability

We complete quality work on time.

Structure & Clarity

We have clear roles, plans and goals.

Meaning

My work is personally important to me.

Impact

The result of my work matters.

Information Flow2

High Cooperation Shared Risks Loosely Coupled Teams Failure -> Inquiry Novelty Implemented

Tooling3

Version Control Code Reviews Build Environments Test Automation Deployment Automation

1. re:Work with Google: https://rework.withgoogle.com/guides/understanding-team-effectiveness/steps/introduction/ 2. A Typology of Organisational Cultures: https://qualitysafety.bmj.com/content/13/suppl_2/ii22 3. State of DevOps Report: https://puppet.com/resources/whitepaper/state-of-devops-report

slide-11
SLIDE 11

If you don’t want to look….

  • Ignorant

○ Don’t ask questions

  • Incompetent

○ Don’t admit weakness or mistakes

  • Intrusive

○ Don’t offer ideas

  • Negative

○ Don’t critique the status quo

slide-12
SLIDE 12

Every time we withhold information, we rob

  • urselves and our team of learning and innovation.
slide-13
SLIDE 13

You will not be punished or humiliated for speaking up with ideas, questions, concerns,

  • r mistakes.
slide-14
SLIDE 14

How to Build Psychological Safety

1. Frame the work as a learning problem. Not an execution problem. 2. Acknowledge your own fallibility. 3. Model curiosity

slide-15
SLIDE 15

Final Thoughts on Collaboration and Safety

slide-16
SLIDE 16

Change usually comes from leadership

slide-17
SLIDE 17

Leadership aside, it's not about who's on the team, it's about how well that team works together

slide-18
SLIDE 18

The more there is communication, the less there is isolation. Make it safe to communicate.

slide-19
SLIDE 19

Collaboration happens when people feel safe and included. Without safety and collaboration, a DevOps culture and practice cannot thrive.

slide-20
SLIDE 20

Collaborative DevOps Tooling

slide-21
SLIDE 21

Version Control

slide-22
SLIDE 22

Code Reviews on Pull Requests

https://github.com/features/code-review/

slide-23
SLIDE 23

Preview Environments

slide-24
SLIDE 24

Release Plan Developer Developer Developer Developer Developer Stakeholder Stakeholder Stakeholder QA Release Integration Deploy to Prod Bug Bug

?

Staging Developer

slide-25
SLIDE 25

Release Plan Developer Developer Developer Developer Developer Stakeholder Stakeholder Stakeholder QA Release Integration Deploy to Prod Bug Bug Release Plan Release Plan Release Plan Release Plan Stakeholder Stakeholder

Preview Preview Preview Preview Preview

slide-26
SLIDE 26

Self-Service Infrastructure

services: php: image: tugboatqa/php:apache depends: mysql commands: init:

  • ln -snf "${TUGBOAT_ROOT}/web" "${DOCROOT}"

update:

  • rsync -av --delete user@foo.com:/files/ "${DOCROOT}/files/"
  • chgrp -R www-data "${DOCROOT}/sites/default/files"

build:

  • drush -r "${DOCROOT}" cache-clear all
  • drush -r "${DOCROOT}" updb -y

mysql: image: tugboatqa/mysql commands: update:

  • scp user@foo.com:database.sql.gz /tmp/database.sql.gz
  • zcat /tmp/database.sql.gz | mysql tugboat
slide-27
SLIDE 27

Automate, together

slide-28
SLIDE 28

“When you’re on a team that has empathy, trust, and openness, DevOps tends to follow. Pizza also helps.”

slide-29
SLIDE 29

https://tugboat.qa/

It’s free!