SlideShare a Scribd company logo
1 of 102
hello


Hello
What is Etsy?
Etsy is a commerce platform & a community where people buy
direct from designers & artists who make & sell their own
products.
Any creative person can open a shop, list items, receive and
fulfill orders, promote themselves, connect with other people,
curate collections of items, watch site activity...
96% goes straight to the seller.
There are products made by hand or with very small scale
production.
There are vintage and antique products.
There are supplies for making.
Etsy is more than products. It’s a community.
End
                              to
                          End

I’m in the lucky position to be creative director at Etsy.
I get to be the arbiter of Etsy's experience end-to-end across
all channels...
...out in the world...
...on your phone...
...and at etsy.com. I’m the design cheerleader, with a critical
eye. And I make sure great design work gets done.
10+ million
                        members



There’s a lot to get done. In a complex environment.
800,000+
  sellers
11 million+
   items
1 billion+
page views a month
$600 million
            this year



And...
About 140 people in Product Design & Engineering
(that’s designers, product managers, engineers, and devops).
We have to make that all work!
Design
                            for
               Continuous
               Deployment

Which brings me to the topic at hand. Design for Continuous
Deployment.
HELL         Design
                      for


       YES!
             Continuous
             Deployment

Which is awesome.
“What is he
         doing here?”


You might be asking yourself, “why is a designer talking to
room of developers about deployment?”
get
                         Great
                         Work
                             done


Return to this idea of helping
great work get done.
How
                     Things
                           are
                      Made

Getting great work done means working together.
And it means valuing how things are made.
Making
                   Together


In fact, it means Making Together.
THAT is designing for continuous deployment.
If our engineers practice continuous deployment, so must we.
We’re building one product.
Designers...
...and engineers...(no wait)...
...and engineers working together.
“What is
        continuous
        deployment?”

That brings us to our next question. You might be asking,
“What is continuous deployment?”
“deployment”

          Release Changes

“Deployment” is really just releasing changes to your product.
“continuous”

            All of the Time

“Continuous” means those changes are being released all of
the time.
Always Improve


Assuming that each change is intended to be an improvement
(and why wouldn’t it be?), then that means the product is
always improving.
Frequent

                       Boring

                   Low-Risk
These changes happen often, they’re trivial, and because
they’re small, they should be low risk. This is really the
philosophy of continuous deployment.
Release
                      Early

                     Release
                      Often
This is saying frequency another way: a catchy way. This is
how you say it if you want to remind someone they haven’t
released small enought or frequently enough.
Easy to Identify

                Easy to Fix

Again, because the changes are small (and we measure what
happens) problems are easier to find and easier to fix.
“Why design for
        continuous
        deployment?”

So, you ask, “why design for continuous deployment?”
We’re all in
               this together.


Well, we’re working together building one product, so we
should work similarly. Design doesn’t get left behind in a
powerful engineering culture. In fact, design can scale and be
more fluid when it’s close to engineering.
Share Early

                 Share Often

This is the collaboration counterpart to releasing early and
often. You encounter problems sooner. You learn sooner. You
fix sooner.
This isn’t about speed, it’s about quality.
You sketch it out...
code




...make it real...
code




...and share it!
You’ve made your design in the actual application
environment. For engineers, no big deal. For designers, this is
huge!
Empowerment,
            Responsibility
                            &
                       Trust

And when you get to the point of releasing, you’re empowered
and trusted to do that. (yep, designers deploy to production
too)
People like these things. Being trusted feels good.
As Kellan our CTO says, “optimize for developer happiness.”
When you’re happy, you do better work.
Decentralize
                   Work


When everyone can access code and everyone can deploy,
there’s not single bottleneck or central deployment authority.
Engineers      Deployers




Here we can see the moment in 2010 when the number of
people deploying to production surpassed the number of
engineers on staff. This is good.
Engineers         Deployers
   70


   60


   50


   40


   30


   20


   10


    0
        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov




