SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
We Need to Talk: How
Communication
Helps Code
Lauri Apple
Open Source Evangelist
& Agile Coach, Zalando
Help you achieve ...
… and avoid this ...
Agenda
● Communication overview
● Establishing a dialogue: User research,
Documentation, InnerSource
● Communicating with code: two examples
● Keep communicating
About Zalando
● 15 countries
● 21+ million active customers
● ~3.6 billion € net sales
● +250K products
● 13K+ employees (~1800 in tech)
● About 200 million visits/month
zalando.github.io/
About Me
● Agile coach/project manager
● Open Source Evangelist
● Open Organization Ambassador
(opensource.com/Red Hat)
● SRECon EMEA Co-chair (2018)
● @lauritaapplez
Communication overview
● Why we should talk
● Why we don’t
Talking is a software skill
Empathy != emotion
● Developed by listening +
understanding, applied by
perspective-taking (Andrea
Goulet)
● Helps you: motivate, inspire,
engage (Chad Fowler)
● Introverts can do it
But we don’t talk
● Fear of failure
● Time constraints
● Different priorities
● We don’t like to
● We don’t offer sufficient context
(“why”)
(We don’t) write the docs
Open values make talking easier
● Transparency
● Inclusivity
● Adaptability
● Collaboration
● Community (talking, empathy)
https://opensource.com/open-organization/resources/
open-org-maturity-model
Establishing a dialogue
● User research
● Documentation
● InnerSource
User research = listen!
Dialogues to collect data,
challenge biases, answer “why”
Interactions:
○ Games/brainstorms
○ Focus groups
○ Surveys
○ 1:1 interviews
Be open to surprises https://www.flickr.com/photos/vvbad/3461505983/in/
User persona: talk to a customer
JEN MEOW-MEOW
Backend dev, 27, new, expert
● Her goals: keep BE systems
running
● Seeks: speed, reliability,
customization
● Her challenges: ESL so
needs clear docs; works on
high-profile products; team
still storming
Documentation: talking w/text
Work backwards with words:
● 1-2 page narrative sketch
● “Mock press release”
● README-Driven Development
Why:
● Drives conversation
● Transparency
● Onboarding
If writer’s block, pair-doc!
How to effectively converse
w/READMEs
https://github.com/zalando/zalando-howto-open-source
● Intro answering “why”
● Inspiration/Tech concepts
● Getting started
○ Requirements || Getting || Installing || Configuring || Running
● Other specifics
● Contributing + TODO
● Contact
● License (really important!)
README Maturity Model
Communication overview
● Establishing a dialogue
○ Market+User research
○ InnerSource
○ Documentation
● Sharing your work: two approaches
● Keep communicating
https://github.com/LappleApple/feedmereadmes/
InnerSource
Internal open source
● One team “owns” repo, others can
change
● Eliminate redundancies + blockers
● Breaks silos
● Requires open repos and open
values
Talking drives InnerSource …
and vice versa
Zalando pilot
● Started 2016 w/~25 teams
● Outcomes:
○ Skipper: HTTP router =>
Kubernetes ingress
○ Finished project in ⅓ time
○ No more “10 OAuth2 JS client libs”
Talking via the comments
Communicating with code:
two examples
● STUPS
● ExternalDNS
When we didn’t communicate
Useful, but told a complex story
● Internal survey: 90% said
“keep it” … but!
● Docs incomplete
● “Make it human-friendly”
● “I am tired of the names”
● “Still have work to do”
What if we’d communicated
differently?
● Simpler message
● User research/personas/feedback
● InnerSource
● Contribution guidelines
● More time
Now we talk to people:
ExternalDNS
● Makes Kubernetes resources discoverable
via public DNS servers
● “The last bit of glue … for setting up an
ingress and start deploying services ...
actually putting them in DNS ”—Lachlan
Evenson, Microsoft/Azure (demo)
github.com/kubernetes-incubator/external-dns
https://www.youtube.com/watch?v=9HQ2XgL9YVI
User research w/K8s
community
Keep talking
○ Anticipate questions/needs
○ Ask questions
○ Stay responsive
Anticipating needs (empathy)
github.com/zalando/Patroni
(PostgreSQL + K8s)
● Solves difficult database problem, flexible,
responsive maintainers
github.com/zalando/zalenium
● Get a disposable, flexible, Docker-based
Selenium Grid infrastructure
● Simple script, video recording, dashboards
● Ask community for feedback on new
features
Listening + acting: Fashion-MNIST
https://github.com/zalandoresearch/fashion-mnist
Be friendly and welcoming
Requires no user research to
realize people want you to
be nice to them
Say thanks
Code of Conduct
Respond promptly to queries
Optimize for contributors
● “Deliberate choice to be welcoming ... &
community-oriented”
● Docker did so, “often at maintainer
expense” (Solomon Hykes)
● Onboarded newbies closely
● PRs “carried over” by maintainers to
support
Seek more user feedback
Even for your processes!
Checking in with your users
Try contextual interviews
● At their workstation, w/navigation
● Docs: do they work/are clear?
● Functionality: does it run?
Collect testimonials
Surveys in a pinch
Catch up with Jen Meow-Meow
Communicating pays off
● Engagement
● Goodwill
● Perspective
● Opportunities
● Friendships
Anyone can communicate well.
Thank you!
● zalando.github.io
● github.com/LappleApple/Feedmereadmes
● github.com/LappleApple/awesome-leading-and-managin
g
@lauritaapplez
lauri.apple@zalando.de

