Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Testing economics101

Being a software professional means understanding how we develop or test impacts the bottom line.
In this talk, directed mostly for developers, I take a look how different testing activities impact the business, and how professional testers apply these principles.

Testing economics101

  1. 1. @gil_zilberfeld Testing Economics 101 Gil Zilberfeld
  2. 2. @gil_zilberfeld What is a professional developer?
  3. 3. @gil_zilberfeld Who Am I? Agile helper Software improver Author of “Everyday Unit Testing” www.gilzilberfeld.com www.everydayunittesting.com @gil_zilberfeld
  4. 4. @gil_zilberfeld A bit of history… • Before there were testers… • There was always risk • There was always uncertainty • It started to cost money
  5. 5. @gil_zilberfeld And then came a tester • The developer • The bug catcher • The gatekeeper
  6. 6. @gil_zilberfeld A Tester • Reports the state of the product • Understands the risks • Defines and maintains the test strategy • Classifies test scenarios • Finds ways to reduce risks • Explores uncertain areas
  7. 7. @gil_zilberfeld We are all testers!
  8. 8. @gil_zilberfeld Macro Economics
  9. 9. @gil_zilberfeld There are Testers in Team • Testers as part of the team vs separate • Longer communication • Longer feedback cycle • Collaboration and increased communication increases quality, reduces risks and increases value • Specialization vs. generalists • Specialization can speed things up, or slow down when missing • Organizations need to re-org to support specialization
  10. 10. @gil_zilberfeld Bugs • Bugs are waste by themselves • Bug prioritization meetings • More prevention, less mitigation • Uncaught bugs can devalue a product • The longer the feedback cycle, it takes longer to repro and fix • Emergency bugs slow down development due to context switch
  11. 11. @gil_zilberfeld Local Optimization • Consider the whole process • Improving at the right place • Invest in the right things
  12. 12. @gil_zilberfeld Testable Architecture and Design • Unless planned and built, architecture is hard to change • Need to be right the first time • Cannot change, therefore slows development • Build for testability
  13. 13. @gil_zilberfeld Maintenance • We write code that will last until the next rewrite • Up to 20 years • Tests are essential • They delay the big rewrite • Tests need maintenance too • We can’t measure future maintenance, but can adapt good practices to lower it
  14. 14. @gil_zilberfeld Automation • Automate checking • Automate for testing • Automation requires upgrading the testers
  15. 15. @gil_zilberfeld Automated testing With Without
  16. 16. @gil_zilberfeld 2nd Cycle With Without
  17. 17. @gil_zilberfeld Testing Strategy • Understanding the risks • Investing where it matters • What to cover and how • Take into account existing and needed skills • Take into account existing and needed tools
  18. 18. @gil_zilberfeld First to Market • Cost of delay • Damn the quality • Still requires some testing • More manual • Less automation
  19. 19. @gil_zilberfeld Micro Economics
  20. 20. @gil_zilberfeld Debugging • The biggest time waster there is • With wonderful tools to help us • But we’re solving the wrong problem
  21. 21. @gil_zilberfeld TDD • Thinking about coding before typing • No YAGNI • Creates testable systems, which cost less to maintain
  22. 22. @gil_zilberfeld System Tests • Better coverage, better confidence • Cannot check edge cases • Investment in setup • Tests through UI are fragile • Less for debugging and fixing problems, where unit tests work better
  23. 23. @gil_zilberfeld Acceptance TDD • Alignment and direction • No YAGNI, just as TDD • The collaboration matters, not the tools
  24. 24. @gil_zilberfeld The ROI of Testing
  25. 25. @gil_zilberfeld The Cost of Testing • Salaries • Infrastructure • Licenses • Training
  26. 26. @gil_zilberfeld What Is The Value of Testing • How do you measure the value of development? • Number of features? • Lines of code? • Per minute? • How do you measure the value of management? • We don’t do that!
  27. 27. @gil_zilberfeld ROI Is Dead! • Complexity killed it • ROI can be calculated only after the release • And even that’s not true because the value of a product can impact the next version or product
  28. 28. @gil_zilberfeld The Real Value of Testing • Early feedback • Uncovering the unknown • Identifying potential risks
  29. 29. @gil_zilberfeld Summary • Professionals understand economics • Decide where to invest, what to drop
  30. 30. @gil_zilberfeld Thank You! • @gil_zilberfeld • http://www.gilzilberfeld.com • http://www.everydayunittesting.com

×