Here we can see the moment in 2010 when the number of
people deploying to production surpassed the number of
engineers on staff. This is good.
Engineers         Deployers
   70


   60
                                                                    58
                                                              55
   50
                                                        49
                                                  47
   40                                       42

                                      35
   30
                                30
                          26
   20               23
              20
        15
   10


    0
        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov




Here we can see the moment in 2010 when the number of
people deploying to production surpassed the number of
engineers on staff. This is good.
Engineers         Deployers
   70


                                                                    62
   60
                                                              57
                                                                    58
                                                        54
                                                              55
   50                                             50
                                                        49
                                                  47
   40                                       42

                                      35    32
   30
                                30
                                      26
                          26
                                22
   20               23
              20
                          15
        15
   10               10
         7     8


    0
        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov




Here we can see the moment in 2010 when the number of
people deploying to production surpassed the number of
engineers on staff. This is good.
Engineers         Deployers
   70


                                                                    62
   60
                                                              57
                                                                    58
                                                        54
                                                              55
   50                                             50
                                                        49
                                                  47
   40                                       42

                                      35    32
   30
                                30
                                      26
                          26
                                22
   20               23
              20
                          15
        15
   10               10
         7     8


    0
        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov




Here we can see the moment in 2010 when the number of
people deploying to production surpassed the number of
engineers on staff. This is good.
Share Language

        Share Knowledge

When designers and engineers work in the same environment,
they share a language. This makes is easier to share
knowledge. It also means you sympathize more with each
other’s motivations and challenges.
Version Control
            Design Assets


As an added bonus. When you have designers working this
way, you get version control of your design assets happening
naturally. Nice!
“How do you do it?”


Enough with the philosophy and motivational messages.
“How does this work at Etsy?”
Tools
                        &
                      Process

I’ll describe the tools and basic process we use on the product
design team (and where we intersect with engineering).
Dev Environment


We all have a dedicated virtual machine that serves as our
development environment. They are configured as mirrors of
production in almost every way.
Local
              Environment


And we all work locally on our Macs. This is like some
engineers, but not most of them. Most of them like to work in
their development environment directly. Us designers don’t like
things like Vim.
Quick Start Guides
                            &
                   Packages

Along with our engineers, we’ve made quick guides to help
designers get started in this environment.
Some engineers even made us a handy package to install. Ta-
da!
Chat & Share
The whole company uses IRC to communicate.
The product design team also uses Campfire (and the Propane
client) to share visual designs in conversation as well. We’ll
post links to dev environments, as well as still and motion
screen captures.
send
            Local Changes
                             to
        Dev Environemnt

Remember those set up tools? Well there’s a handy script that
auto-sends local changes to your development environment.
Pattern Library


We’ve built a design Pattern Library. It allows us to quickly get
designs roughed. Don’t duplicate efforts. Be more consistent
throughout the product.

It covers mark-up, style, and behavior.
This doesn’t solve everything, every time, but a patterns solves
many things many times. Makes it easy to get started. Helps
share design decisions between designers and with engineers.

If we do something more than once, we patternize it.
Config Flags


We put every feature behind config flags. They’re dead simple.
They live in a few simple PHP files.

These allow us to safely work in production code and only
deliver designs to the right people at the right time.
These flags turn things on and off.
They determine what environment they’re on/off in.
They can determine what specific users.
And they integrate with our a/b experiment framework.
On/Off




These flags turn things on and off.
They determine what environment they’re on/off in.
They can determine what specific users.
And they integrate with our a/b experiment framework.
On/Off
                  Dev/Prod



These flags turn things on and off.
They determine what environment they’re on/off in.
They can determine what specific users.
And they integrate with our a/b experiment framework.
On/Off
          Dev/Prod
        Whitelist/Co./All


These flags turn things on and off.
They determine what environment they’re on/off in.
They can determine what specific users.
And they integrate with our a/b experiment framework.
On/Off
          Dev/Prod
        Whitelist/Co./All
           %A/%B

These flags turn things on and off.
They determine what environment they’re on/off in.
They can determine what specific users.
And they integrate with our a/b experiment framework.
URL Params