Mais conteúdo relacionado

Mais procurados

Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessDaniel Oh
 
Javascript Frameworks (and How to Learn Them)
Javascript Frameworks (and How to Learn Them)Javascript Frameworks (and How to Learn Them)
Javascript Frameworks (and How to Learn Them)All Things Open
 
DockerCon 16 - Moby's Cool Hack Session
DockerCon 16 - Moby's Cool Hack SessionDockerCon 16 - Moby's Cool Hack Session
DockerCon 16 - Moby's Cool Hack SessionDocker, Inc.
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopJonas Rosland
 
Docker, the Future of Distributed Applications | Docker Tour de France 2014
Docker, the Future of Distributed Applications | Docker Tour de France 2014Docker, the Future of Distributed Applications | Docker Tour de France 2014
Docker, the Future of Distributed Applications | Docker Tour de France 2014Julien Barbier
 
Container Migration Tool
Container Migration Tool Container Migration Tool
Container Migration Tool Docker, Inc.
 
Docker Best Practices Workshop
Docker Best Practices WorkshopDocker Best Practices Workshop
Docker Best Practices WorkshopAhmed AbouZaid
 
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
[DevConf.US 2019]Quarkus Brings Serverless to Java DevelopersDaniel Oh
 
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...Yusuf Hadiwinata Sutandar
 
Introduction to containers running dockers using kubernetes - הרצאה לכנס מיק...
Introduction to containers  running dockers using kubernetes - הרצאה לכנס מיק...Introduction to containers  running dockers using kubernetes - הרצאה לכנס מיק...
Introduction to containers running dockers using kubernetes - הרצאה לכנס מיק...Zohar Stolar
 
DockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubDockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubdotCloud
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of dockerJohn Zaccone
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSRoss Kukulinski
 
Why Docker
Why DockerWhy Docker
Why DockerdotCloud
 
Are VM Passé?
Are VM Passé? Are VM Passé?
Are VM Passé? dotCloud
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1Docker, Inc.
 
Docker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetupDocker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetupWalid Shaari
 

Mais procurados (20)

Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on Serverless
 
Javascript Frameworks (and How to Learn Them)
Javascript Frameworks (and How to Learn Them)Javascript Frameworks (and How to Learn Them)
Javascript Frameworks (and How to Learn Them)
 
DockerCon 16 - Moby's Cool Hack Session
DockerCon 16 - Moby's Cool Hack SessionDockerCon 16 - Moby's Cool Hack Session
DockerCon 16 - Moby's Cool Hack Session
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker Workshop
 
Docker, the Future of Distributed Applications | Docker Tour de France 2014
Docker, the Future of Distributed Applications | Docker Tour de France 2014Docker, the Future of Distributed Applications | Docker Tour de France 2014
Docker, the Future of Distributed Applications | Docker Tour de France 2014
 
Container Migration Tool
Container Migration Tool Container Migration Tool
Container Migration Tool
 
Docker Best Practices Workshop
Docker Best Practices WorkshopDocker Best Practices Workshop
Docker Best Practices Workshop
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
 
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
 
