Testing and DevOps Culture: Lessons Learned
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Testing and DevOps Culture: Lessons Learned

  • 1,873 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,873
On Slideshare
1,823
From Embeds
50
Number of Embeds
2

Actions

Shares
Downloads
31
Comments
0
Likes
3

Embeds 50

https://twitter.com 48
https://si0.twimg.com 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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

Transcript

  • 1. Testing and DevOps Culture
  • 2. LB Denker
  • 3. Cynical Things I’ve Learned“The two virtues of a good developer arelaziness and hubris”“You can’t tell a developer to do anything”
  • 4. Things I’ve LearnedNearly every “Best Practice” was developedto address a particular situation.Identify interdependent relationships andrespect them.The code is not everything.
  • 5. My PastRochester Institute of TechnologyUniversal Instruments CorporationGoogle, Inc.Etsy, Inc.
  • 6. RIT Computing MajorsInformation TechnologyNew MediaComputer ScienceSoftware EngineeringComputer EngineeringComputational Mathematics
  • 7. RITComputational Mathematics, BSComputer Science, MSTeaching Assistant in MathematicsTeaching Assistant in Computer Science
  • 8. Software Engineering I @RIT Team of Four to Five (4-5) Team Coordinator Development Coordinator Requirements Coordinator Test Coordinator* Configuration/QA Coordinator
  • 9. Software Engineering I @RIT Team of Four to Five (4-5) Team Coordinator Product Manager Development Coordinator Technical Lead Requirements Coordinator Project Manager Test Coordinator* Configuration/QA Coordinator Sys Admin
  • 10. Software Engineering I @RIT Team of Four to Five (4-5) Team Coordinator Product Manager Development Coordinator Technical Lead Requirements Coordinator Project Manager Test Coordinator* Release Eng Configuration/QA Coordinator
  • 11. Software Engineering I @RIT Team of Four to Five (4-5) Team Coordinator Product Manager Development Coordinator Technical Lead Requirements Coordinator Project Manager Test Coordinator* Configuration/QA Coordinator QA
  • 12. Software Engineering I @RIT Team of Four to Five (4-5) Team Coordinator Product Manager Development Coordinator Technical Lead Requirements Coordinator Project Manager Test Coordinator* Configuration/QA Coordinator Operations
  • 13. Universal Instruments Corporation I’m a real Software Engineer!
  • 14. Universal Instruments CorporationSurface MountMachinesOptimizerLine Balancer
  • 15. Universal Instruments CorporationSoftware Engineers Machine Level (C and Assembly) Software (MFC C++ or C#) Red, Blue, and Purple
  • 16. Universal Instruments CorporationSoftware EngineersSystem AdministratorsQA AnalystsSCM Team
  • 17. SilosSoftware Engineers ... wrote code ... completed ClearQuest tickets ... waited for QA to test nightly builds ... revisited code when QA opened a ticket ... played Counter-Strike at lunch
  • 18. SilosSystem Administrators ... maintained the nightly build servers ... kicked the nightly build in the morning when it failed during the night ... maintained staff workstations ... provide lots of reasons why not
  • 19. SilosQA Analysts ... waited for nightly builds ... verified completed tickets ... manually tested ... sometimes used WinRunner ... opened tickets for bugs
  • 20. SilosSCM Team ... decided stream layout in ClearCase ... dictated whether: <major>.<minor>.<maintenance>.<patch> ... burned CDs ... pre-loaded machines
  • 21. DevOps
  • 22. Why DevOps?Embrace the interdependence betweenDevelopers and other IT ProfessionalsContinuous Deployment
  • 23. Continuous Deployment Pro Safety Net Implementation Difficulties Ops giving more access to Developers Lack of confidence Limitation Deploy Medium
  • 24. One Button Deploy
  • 25. Mostly AutomatedOne Button Deploy
  • 26. Continuous What?!?Continuous... Unceremoniously... Initiated By... Push toDeployment Anyone Production Apply QualityIntegration Anyone Process Release a New Delivery ??? Feature
  • 27. Continuous Delivery
  • 28. Continuous Deployment+ Continuous Integration Continuous Delivery
  • 29. Continuous Deployment+ Continuous Integration Continuous Delivery lac yFal
  • 30. Continuous Integration
  • 31. TDDTest Driven Development
  • 32. WaterfallThe Assembly Line
  • 33. TDD vs. Waterfall
  • 34. Developer Testing TDD is a Design Process
  • 35. Inside Out vs. Outside In Implement First Test First Easy to Code Easy to Test Difficult to Test Easy to Code
  • 36. “Tests should always be treatedlike every other consumer of the subject under test.”
  • 37. Testing Pyramid
  • 38. Confidencein System Testing Pyramid
  • 39. Detailed,Confidence Durable,in System Coverage, Faster Testing Pyramid
  • 40. PHPUnit Groups@small — default@medium@large
  • 41. Four Tenets of TestingNeed to Know How Much is Being CoveredNeed to Know What is Being TestedNeed to Be Able to Detect Test RunnerErrorsNeed to Have Actionable Test Results(Ownership)
  • 42. More PHPUnit Groups@group cache for tests that depend on a cache, like memcache@group database for tests that depend on a database@group network for tests that depend on a network@group flaky for tests that fail without code changes
  • 43. Pre-Commit ProcessLint CheckCode ReviewsCode SnifferAutomated Tests
  • 44. a·gil·i·ty [uh-jil-i-tee]  noun1. the power of moving quickly and easily;nimbleness: exercises demanding agility.2. the ability to think and draw conclusionsquickly; intellectual acuity.
  • 45. Agile ManifestoIndividuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan
  • 46. Things I’ve LearnedNearly every “Best Practice” was developedto address a particular situation.Identify interdependent relationships andrespect them.The code is not everything.
  • 47. Things I’ve LearnedNearly every “Best Practice” was developedto address a particular situation.Identify interdependent relationships andrespect them.The code is not everything.Nothing is ever complete, finished, done.
  • 48. Non-Technical Suggested ReadingThe Goal: A Process of On-GoingImprovement by Eliyahu M. GoldrattSwitch: How to Change Things WhenChange is Hard by Chip and Dan Heath
  • 49. DisclaimersEverything is based on my experienceThings have likely changed since
  • 50. CreditUIC Genesis 2 Picture: http://www3.uic.com/wcms/images2.nsf/(GraphicLib)/Genesis_GC120Q_new_cvr_lg.jpg/$File/Genesis_GC120Q_new_cvr_lg.jpgDevOps Picture: http://en.wikipedia.org/w/index.php?title=File:Devops.svg&page=1One Button Deploy Picture: http://www.flickr.com/photos/kellan/2422461496/sizes/m/in/photostream/