We’ve implemented very simple template tags that allow us to
specify URL parameters and next design states or variations
inside them.
{% if $smarty.get.url_param ==
url_param_value %}


a design for review
{% /if %}
{% if $smarty.get.url_param ==
version-A %}


a design for review
{% /if %}
{% if $smarty.get.url_param ==
version-B %}


another design for review
{% /if %}
Commit & Review


Before we send our changes back to master, we get code
reviews from our peers.
We use Crucible or Github or really anything you’d like to use
to do a code review. The important thing is that we check our
work. Designers can learn a ton from engineers in this step.
Test


Before we send changes to master, we run functional and unit
tests.
Push


Then we push it.
Push it to
             Master in Git


Wow, tech-y slide.
What about merging? We merge when we pull.
No branches. We only “branch in code” using the config flags.
That saves us from any annoying merging issues and keeps
everyone accountable. It’s also just simple and easy to
understand.
Deploy Queue


Who’s turn is it? We find out by joining the Deploy Queue.
So how do you manage 100 people pushing and deploying
code to production? You make them talk to each other.
That’s right, IRC. There’s a special IRC room just for Pushes.
There’s a little bot that helps you be polite, but the only policy
enforcement is self enforcement. We respect the system and
respect our peers.
Deployinator


When the queueu says it’s okay to deploy, we turn to our tool,
Deployinator. It’s a dashboard and simple UI for 1-button
deploys.
It patternizes behavior.
It’s so easy, even our investors deploy! ;-)
etsy.github.com


Deployinator (and several of our other home-brew tools) are
open-sourced and avaliable on github.
Measure


After we deploy, we measure, measure, measure.
We monitor performance immediately and over the long term.
We look at business metrics immediately and over the long
term.
And we watch behavioral metrics and funnels using our
analyzer tool.
Performance



We monitor performance immediately and over the long term.
We look at business metrics immediately and over the long
term.
And we watch behavioral metrics and funnels using our
analyzer tool.
Performance
          Business Metrics


We monitor performance immediately and over the long term.
We look at business metrics immediately and over the long
term.
And we watch behavioral metrics and funnels using our
analyzer tool.
Performance
          Business Metrics
           A/B Analyzer

We monitor performance immediately and over the long term.
We look at business metrics immediately and over the long
term.
And we watch behavioral metrics and funnels using our
analyzer tool.
Repeat


And we do this over and over and over again, deploying up to
50 times day.
“Why ‘hell yes’?”


Why’s it all so exciting to designers...and engineers?
Simplify
                            the
                   Complex

Working continuously, and releasing small pieces breaks
complex things down into simpler things.
Work Closely


You end up working closely together, because we use the
same tools and languages. This is good.
Make Change Easy


This makes it easier to make changes happen, and get them
out in the world.
Make Great Work


Develop a way of working that facilitates great work.
Make People Happy


And when you make great work, the people you make it and
the people who use it are better for it.
Make People Happy


Afterall, it’s people that matter most.
That Is
    a
Beautiful
 Thing
That Is
                             an
                   Awesome
                    Thing

If you find that as awesome as I do...
WE’RE
  That Is
    an


HIRING
 Awesome
  Thing
randy@etsy.com
               @randyjhunt


Please come talk to me.
Thank you so much.

More Related Content

Similar to Design For Continuous Deployment

Randy Hunt, Etsy - Warm Gun Conference
Randy Hunt, Etsy - Warm Gun ConferenceRandy Hunt, Etsy - Warm Gun Conference
Randy Hunt, Etsy - Warm Gun Conference500 Startups
 
Connecting Festivals To Offer More
Connecting Festivals To Offer MoreConnecting Festivals To Offer More
Connecting Festivals To Offer Morefestivalslab
 
Don't stop me now day2 a
Don't stop me now day2 aDon't stop me now day2 a
Don't stop me now day2 aelliottofhook
 
10 Tips for Agile Adoption
10 Tips for Agile Adoption10 Tips for Agile Adoption
10 Tips for Agile Adoptionallan kelly
 
