SlideShare une entreprise Scribd logo
1  sur  50
Testing and DevOps
      Culture
LB Denker
Cynical Things I’ve
       Learned


“The two virtues of a good developer are
laziness and hubris”

“You can’t tell a developer to do anything”
Things I’ve Learned

Nearly every “Best Practice” was developed
to address a particular situation.

Identify interdependent relationships and
respect them.

The code is not everything.
My Past


Rochester Institute of Technology

Universal Instruments Corporation

Google, Inc.

Etsy, Inc.
RIT Computing Majors
Information Technology

New Media

Computer Science

Software Engineering

Computer Engineering

Computational Mathematics
RIT

Computational Mathematics, BS

Computer Science, MS



Teaching Assistant in Mathematics

Teaching Assistant in Computer Science
Software Engineering I
        @RIT
 Team of Four to Five (4-5)

   Team Coordinator

   Development Coordinator

   Requirements Coordinator

   Test Coordinator*

   Configuration/QA Coordinator
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
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
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
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
Universal Instruments
     Corporation
   I’m a real Software Engineer!
Universal Instruments
     Corporation

Surface Mount
Machines

Optimizer

Line Balancer
Universal Instruments
     Corporation

Software Engineers

  Machine Level (C and Assembly)

  Software (MFC C++ or C#)

    Red, Blue, and Purple
Universal Instruments
     Corporation

Software Engineers

System Administrators

QA Analysts

SCM Team
Silos
Software 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
Silos

System 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
Silos
QA Analysts

  ... waited for nightly builds

  ... verified completed tickets

  ... manually tested

  ... sometimes used WinRunner

  ... opened tickets for bugs
Silos

SCM Team

  ... decided stream layout in ClearCase

  ... dictated whether:
  <major>.<minor>.<maintenance>.<patch>

  ... burned CDs

  ... pre-loaded machines
DevOps
Why DevOps?


Embrace the interdependence between
Developers and other IT Professionals

Continuous Deployment
Continuous Deployment

 Pro
   Safety Net
 Implementation Difficulties
   Ops giving more access to Developers
   Lack of confidence
 Limitation
   Deploy Medium
One Button Deploy
Mostly Automated
One Button Deploy
Continuous What?!?

Continuous...   Unceremoniously...   Initiated By...


                    Push to
Deployment                              Anyone
                   Production

                  Apply Quality
Integration                             Anyone
                    Process

                 Release a New
  Delivery                                ???
                    Feature
Continuous Delivery
Continuous Deployment
+ Continuous Integration
    Continuous Delivery
Continuous Deployment
+ Continuous Integration
    Continuous Delivery
   lac y
Fal
Continuous Integration
TDD
Test Driven Development
Waterfall
The Assembly Line
TDD vs. Waterfall
Developer Testing
  TDD is a Design Process
Inside Out vs. Outside In


  Implement First    Test First

  Easy to Code       Easy to Test

  Difficult to Test   Easy to Code
“Tests should always be treated
like every other consumer of the
       subject under test.”
Testing Pyramid
Confidence
in System




            Testing Pyramid
Detailed,
Confidence                      Durable,
in System                     Coverage,
                                Faster




            Testing Pyramid
PHPUnit Groups


@small — default

@medium

@large
Four Tenets of Testing

Need to Know How Much is Being Covered

Need to Know What is Being Tested

Need to Be Able to Detect Test Runner
Errors

Need to Have Actionable Test Results
(Ownership)
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
Pre-Commit Process


Lint Check

Code Reviews

Code Sniffer

Automated Tests
a·gil·i·ty [uh-jil-i-tee]
            



noun
1. the power of moving quickly and easily;
nimbleness: exercises demanding agility.
2. the ability to think and draw conclusions
quickly; intellectual acuity.
Agile Manifesto
Individuals and interactions
     over processes and tools
Working software
    over comprehensive documentation
Customer collaboration
    over contract negotiation
Responding to change
    over following a plan
Things I’ve Learned

Nearly every “Best Practice” was developed
to address a particular situation.

Identify interdependent relationships and
respect them.

The code is not everything.
Things I’ve Learned

Nearly every “Best Practice” was developed
to address a particular situation.

Identify interdependent relationships and
respect them.

The code is not everything.

Nothing is ever complete, finished, done.
Non-Technical
 Suggested Reading

The Goal: A Process of On-Going
Improvement by Eliyahu M. Goldratt

Switch: How to Change Things When
Change is Hard by Chip and Dan Heath
Disclaimers



Everything is based on my experience

Things have likely changed since
Credit


UIC Genesis 2 Picture:                      http://www3.uic.com/wcms/images2.nsf/
(GraphicLib)/Genesis_GC120Q_new_cvr_lg.jpg/$File/Genesis_GC120Q_new_cvr_lg.jpg


DevOps Picture:                http://en.wikipedia.org/w/index.php?
title=File:Devops.svg&page=1


One Button Deploy Picture:                           http://www.flickr.com/photos/
kellan/2422461496/sizes/m/in/photostream/

Contenu connexe

Tendances

How testers add value to the organization appium conf
How testers add value to the organization  appium confHow testers add value to the organization  appium conf
How testers add value to the organization appium conf
Corina Pip
 
Agile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroidsAgile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroids
Vipul Gupta
 

Tendances (20)

DevOps – The Evolution of Agile
DevOps – The Evolution of AgileDevOps – The Evolution of Agile
DevOps – The Evolution of Agile
 
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
 
Agile, DevOps & Test
Agile, DevOps & TestAgile, DevOps & Test
Agile, DevOps & Test
 
How testers add value to the organization appium conf
How testers add value to the organization  appium confHow testers add value to the organization  appium conf
How testers add value to the organization appium conf
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the Enterprise
 
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
 
The Three Pillars Approach to an Agile Testing Strategy
The Three Pillars Approach to an Agile Testing StrategyThe Three Pillars Approach to an Agile Testing Strategy
The Three Pillars Approach to an Agile Testing Strategy
 
Webinar: DevOps challenges facing QA
Webinar: DevOps challenges facing QAWebinar: DevOps challenges facing QA
Webinar: DevOps challenges facing QA
 
DevOps the Big Picture for Testers by Joseph Ours
DevOps the Big Picture for Testers by Joseph OursDevOps the Big Picture for Testers by Joseph Ours
DevOps the Big Picture for Testers by Joseph Ours
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
 
Is Test Planning a lost art in Agile? by Michelle Williams
Is Test Planning a lost art in Agile? by Michelle WilliamsIs Test Planning a lost art in Agile? by Michelle Williams
Is Test Planning a lost art in Agile? by Michelle Williams
 
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael BueningAgile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
 
DevOps Tactical Adoption Theory: Continuous Testing
DevOps Tactical Adoption Theory: Continuous TestingDevOps Tactical Adoption Theory: Continuous Testing
DevOps Tactical Adoption Theory: Continuous Testing
 
Bn1006 demo ppt devops
Bn1006 demo ppt devopsBn1006 demo ppt devops
Bn1006 demo ppt devops
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Shifting Left Webinar Slideshow
Shifting Left Webinar SlideshowShifting Left Webinar Slideshow
Shifting Left Webinar Slideshow
 
Introduction to Agile Hardware
Introduction to Agile Hardware Introduction to Agile Hardware
Introduction to Agile Hardware
 
Continuous testing the new must have skill of tomorrow's tech leaders
Continuous testing  the new must have skill of tomorrow's tech leadersContinuous testing  the new must have skill of tomorrow's tech leaders
Continuous testing the new must have skill of tomorrow's tech leaders
 
Agile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroidsAgile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroids
 

En vedette

Crash course - managing software people and teams (engineering leadership sig...
Crash course - managing software people and teams (engineering leadership sig...Crash course - managing software people and teams (engineering leadership sig...
Crash course - managing software people and teams (engineering leadership sig...
Ron Lichty
 

En vedette (20)

DevOps Continuous Testing and LaaS – The Perfect Match for SDN
DevOps Continuous Testing and LaaS – The Perfect Match for SDNDevOps Continuous Testing and LaaS – The Perfect Match for SDN
DevOps Continuous Testing and LaaS – The Perfect Match for SDN
 
Cigniti Independent Software Testing Services
Cigniti Independent Software Testing ServicesCigniti Independent Software Testing Services
Cigniti Independent Software Testing Services
 
Testing in a DevOps team
Testing in a DevOps teamTesting in a DevOps team
Testing in a DevOps team
 
DevOps: A Culture Transformation, More than Technology
DevOps: A Culture Transformation, More than TechnologyDevOps: A Culture Transformation, More than Technology
DevOps: A Culture Transformation, More than Technology
 
Are Your Tests Really Helping You?
Are Your Tests Really Helping You?Are Your Tests Really Helping You?
Are Your Tests Really Helping You?
 
Automated Testing: DevOps Enabler by Alan Koch
Automated Testing: DevOps Enabler by Alan KochAutomated Testing: DevOps Enabler by Alan Koch
Automated Testing: DevOps Enabler by Alan Koch
 
Stc 2016 regional-round-ppt-automation testing with devops in agile methodolgy
Stc 2016 regional-round-ppt-automation testing with devops in agile methodolgyStc 2016 regional-round-ppt-automation testing with devops in agile methodolgy
Stc 2016 regional-round-ppt-automation testing with devops in agile methodolgy
 
Getting started with Chef
Getting started with ChefGetting started with Chef
Getting started with Chef
 
How is testing different in a DevOps agile team. A perspective from the team.
How is testing different in a DevOps agile team. A perspective from the team.How is testing different in a DevOps agile team. A perspective from the team.
How is testing different in a DevOps agile team. A perspective from the team.
 
NFV Testing & DevOps | QualiTest
NFV Testing & DevOps | QualiTestNFV Testing & DevOps | QualiTest
NFV Testing & DevOps | QualiTest
 
WiKi Based Automation Testing: Fitness & DevOps
WiKi Based Automation Testing: Fitness & DevOpsWiKi Based Automation Testing: Fitness & DevOps
WiKi Based Automation Testing: Fitness & DevOps
 
SMAC: The Key to Getting Traction with DevOps
SMAC: The Key to Getting Traction with DevOpsSMAC: The Key to Getting Traction with DevOps
SMAC: The Key to Getting Traction with DevOps
 
DevOps: Why Culture Matters
DevOps:  Why Culture MattersDevOps:  Why Culture Matters
DevOps: Why Culture Matters
 
Adopting Devops , Stories from the trenches
Adopting Devops , Stories from the trenchesAdopting Devops , Stories from the trenches
Adopting Devops , Stories from the trenches
 
Crash course - managing software people and teams (engineering leadership sig...
Crash course - managing software people and teams (engineering leadership sig...Crash course - managing software people and teams (engineering leadership sig...
Crash course - managing software people and teams (engineering leadership sig...
 
What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010
What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010
What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010
 
Transformation vs adoption agile india 2014 :How to use the Culture Model
Transformation vs adoption agile india 2014 :How to use the Culture ModelTransformation vs adoption agile india 2014 :How to use the Culture Model
Transformation vs adoption agile india 2014 :How to use the Culture Model
 
More than Technology - The Culture of DevOps
More than Technology - The Culture of DevOpsMore than Technology - The Culture of DevOps
More than Technology - The Culture of DevOps
 
5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps Culture5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps Culture
 
How to move forward to a DevOps Culture?
How to move forward to a DevOps Culture?How to move forward to a DevOps Culture?
How to move forward to a DevOps Culture?
 

Similaire à Testing and DevOps Culture: Lessons Learned

Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...
Tomas Riha
 
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
DevOpsDays Tel Aviv
 

Similaire à Testing and DevOps Culture: Lessons Learned (20)

Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
De weg naar Continuous Delivery
De weg naar Continuous DeliveryDe weg naar Continuous Delivery
De weg naar Continuous Delivery
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
DevTestOps
DevTestOpsDevTestOps
DevTestOps
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
The Journey to Continuous Delivery
The Journey to Continuous DeliveryThe Journey to Continuous Delivery
The Journey to Continuous Delivery
 
Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...
 
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
 
Enterprise PHP
Enterprise PHPEnterprise PHP
Enterprise PHP
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
 
Software architecture in a DevOps world
Software architecture in a DevOps worldSoftware architecture in a DevOps world
Software architecture in a DevOps world
 
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
What DevOps Isn't
What DevOps Isn'tWhat DevOps Isn't
What DevOps Isn't
 
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
 
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
 
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...
 

Plus de LB Denker

Php com con-2011
Php com con-2011Php com con-2011
Php com con-2011
LB Denker
 

Plus de LB Denker (7)

Php|tek '12 It's More Than Just Style
Php|tek '12  It's More Than Just StylePhp|tek '12  It's More Than Just Style
Php|tek '12 It's More Than Just Style
 
Developer testing 201: When to Mock and When to Integrate
Developer testing 201: When to Mock and When to IntegrateDeveloper testing 201: When to Mock and When to Integrate
Developer testing 201: When to Mock and When to Integrate
 
Developer testing 101: Become a Testing Fanatic
Developer testing 101: Become a Testing FanaticDeveloper testing 101: Become a Testing Fanatic
Developer testing 101: Become a Testing Fanatic
 
phpDay 2012: Scaling Communication via Continuous Integration
phpDay 2012: Scaling Communication via Continuous IntegrationphpDay 2012: Scaling Communication via Continuous Integration
phpDay 2012: Scaling Communication via Continuous Integration
 
QC Merge 2012: Growing community
QC Merge 2012: Growing communityQC Merge 2012: Growing community
QC Merge 2012: Growing community
 
PHP UK Conference 2012: Scaling Communication via Continuous Integration
PHP UK Conference 2012: Scaling Communication via Continuous IntegrationPHP UK Conference 2012: Scaling Communication via Continuous Integration
PHP UK Conference 2012: Scaling Communication via Continuous Integration
 
Php com con-2011
Php com con-2011Php com con-2011
Php com con-2011
 

Testing and DevOps Culture: Lessons Learned

  • 3. Cynical Things I’ve Learned “The two virtues of a good developer are laziness and hubris” “You can’t tell a developer to do anything”
  • 4. Things I’ve Learned Nearly every “Best Practice” was developed to address a particular situation. Identify interdependent relationships and respect them. The code is not everything.
  • 5. My Past Rochester Institute of Technology Universal Instruments Corporation Google, Inc. Etsy, Inc.
  • 6. RIT Computing Majors Information Technology New Media Computer Science Software Engineering Computer Engineering Computational Mathematics
  • 7. RIT Computational Mathematics, BS Computer Science, MS Teaching Assistant in Mathematics Teaching 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 Corporation Surface Mount Machines Optimizer Line Balancer
  • 15. Universal Instruments Corporation Software Engineers Machine Level (C and Assembly) Software (MFC C++ or C#) Red, Blue, and Purple
  • 16. Universal Instruments Corporation Software Engineers System Administrators QA Analysts SCM Team
  • 17. Silos Software 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. Silos System 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. Silos QA Analysts ... waited for nightly builds ... verified completed tickets ... manually tested ... sometimes used WinRunner ... opened tickets for bugs
  • 20. Silos SCM Team ... decided stream layout in ClearCase ... dictated whether: <major>.<minor>.<maintenance>.<patch> ... burned CDs ... pre-loaded machines
  • 22. Why DevOps? Embrace the interdependence between Developers and other IT Professionals Continuous Deployment
  • 23. Continuous Deployment Pro Safety Net Implementation Difficulties Ops giving more access to Developers Lack of confidence Limitation Deploy Medium
  • 26. Continuous What?!? Continuous... Unceremoniously... Initiated By... Push to Deployment Anyone Production Apply Quality Integration Anyone Process Release a New Delivery ??? Feature
  • 28. Continuous Deployment + Continuous Integration Continuous Delivery
  • 29. Continuous Deployment + Continuous Integration Continuous Delivery lac y Fal
  • 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 treated like every other consumer of the subject under test.”
  • 38. Confidence in System Testing Pyramid
  • 39. Detailed, Confidence Durable, in System Coverage, Faster Testing Pyramid
  • 40. PHPUnit Groups @small — default @medium @large
  • 41. Four Tenets of Testing Need to Know How Much is Being Covered Need to Know What is Being Tested Need to Be Able to Detect Test Runner Errors Need 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 Process Lint Check Code Reviews Code Sniffer Automated Tests
  • 44. a·gil·i·ty [uh-jil-i-tee]   noun 1. the power of moving quickly and easily; nimbleness: exercises demanding agility. 2. the ability to think and draw conclusions quickly; intellectual acuity.
  • 45. Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 46. Things I’ve Learned Nearly every “Best Practice” was developed to address a particular situation. Identify interdependent relationships and respect them. The code is not everything.
  • 47. Things I’ve Learned Nearly every “Best Practice” was developed to address a particular situation. Identify interdependent relationships and respect them. The code is not everything. Nothing is ever complete, finished, done.
  • 48. Non-Technical Suggested Reading The Goal: A Process of On-Going Improvement by Eliyahu M. Goldratt Switch: How to Change Things When Change is Hard by Chip and Dan Heath
  • 49. Disclaimers Everything is based on my experience Things have likely changed since
  • 50. Credit UIC Genesis 2 Picture: http://www3.uic.com/wcms/images2.nsf/ (GraphicLib)/Genesis_GC120Q_new_cvr_lg.jpg/$File/Genesis_GC120Q_new_cvr_lg.jpg DevOps Picture: http://en.wikipedia.org/w/index.php? title=File:Devops.svg&page=1 One Button Deploy Picture: http://www.flickr.com/photos/ kellan/2422461496/sizes/m/in/photostream/

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n