Introduction to containers running dockers using kubernetes - הרצאה לכנס מיק...
Introduction to containers  running dockers using kubernetes - הרצאה לכנס מיק...Introduction to containers  running dockers using kubernetes - הרצאה לכנס מיק...
Introduction to containers running dockers using kubernetes - הרצאה לכנס מיק...
 
DockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubDockerCon Keynote Ben Golub
DockerCon Keynote Ben Golub
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
Why Docker
Why DockerWhy Docker
Why Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Are VM Passé?
Are VM Passé? Are VM Passé?
Are VM Passé?
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1
 
Docker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetupDocker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetup
 
Docker management
Docker managementDocker management
Docker management
 

Semelhante a We Need to Talk: How Communication Helps Code

Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceAll Things Open
 
Michael Widenius
Michael WideniusMichael Widenius
Michael WideniusCodeFest
 
Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfShreyaDhurde
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering PrimerGeorg Buske
 
Dynatech presentation for TSI Career Day
Dynatech presentation for TSI Career DayDynatech presentation for TSI Career Day
Dynatech presentation for TSI Career DayArtur Babyuk
 
Building Better FLOSS Community Relationships @ FB
Building Better  FLOSS Community Relationships @ FBBuilding Better  FLOSS Community Relationships @ FB
Building Better FLOSS Community Relationships @ FBDavide Cavalca
 
Large drupal site builds a workshop for sxsw interactive - march 17, 2015
Large drupal site builds   a workshop for sxsw interactive - march 17, 2015Large drupal site builds   a workshop for sxsw interactive - march 17, 2015
Large drupal site builds a workshop for sxsw interactive - march 17, 2015rgristroph
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4aspyker
 
DocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileDocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileMary Connor
 
meetup version of Paving the road to production
  meetup version of Paving the road to production    meetup version of Paving the road to production
meetup version of Paving the road to production Matthew Reynolds
 
Friction Logging and Internal Advocacy, DevRel/Asia 2020
Friction Logging and Internal Advocacy, DevRel/Asia 2020Friction Logging and Internal Advocacy, DevRel/Asia 2020
Friction Logging and Internal Advocacy, DevRel/Asia 2020Emma Haruka Iwao
 
The spirit of Opensource - lets plan to contribute ! @JWC16
The spirit of Opensource - lets plan to contribute ! @JWC16The spirit of Opensource - lets plan to contribute ! @JWC16
The spirit of Opensource - lets plan to contribute ! @JWC16Parth Lawate
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software houseParis Apostolopoulos
 
2015 03 nllgg-event Organizing Duoconferences.
2015 03 nllgg-event Organizing Duoconferences.2015 03 nllgg-event Organizing Duoconferences.
2015 03 nllgg-event Organizing Duoconferences.hcderaad
 
HP DevOps Summit 2021
HP DevOps Summit 2021HP DevOps Summit 2021
HP DevOps Summit 2021Aliza Carpio
 
HP's Dev Ops Summit 2021, Better Together: An Inner Source Journey
HP's Dev Ops Summit 2021, Better Together: An Inner Source JourneyHP's Dev Ops Summit 2021, Better Together: An Inner Source Journey
HP's Dev Ops Summit 2021, Better Together: An Inner Source JourneyAliza Carpio
 

Semelhante a We Need to Talk: How Communication Helps Code (20)

Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
 
Michael Widenius
Michael WideniusMichael Widenius
Michael Widenius
 
Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdf
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering Primer
 
Dynatech presentation for TSI Career Day
Dynatech presentation for TSI Career DayDynatech presentation for TSI Career Day
Dynatech presentation for TSI Career Day
 
Building Better FLOSS Community Relationships @ FB
Building Better  FLOSS Community Relationships @ FBBuilding Better  FLOSS Community Relationships @ FB
Building Better FLOSS Community Relationships @ FB
 
Large drupal site builds a workshop for sxsw interactive - march 17, 2015
Large drupal site builds   a workshop for sxsw interactive - march 17, 2015Large drupal site builds   a workshop for sxsw interactive - march 17, 2015
Large drupal site builds a workshop for sxsw interactive - march 17, 2015
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4
 
LET'S TALK ANDROID Dev
LET'S TALK ANDROID DevLET'S TALK ANDROID Dev
LET'S TALK ANDROID Dev
 
DocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileDocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of Agile
 
meetup version of Paving the road to production
  meetup version of Paving the road to production    meetup version of Paving the road to production
meetup version of Paving the road to production
 