Agile Measurement and metrics for Accountability
Agile Measurement and metrics  for  AccountabilityAgile Measurement and metrics  for  Accountability
Agile Measurement and metrics for AccountabilityValtech UK
 
[KUG Award 2009] Dream Like Love Seyeob Kim
[KUG Award 2009] Dream Like Love Seyeob Kim[KUG Award 2009] Dream Like Love Seyeob Kim
[KUG Award 2009] Dream Like Love Seyeob KimKeynote User Group
 
Social media professionals payscale - India
Social media professionals payscale - IndiaSocial media professionals payscale - India
Social media professionals payscale - IndiaDigiWhirl
 
State Of Interaction Design 2008
State Of Interaction Design 2008State Of Interaction Design 2008
State Of Interaction Design 2008Dave Malouf
 
Gov 2.0: Scaling, Automation, & Management in the Cloud
Gov 2.0: Scaling, Automation, & Management in the CloudGov 2.0: Scaling, Automation, & Management in the Cloud
Gov 2.0: Scaling, Automation, & Management in the CloudJesse Robbins
 
LeanMantra - Lean Startup Workshop
LeanMantra - Lean Startup WorkshopLeanMantra - Lean Startup Workshop
LeanMantra - Lean Startup WorkshopLeanMantra
 
Secrets of success to innovation and sustainability
Secrets of success to innovation and sustainabilitySecrets of success to innovation and sustainability
Secrets of success to innovation and sustainabilityLondon Business School
 
Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)Bill Scott
 
Open Source Skills and Business Requirements – Match and Mismatch
Open Source Skills and Business Requirements – Match and MismatchOpen Source Skills and Business Requirements – Match and Mismatch
Open Source Skills and Business Requirements – Match and MismatchAndreas Meiszner
 
The Way We Start Our Transformation Journey
The Way We Start Our Transformation JourneyThe Way We Start Our Transformation Journey
The Way We Start Our Transformation JourneyDevOps Indonesia
 
Value driven - the future of software development
Value driven - the future of software developmentValue driven - the future of software development
Value driven - the future of software developmentCJ Marsh
 
Collaborative Innovation: The State of Engagement
Collaborative Innovation: The State of EngagementCollaborative Innovation: The State of Engagement
Collaborative Innovation: The State of EngagementDan Keldsen
 

Similar to Design For Continuous Deployment (20)

Scaling startups
Scaling startupsScaling startups
Scaling startups
 
Randy Hunt, Etsy - Warm Gun Conference
Randy Hunt, Etsy - Warm Gun ConferenceRandy Hunt, Etsy - Warm Gun Conference
Randy Hunt, Etsy - Warm Gun Conference
 
Connecting Festivals To Offer More
Connecting Festivals To Offer MoreConnecting Festivals To Offer More
Connecting Festivals To Offer More
 
Don't stop me now day2 a
Don't stop me now day2 aDon't stop me now day2 a
Don't stop me now day2 a
 
10 Tips for Agile Adoption
10 Tips for Agile Adoption10 Tips for Agile Adoption
10 Tips for Agile Adoption
 
Agile Measurement and metrics for Accountability
Agile Measurement and metrics  for  AccountabilityAgile Measurement and metrics  for  Accountability
Agile Measurement and metrics for Accountability
 
Bedrijvensessie OCW
Bedrijvensessie OCWBedrijvensessie OCW
Bedrijvensessie OCW
 
The Cisco connected world report
The Cisco connected world reportThe Cisco connected world report
The Cisco connected world report
 
[KUG Award 2009] Dream Like Love Seyeob Kim
[KUG Award 2009] Dream Like Love Seyeob Kim[KUG Award 2009] Dream Like Love Seyeob Kim
[KUG Award 2009] Dream Like Love Seyeob Kim
 
Social media professionals payscale - India
Social media professionals payscale - IndiaSocial media professionals payscale - India
Social media professionals payscale - India
 
State Of Interaction Design 2008
State Of Interaction Design 2008State Of Interaction Design 2008
State Of Interaction Design 2008
 
