PHP UK Conference 2012: Scaling Communication via Continuous Integration

10,755 views
10,438 views

Published on

At Etsy, we continuously deploy code. New features and bug fixes can go from development to production in 20 minutes. We have maintained this low barrier to deployment over the past year despite nearly doubling the number of people that can deploy.

Communication has a huge impact on the velocity of development and moving forward. We explicitly communicate over IRC, but we also evolve communication patterns through several other vectors, and one of those vectors is out Continuous Integration environment.

In this talk I will not only discuss how communication patterns at Etsy have evolved with our growing development team, but I will also elaborate on how team size, role composition, motivation, culture, and available tools sets can impact communication patterns and subsequently throughput.

Published in: Technology
0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,755
On SlideShare
0
From Embeds
0
Number of Embeds
1,896
Actions
Shares
0
Downloads
0
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • PHP UK Conference 2012: Scaling Communication via Continuous Integration

    1. Scaling Communication via Continuous IntegrationTh e Fi n di ngs Th us Fa r!
    2. LB DenkerAnthropologist ofDeveloper Culture @ Etsy
    3. Anthropologist?!? ... only sort of ...
    4. Methods of an AnthropologistParticipantObservationInterviewsSurveys
    5. Developer Culture“The most importantcomponent of The Etsy Wayis culture and that is asdifficult to teach as it isimportant” — Chad Dickerson, CEO
    6. Acquiring Culture“... humans acquire culture through thelearning processes of enculturation andsocialization ...”
    7. Developer Culture“Always Be Pushing”Developer HappinessWe trust people
    8. “Anthropology demands the open-mindednesswith which one must look and listen, record inastonishment and that which one would nothave been able to guess.” — Margaret Mead
    9. Deployinating All the PushesOne Button (stage)LoggingMonitoringNo Child Safety Locks
    10. Anyone Can Deploy! Board Members Included
    11. 20 Minutes or LessThe Power of Continuous Deployment
    12. Continuous What?!?Continuous... Unceremoniously... Initiated By... Apply QualityIntegration Anyone Process Push New CodeDeployment Anyone To Production Release New Delivery Product Feature
    13. Communication Theory1. The Basic Elements of Communication Source Destination Sender Message Channel Feedback Receiver2. Goal-Oriented Communication
    14. Goals“Always Be Pushing”You Shouldn’t Push on RedYou Should Write Clean TestsYou Should Write Clean CodeTrust Everyone To Do The Right Thing
    15. “Always Be Pushing” Instilling ConfidenceTh e Fi rs t In te r v ie ws
    16. ConfidenceContinuous Deployment is... Scary A Safety NetDepends on Your Point of View
    17. Branching was Too Costly
    18. Always Ship TrunkWrite Tools to Workwith TrunkDo not Write Tools toWork with BranchesWrite TransparentTools
    19. Quality Process wasCoupled to Pipeline
    20. ‘Try’ Before You CommitAbility to Run Tests inCI EnvironmentActually ContinuousIntegration!Community Enforced!No Excuses!
    21. Confidence Boost!The Impact of Knowing that Changes Pass the Tests Before Getting in the Pipeline
    22. Why ‘Try’?No more clogging thepipelineCI in Pipeline wasFinal Sanity Check
    23. Goal Achieved“Always Be Pushing”
    24. You Should Not Push on Red De-Noising the Communication ChannelPa rt ic ip a n t Ob se r v ati on s over IRC
    25. Where We Started From... Number of Total Time Flakiness Support Tests ~30 Practically Legacy Unknown ~50% Minutes None ~8Platform ~1200 ~20% Small Core Minutes
    26. A Bunch of NoiseNeed to Know How Much is Being CoveredNeed to Know What is Being TestedNeed to Be Able to Detect Test Runner ErrorsNeed to Have Actionable Test Results(Ownership)
    27. De-Noise Number of Total Time Flakiness Support Tests ~30 Practically Legacy Unknown ~50% Minutes None >8Platform >1200 ~5% Small Core Minutes
    28. GoalAchievedYou Should Not Push on Red
    29. You Should Write Clean Tests Writing Simple Tests Isn’t Always So SimpleAlter n ati ve Te ach ing Met h od s
    30. How To Improve Test QualityTeach Them!But People Need toWant to Learn
    31. Prove It! Number of Average Test Time Tests Time per TestPlatform Tests 7:01 2332 0.18 seconds 0.00337 Unit Tests 0:10 2432 seconds DBUnit Tests 0:32 70 0.09 secondsDecember 2010
    32. Test ClassificationPHPUnit @groupPHPUnit XML Configuration + Some PakeSplit By Point of Error ie. cache, database, network, sleep, time, etc.Flaky Test Silo
    33. GoalAchieved You ShouldWrite Clean Tests
    34. Too Much To Read ... and to Communicate
    35. How Do Communicate This?E-Mail? Nope!Wiki? Nope!Blog? Nope!Simplify Jenkins UI?YES!
    36. Silent GreenTaking a Chapter Out of xUnit Principles
    37. Jenkins PluginsMaster Project PluginTriggering User PluginDeployinator Plugin
    38. You Should Write Clean Code Not Everyone Can Read (and Follow) a Coding StandardEn a bl ing C ul tu re In fl ue n ce
    39. Clean CodeStart with SyntaxMove to StyleThen to Design Level
    40. PHP LintRun LocallyRun on Pre-CommitRun on CI
    41. Using CodeSnifferDraft Coding Style GuidelinesExperiment With Various SniffsDiscover Actual Coding Syntax TendenciesDecide on Changes to Coding Style GuidelinesCreate a Strategy on How to Get to Green
    42. Work inProgress You ShouldWrite Clean Code
    43. Getting to GreenSend ‘Blame’ E-MailsUse a Staging Job in TryDo a Fix-It Competition
    44. Trust EveryoneTo Do The Right Thing Balancing Enforcement with FreedomFu tu re Wor k
    45. Continuously Growing a Continuously Evolving Culture
    46. More To DoCode Reviews, Second Pair of EyesEntire Coding Standard in CIMess Detector StandardsPHPUnit --strict StandardsPHPUnit Testing Standards...
    47. Developer Culture“Always Be Pushing”Developer HappinessWe trust people
    48. Company etsy.comAbout Our Craft codeascraft.comMore From Me elblinkin.info

    ×