Friction Logging and Internal Advocacy, DevRel/Asia 2020
Friction Logging and Internal Advocacy, DevRel/Asia 2020Friction Logging and Internal Advocacy, DevRel/Asia 2020
Friction Logging and Internal Advocacy, DevRel/Asia 2020
 
The spirit of Opensource - lets plan to contribute ! @JWC16
The spirit of Opensource - lets plan to contribute ! @JWC16The spirit of Opensource - lets plan to contribute ! @JWC16
The spirit of Opensource - lets plan to contribute ! @JWC16
 
Let's talk FOSS!
Let's talk FOSS!Let's talk FOSS!
Let's talk FOSS!
 
Open Source in Real Life
Open Source in Real LifeOpen Source in Real Life
Open Source in Real Life
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
The Road to DITA
The Road to DITAThe Road to DITA
The Road to DITA
 
2015 03 nllgg-event Organizing Duoconferences.
2015 03 nllgg-event Organizing Duoconferences.2015 03 nllgg-event Organizing Duoconferences.
2015 03 nllgg-event Organizing Duoconferences.
 
HP DevOps Summit 2021
HP DevOps Summit 2021HP DevOps Summit 2021
HP DevOps Summit 2021
 
HP's Dev Ops Summit 2021, Better Together: An Inner Source Journey
HP's Dev Ops Summit 2021, Better Together: An Inner Source JourneyHP's Dev Ops Summit 2021, Better Together: An Inner Source Journey
HP's Dev Ops Summit 2021, Better Together: An Inner Source Journey
 

Mais de Docker, Inc.

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Docker, Inc.
 
How to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildHow to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildDocker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSDocker, Inc.
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXDocker, Inc.
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeDocker, Inc.
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDocker, Inc.
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubDocker, Inc.
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices WorldDocker, Inc.
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...Docker, Inc.
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with DockerDocker, Inc.
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeDocker, Inc.
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryDocker, Inc.
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Docker, Inc.
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog ScaleDocker, Inc.
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels Docker, Inc.
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelDocker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSDocker, Inc.
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...Docker, Inc.
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDocker, Inc.
 

Mais de Docker, Inc. (20)

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
How to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildHow to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker Build
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINX
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and Compose
 
Hands-on Helm
Hands-on Helm Hands-on Helm
Hands-on Helm
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at Salesforce
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker Hub
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices World
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with Docker
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio Code
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container Registry
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog Scale
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm Architecture
 

Último

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Français Patch Tuesday - Avril
Français Patch Tuesday - AvrilFrançais Patch Tuesday - Avril
Français Patch Tuesday - AvrilIvanti
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 

Último (20)

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Français Patch Tuesday - Avril
Français Patch Tuesday - AvrilFrançais Patch Tuesday - Avril
Français Patch Tuesday - Avril
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
How Tech Giants Cut Corners to Harvest Data for A.I.
How Tech Giants Cut Corners to Harvest Data for A.I.How Tech Giants Cut Corners to Harvest Data for A.I.
How Tech Giants Cut Corners to Harvest Data for A.I.
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 