Gov 2.0: Scaling, Automation, & Management in the Cloud
Gov 2.0: Scaling, Automation, & Management in the CloudGov 2.0: Scaling, Automation, & Management in the Cloud
Gov 2.0: Scaling, Automation, & Management in the Cloud
 
LeanMantra - Lean Startup Workshop
LeanMantra - Lean Startup WorkshopLeanMantra - Lean Startup Workshop
LeanMantra - Lean Startup Workshop
 
Pollenizer Year Book 2009
Pollenizer Year Book 2009Pollenizer Year Book 2009
Pollenizer Year Book 2009
 
Secrets of success to innovation and sustainability
Secrets of success to innovation and sustainabilitySecrets of success to innovation and sustainability
Secrets of success to innovation and sustainability
 
Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)
 
Open Source Skills and Business Requirements – Match and Mismatch
Open Source Skills and Business Requirements – Match and MismatchOpen Source Skills and Business Requirements – Match and Mismatch
Open Source Skills and Business Requirements – Match and Mismatch
 
The Way We Start Our Transformation Journey
The Way We Start Our Transformation JourneyThe Way We Start Our Transformation Journey
The Way We Start Our Transformation Journey
 
Value driven - the future of software development
Value driven - the future of software developmentValue driven - the future of software development
Value driven - the future of software development
 
Collaborative Innovation: The State of Engagement
Collaborative Innovation: The State of EngagementCollaborative Innovation: The State of Engagement
Collaborative Innovation: The State of Engagement
 

Recently uploaded

Color Theory Explained for Noobs- Think360 Studio
Color Theory Explained for Noobs- Think360 StudioColor Theory Explained for Noobs- Think360 Studio
Color Theory Explained for Noobs- Think360 StudioThink360 Studio
 
Karim apartment ideas 02 ppppppppppppppp
Karim apartment ideas 02 pppppppppppppppKarim apartment ideas 02 ppppppppppppppp
Karim apartment ideas 02 pppppppppppppppNadaMohammed714321
 
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书zdzoqco
 
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...Associazione Digital Days
 
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10uasjlagroup
 
10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designers10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designersPixeldarts
 
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道yrolcks
 
guest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssssguest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssssNadaMohammed714321
 
澳洲UQ学位证,昆士兰大学毕业证书1:1制作
澳洲UQ学位证,昆士兰大学毕业证书1:1制作澳洲UQ学位证,昆士兰大学毕业证书1:1制作
澳洲UQ学位证,昆士兰大学毕业证书1:1制作aecnsnzk
 
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...katerynaivanenko1
 
Pearl Disrtrict urban analyusis study pptx
Pearl Disrtrict urban analyusis study pptxPearl Disrtrict urban analyusis study pptx
Pearl Disrtrict urban analyusis study pptxDanielTamiru4
 
Pharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdfPharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdfAayushChavan5
 
10 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 202410 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 2024digital learning point
 
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - MorgenboosterAI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster1508 A/S
 
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degreeyuu sss
 
TYPES-OF-VOLCANOES-AND-VOLCANIC-ERUPTIOn
TYPES-OF-VOLCANOES-AND-VOLCANIC-ERUPTIOnTYPES-OF-VOLCANOES-AND-VOLCANIC-ERUPTIOn
TYPES-OF-VOLCANOES-AND-VOLCANIC-ERUPTIOnbeetchunknown
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Rndexperts
 
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改yuu sss
 
guest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssssguest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssssNadaMohammed714321
 

Recently uploaded (20)

Color Theory Explained for Noobs- Think360 Studio
Color Theory Explained for Noobs- Think360 StudioColor Theory Explained for Noobs- Think360 Studio
Color Theory Explained for Noobs- Think360 Studio
 
Karim apartment ideas 02 ppppppppppppppp
Karim apartment ideas 02 pppppppppppppppKarim apartment ideas 02 ppppppppppppppp
Karim apartment ideas 02 ppppppppppppppp
 
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
 
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
 
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
 
10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designers10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designers
 
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道
 
guest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssssguest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssss
 
澳洲UQ学位证,昆士兰大学毕业证书1:1制作
澳洲UQ学位证,昆士兰大学毕业证书1:1制作澳洲UQ学位证,昆士兰大学毕业证书1:1制作
澳洲UQ学位证,昆士兰大学毕业证书1:1制作
 
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
 
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
 
Pearl Disrtrict urban analyusis study pptx
Pearl Disrtrict urban analyusis study pptxPearl Disrtrict urban analyusis study pptx
Pearl Disrtrict urban analyusis study pptx
 
Pharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdfPharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdf
 
10 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 202410 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 2024
 
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - MorgenboosterAI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
 
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
 
TYPES-OF-VOLCANOES-AND-VOLCANIC-ERUPTIOn
TYPES-OF-VOLCANOES-AND-VOLCANIC-ERUPTIOnTYPES-OF-VOLCANOES-AND-VOLCANIC-ERUPTIOn
TYPES-OF-VOLCANOES-AND-VOLCANIC-ERUPTIOn
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025
 
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改
1比1办理美国北卡罗莱纳州立大学毕业证成绩单pdf电子版制作修改
 
guest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssssguest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssss
 

Design For Continuous Deployment

  • 2. What is Etsy? Etsy is a commerce platform & a community where people buy direct from designers & artists who make & sell their own products.
  • 3. Any creative person can open a shop, list items, receive and fulfill orders, promote themselves, connect with other people, curate collections of items, watch site activity...
  • 4. 96% goes straight to the seller.
  • 5. There are products made by hand or with very small scale production.
  • 6. There are vintage and antique products.
  • 7. There are supplies for making.
  • 8. Etsy is more than products. It’s a community.
  • 9. End to End I’m in the lucky position to be creative director at Etsy. I get to be the arbiter of Etsy's experience end-to-end across all channels...
  • 10. ...out in the world...
  • 12. ...and at etsy.com. I’m the design cheerleader, with a critical eye. And I make sure great design work gets done.
  • 13. 10+ million members There’s a lot to get done. In a complex environment.
  • 15. 11 million+ items
  • 17. $600 million this year And...
  • 18. About 140 people in Product Design & Engineering (that’s designers, product managers, engineers, and devops). We have to make that all work!
  • 19. Design for Continuous Deployment Which brings me to the topic at hand. Design for Continuous Deployment.
  • 20. HELL Design for YES! Continuous Deployment Which is awesome.
  • 21. “What is he doing here?” You might be asking yourself, “why is a designer talking to room of developers about deployment?”
  • 22. get Great Work done Return to this idea of helping great work get done.
  • 23. How Things are Made Getting great work done means working together. And it means valuing how things are made.
  • 24. Making Together In fact, it means Making Together. THAT is designing for continuous deployment. If our engineers practice continuous deployment, so must we. We’re building one product.
  • 28. “What is continuous deployment?” That brings us to our next question. You might be asking, “What is continuous deployment?”
  • 29. “deployment” Release Changes “Deployment” is really just releasing changes to your product.
  • 30. “continuous” All of the Time “Continuous” means those changes are being released all of the time.
  • 31. Always Improve Assuming that each change is intended to be an improvement (and why wouldn’t it be?), then that means the product is always improving.
  • 32. Frequent Boring Low-Risk These changes happen often, they’re trivial, and because they’re small, they should be low risk. This is really the philosophy of continuous deployment.
  • 33. Release Early Release Often This is saying frequency another way: a catchy way. This is how you say it if you want to remind someone they haven’t released small enought or frequently enough.
  • 34. Easy to Identify Easy to Fix Again, because the changes are small (and we measure what happens) problems are easier to find and easier to fix.
  • 35. “Why design for continuous deployment?” So, you ask, “why design for continuous deployment?”
  • 36. We’re all in this together. Well, we’re working together building one product, so we should work similarly. Design doesn’t get left behind in a powerful engineering culture. In fact, design can scale and be more fluid when it’s close to engineering.
  • 37. Share Early Share Often This is the collaboration counterpart to releasing early and often. You encounter problems sooner. You learn sooner. You fix sooner. This isn’t about speed, it’s about quality.
  • 38. You sketch it out...
  • 40. code ...and share it! You’ve made your design in the actual application environment. For engineers, no big deal. For designers, this is huge!
  • 41. Empowerment, Responsibility & Trust And when you get to the point of releasing, you’re empowered and trusted to do that. (yep, designers deploy to production too)
  • 42. People like these things. Being trusted feels good. As Kellan our CTO says, “optimize for developer happiness.” When you’re happy, you do better work.
  • 43. Decentralize Work When everyone can access code and everyone can deploy, there’s not single bottleneck or central deployment authority.
  • 44. Engineers Deployers Here we can see the moment in 2010 when the number of people deploying to production surpassed the number of engineers on staff. This is good.
  • 45. Engineers Deployers 70 60 50 40 30 20 10 0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Here we can see the moment in 2010 when the number of people deploying to production surpassed the number of engineers on staff. This is good.
  • 46. Engineers Deployers 70 60 58 55 50 49 47 40 42 35 30 30 26 20 23 20 15 10 0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Here we can see the moment in 2010 when the number of people deploying to production surpassed the number of engineers on staff. This is good.
  • 47. Engineers Deployers 70 62 60 57 58 54 55 50 50 49 47 40 42 35 32 30 30 26 26 22 20 23 20 15 15 10 10 7 8 0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Here we can see the moment in 2010 when the number of people deploying to production surpassed the number of engineers on staff. This is good.
  • 48. Engineers Deployers 70 62 60 57 58 54 55 50 50 49 47 40 42 35 32 30 30 26 26 22 20 23 20 15 15 10 10 7 8 0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Here we can see the moment in 2010 when the number of people deploying to production surpassed the number of engineers on staff. This is good.
  • 49. Share Language Share Knowledge When designers and engineers work in the same environment, they share a language. This makes is easier to share knowledge. It also means you sympathize more with each other’s motivations and challenges.
  • 50. Version Control Design Assets As an added bonus. When you have designers working this way, you get version control of your design assets happening naturally. Nice!
  • 51. “How do you do it?” Enough with the philosophy and motivational messages. “How does this work at Etsy?”
  • 52. Tools & Process I’ll describe the tools and basic process we use on the product design team (and where we intersect with engineering).
  • 53. Dev Environment We all have a dedicated virtual machine that serves as our development environment. They are configured as mirrors of production in almost every way.
  • 54. Local Environment And we all work locally on our Macs. This is like some engineers, but not most of them. Most of them like to work in their development environment directly. Us designers don’t like things like Vim.
  • 55. Quick Start Guides & Packages Along with our engineers, we’ve made quick guides to help designers get started in this environment.
  • 56. Some engineers even made us a handy package to install. Ta- da!
  • 58. The whole company uses IRC to communicate.
  • 59. The product design team also uses Campfire (and the Propane client) to share visual designs in conversation as well. We’ll post links to dev environments, as well as still and motion screen captures.
  • 60. send Local Changes to Dev Environemnt Remember those set up tools? Well there’s a handy script that auto-sends local changes to your development environment.
  • 61. Pattern Library We’ve built a design Pattern Library. It allows us to quickly get designs roughed. Don’t duplicate efforts. Be more consistent throughout the product. It covers mark-up, style, and behavior.
  • 62. This doesn’t solve everything, every time, but a patterns solves many things many times. Makes it easy to get started. Helps share design decisions between designers and with engineers. If we do something more than once, we patternize it.
  • 63. Config Flags We put every feature behind config flags. They’re dead simple. They live in a few simple PHP files. These allow us to safely work in production code and only deliver designs to the right people at the right time.
  • 64. These flags turn things on and off. They determine what environment they’re on/off in. They can determine what specific users. And they integrate with our a/b experiment framework.
  • 65. On/Off These flags turn things on and off. They determine what environment they’re on/off in. They can determine what specific users. And they integrate with our a/b experiment framework.
  • 66. On/Off Dev/Prod These flags turn things on and off. They determine what environment they’re on/off in. They can determine what specific users. And they integrate with our a/b experiment framework.
  • 67. On/Off Dev/Prod Whitelist/Co./All These flags turn things on and off. They determine what environment they’re on/off in. They can determine what specific users. And they integrate with our a/b experiment framework.
  • 68. On/Off Dev/Prod Whitelist/Co./All %A/%B These flags turn things on and off. They determine what environment they’re on/off in. They can determine what specific users. And they integrate with our a/b experiment framework.
  • 69. URL Params We’ve implemented very simple template tags that allow us to specify URL parameters and next design states or variations inside them.
  • 70. {% if $smarty.get.url_param == url_param_value %} a design for review {% /if %}
  • 71. {% if $smarty.get.url_param == version-A %} a design for review {% /if %}
  • 72. {% if $smarty.get.url_param == version-B %} another design for review {% /if %}
  • 73. Commit & Review Before we send our changes back to master, we get code reviews from our peers.
  • 74. We use Crucible or Github or really anything you’d like to use to do a code review. The important thing is that we check our work. Designers can learn a ton from engineers in this step.
  • 75. Test Before we send changes to master, we run functional and unit tests.
  • 77. Push it to Master in Git Wow, tech-y slide. What about merging? We merge when we pull. No branches. We only “branch in code” using the config flags. That saves us from any annoying merging issues and keeps everyone accountable. It’s also just simple and easy to understand.
  • 78. Deploy Queue Who’s turn is it? We find out by joining the Deploy Queue. So how do you manage 100 people pushing and deploying code to production? You make them talk to each other.
  • 79. That’s right, IRC. There’s a special IRC room just for Pushes. There’s a little bot that helps you be polite, but the only policy enforcement is self enforcement. We respect the system and respect our peers.
  • 80. Deployinator When the queueu says it’s okay to deploy, we turn to our tool, Deployinator. It’s a dashboard and simple UI for 1-button deploys.
  • 81.
  • 83. It’s so easy, even our investors deploy! ;-)
  • 84. etsy.github.com Deployinator (and several of our other home-brew tools) are open-sourced and avaliable on github.
  • 85. Measure After we deploy, we measure, measure, measure.
  • 86. We monitor performance immediately and over the long term. We look at business metrics immediately and over the long term. And we watch behavioral metrics and funnels using our analyzer tool.
  • 87. Performance We monitor performance immediately and over the long term. We look at business metrics immediately and over the long term. And we watch behavioral metrics and funnels using our analyzer tool.
  • 88. Performance Business Metrics We monitor performance immediately and over the long term. We look at business metrics immediately and over the long term. And we watch behavioral metrics and funnels using our analyzer tool.
  • 89. Performance Business Metrics A/B Analyzer We monitor performance immediately and over the long term. We look at business metrics immediately and over the long term. And we watch behavioral metrics and funnels using our analyzer tool.
  • 90. Repeat And we do this over and over and over again, deploying up to 50 times day.
  • 91. “Why ‘hell yes’?” Why’s it all so exciting to designers...and engineers?
  • 92. Simplify the Complex Working continuously, and releasing small pieces breaks complex things down into simpler things.
  • 93. Work Closely You end up working closely together, because we use the same tools and languages. This is good.
  • 94. Make Change Easy This makes it easier to make changes happen, and get them out in the world.
  • 95. Make Great Work Develop a way of working that facilitates great work.
  • 96. Make People Happy And when you make great work, the people you make it and the people who use it are better for it.
  • 97. Make People Happy Afterall, it’s people that matter most.
  • 98. That Is a Beautiful Thing
  • 99. That Is an Awesome Thing If you find that as awesome as I do...
  • 100. WE’RE That Is an HIRING Awesome Thing
  • 101. randy@etsy.com @randyjhunt Please come talk to me.
  • 102. Thank you so much.