We Need to Talk: How Communication Helps Code

  • 1. We Need to Talk: How Communication Helps Code Lauri Apple Open Source Evangelist & Agile Coach, Zalando
  • 3. … and avoid this ...
  • 4. Agenda ● Communication overview ● Establishing a dialogue: User research, Documentation, InnerSource ● Communicating with code: two examples ● Keep communicating
  • 5. About Zalando ● 15 countries ● 21+ million active customers ● ~3.6 billion € net sales ● +250K products ● 13K+ employees (~1800 in tech) ● About 200 million visits/month
  • 7. About Me ● Agile coach/project manager ● Open Source Evangelist ● Open Organization Ambassador (opensource.com/Red Hat) ● SRECon EMEA Co-chair (2018) ● @lauritaapplez
  • 8. Communication overview ● Why we should talk ● Why we don’t
  • 9. Talking is a software skill Empathy != emotion ● Developed by listening + understanding, applied by perspective-taking (Andrea Goulet) ● Helps you: motivate, inspire, engage (Chad Fowler) ● Introverts can do it
  • 10. But we don’t talk ● Fear of failure ● Time constraints ● Different priorities ● We don’t like to ● We don’t offer sufficient context (“why”)
  • 11. (We don’t) write the docs
  • 12. Open values make talking easier ● Transparency ● Inclusivity ● Adaptability ● Collaboration ● Community (talking, empathy) https://opensource.com/open-organization/resources/ open-org-maturity-model
  • 13. Establishing a dialogue ● User research ● Documentation ● InnerSource
  • 14. User research = listen! Dialogues to collect data, challenge biases, answer “why” Interactions: ○ Games/brainstorms ○ Focus groups ○ Surveys ○ 1:1 interviews Be open to surprises https://www.flickr.com/photos/vvbad/3461505983/in/
  • 15. User persona: talk to a customer JEN MEOW-MEOW Backend dev, 27, new, expert ● Her goals: keep BE systems running ● Seeks: speed, reliability, customization ● Her challenges: ESL so needs clear docs; works on high-profile products; team still storming
  • 16. Documentation: talking w/text Work backwards with words: ● 1-2 page narrative sketch ● “Mock press release” ● README-Driven Development Why: ● Drives conversation ● Transparency ● Onboarding If writer’s block, pair-doc!
  • 17. How to effectively converse w/READMEs https://github.com/zalando/zalando-howto-open-source ● Intro answering “why” ● Inspiration/Tech concepts ● Getting started ○ Requirements || Getting || Installing || Configuring || Running ● Other specifics ● Contributing + TODO ● Contact ● License (really important!)
  • 18. README Maturity Model Communication overview ● Establishing a dialogue ○ Market+User research ○ InnerSource ○ Documentation ● Sharing your work: two approaches ● Keep communicating https://github.com/LappleApple/feedmereadmes/
  • 19. InnerSource Internal open source ● One team “owns” repo, others can change ● Eliminate redundancies + blockers ● Breaks silos ● Requires open repos and open values
  • 20. Talking drives InnerSource … and vice versa Zalando pilot ● Started 2016 w/~25 teams ● Outcomes: ○ Skipper: HTTP router => Kubernetes ingress ○ Finished project in ⅓ time ○ No more “10 OAuth2 JS client libs”
  • 21. Talking via the comments
  • 22. Communicating with code: two examples ● STUPS ● ExternalDNS
  • 23. When we didn’t communicate
  • 24. Useful, but told a complex story ● Internal survey: 90% said “keep it” … but! ● Docs incomplete ● “Make it human-friendly” ● “I am tired of the names” ● “Still have work to do”
  • 25. What if we’d communicated differently? ● Simpler message ● User research/personas/feedback ● InnerSource ● Contribution guidelines ● More time
  • 26. Now we talk to people: ExternalDNS ● Makes Kubernetes resources discoverable via public DNS servers ● “The last bit of glue … for setting up an ingress and start deploying services ... actually putting them in DNS ”—Lachlan Evenson, Microsoft/Azure (demo) github.com/kubernetes-incubator/external-dns https://www.youtube.com/watch?v=9HQ2XgL9YVI
  • 28. Keep talking ○ Anticipate questions/needs ○ Ask questions ○ Stay responsive
  • 29. Anticipating needs (empathy) github.com/zalando/Patroni (PostgreSQL + K8s) ● Solves difficult database problem, flexible, responsive maintainers github.com/zalando/zalenium ● Get a disposable, flexible, Docker-based Selenium Grid infrastructure ● Simple script, video recording, dashboards ● Ask community for feedback on new features
  • 30. Listening + acting: Fashion-MNIST https://github.com/zalandoresearch/fashion-mnist
  • 31. Be friendly and welcoming Requires no user research to realize people want you to be nice to them Say thanks Code of Conduct Respond promptly to queries
  • 32. Optimize for contributors ● “Deliberate choice to be welcoming ... & community-oriented” ● Docker did so, “often at maintainer expense” (Solomon Hykes) ● Onboarded newbies closely ● PRs “carried over” by maintainers to support
  • 33. Seek more user feedback Even for your processes! Checking in with your users Try contextual interviews ● At their workstation, w/navigation ● Docs: do they work/are clear? ● Functionality: does it run? Collect testimonials Surveys in a pinch Catch up with Jen Meow-Meow
  • 34. Communicating pays off ● Engagement ● Goodwill ● Perspective ● Opportunities ● Friendships Anyone can communicate well.
  • 35. Thank you! ● zalando.github.io ● github.com/LappleApple/Feedmereadmes ● github.com/LappleApple/awesome-leading-and-managin g @lauritaapplez lauri.apple@zalando.de