Twice as much in half time - What's about the Quality?


Published on

This Slideshow contains principles and practices to improve quality in software engineering process. First we have to make sure that we implement the right stuff and then we have to make sure that we do it right. Agile Quality Assurance is a practice which in the end leads to performance improvements in the software devleopment process.

Published in: Business, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Twice as much in half time - What's about the Quality?

  1. 1. agility  accelerates  ...  Twice  as  much  in  half  4me  What‘s  about  the  Quality?   Brown  Bag  SMA  und  Partner  AG   6.  Februar  2012  
  2. 2. agility  accelerates  ...  Agile  Coach  &  Consultant   So8ware  Engineer  Cer4fied  Scrum  Professional   Cer4fied  Enterprise  Architect    Management  3.0  Trainer   Java  Enterprise  Edi4on  (JEE)  Member  of  the  Lean,  Agile  &   Performance  Engineer  Scrum  Group,  SwissICT  MISCHA  RAMSEYER  mischa@pragma4c-­‐   pragma4c  solu4ons  gmbh  
  3. 3. What  is  Quality?   ?08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   3  
  4. 4. ISO  9000  Definiton  of  Quality   “Quality is the degree to which a set of inherent characteristics fulfills requirements.“ The standard defines requirement as need or expectation.08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   4  
  5. 5. Philip  B.  Crosby‘s  Defini4on  of  Quality   "Conformance to requirements“ The requirements may not fully represent customer expectations; Crosby treats this as a separate problem.08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   5  
  6. 6. Joseph  Juran‘s  Defini4on  of  Quality   "Fitness for use“ Fitness is defined by the customer08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   6  
  7. 7. Peter  Drucker  defines  Quality  as   "Quality in a product or service is not what the supplier puts in. It is what the customer gets out and is willing to pay for.“08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   7  
  8. 8. American  Society  for  Quality  say‘s  A subjective term for which each personhas his or her own definition. In technicalusage, quality can have two meanings:a. The characteristics of a product orservice that bear on its ability to satisfystated or implied needs;b. A product or service free ofdeficiencies.“08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   8  
  9. 9. W.  Edwards  Deming  says   Concentrating on "the efficient production of the quality that the market expects,“ and he linked quality and management: "Costs go down and productivity goes up as improvement of quality is accomplished by better management of design, engineering, testing and by improvement of processes.“08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   9  
  10. 10. Defini4ons  of  Quality   Build  what  the   customer  is   willing  to  pay   for   Fitness  for  use   No  Bugs   Improve  thru   Fulfill  the   Management,   requirements   Quality   Tes4ng  &   Procesesses  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   10  
  11. 11. What  is  Quality  about?   Do  the  Right  Thing!   Do  the  Thing  Right!   Idea   Idea   Product     Idea   Development   Idea   Effec4veness   Efficiency  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   11  
  12. 12. What  is  more  important?   ?08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   12  
  13. 13. agility  accelerates  ...   DO  THE  RIGHT  THING  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   13  
  14. 14. The  „Cost  of  Complexity“  is  huge!  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   14  
  15. 15. It‘s  all  about  segng  priori4es!  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   15  
  16. 16. Do  the  Right  Thing!  •  Deliver  Business  Value   •  in  the  right  order   •  as  early  as  possible   •  con4nuously  •  Collect  Customer   Feedback  as  early  as   possible  •  Embrace  Change  •  Release  when  it‘s  good   enough  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   16  
  17. 17. Good  enough  is  enough  to  Release!   Business Value Feature 80% Business Value Faster Time to Market and Lower Cost 20% means earlier ROI Time Good Enough Release Release Time 1.0 1.x08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   17  
  18. 18. Built-­‐in  Change  Management   Business New Feature Value identified during development exchange Good Enough Release Release Time 1.0 1.x08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   18  
  19. 19. 3  4mes  as  Effec4ve   Do  the  Right  Thing!   Do  the  Thing  Right!   Idea   Idea   Product     Idea   Development   Idea   Effec4veness   3x Efficiency  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   19  
  20. 20. agility  accelerates  ...   DO  THE  THING  RIGHT  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   20  
  21. 21. definite economic impact of software testing. One economic impact is from thefects. This is a very real and very tangible cost.conomic impact is from the way we perform testing. It is possible to have very Do  the  Thing  Right!  vations and testing goals while testing in a very inefficient way.tion, we will examine the economic impact of defects and ways to economize The Economics of Testing Where  Defects  Originate   What  it  costs  to  fix  them   The Relative Cost of Fixing Where Defects Originate Where Defects Originate Defects 1:10:100   Code Code O ther Design O ther Design 7% 7% 10% 10% 100 27% 27% 100 90 90 80 80 70 70 60 60 50 50 40 40 30 30 20 20 10 10 Reqs Reqs 0 James  Mar4n  Study   56% 0 Reqs Design Code Test Prod 56% Reqs Design Code Test Prod The Relative Cost of Fixing DefectsDefects Originate 08.02.12   About  Quality,  One of the most well known facts about software defects is that the longer 21   go pragma4c  solu4ons  gmbh   they undetected, the more expensive they are to fix. Although research differs on the exacttand the dynamics and costs of defects, we need to know some things about rule is 1:10:100. ratios, the general of the most commonly understood facts about defects is that most defects
  22. 22. How  would  you  handle  the  problem?   ?08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   22  
  23. 23. From  Specifica4on  to  Discussion  As an User Story Template  employee  I want  to  log  my  working  /me  so that  I  always  keep  track  of  my  daily  working  /me  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   23  
  24. 24. Speak  the  same  language   •  An  „Ubiquitous   Language“  is  needed  to   bridge  the   communica4on  gap   •  Use  Domain  Modeling   to  describe  the  Business   Domain  Timetracking  Domain  Model  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   24  
  25. 25. Introducing  Acceptance  Criterias  Priority   As  a  [role]   I  can  [goal]   so  that  [reason]   EsImaIon  10   Employee   log  my  working  4me   I  always  keep  track  of   2   my  daily  working  4me  Narrow  down  the  scope  of  the  Story  using  Acceptance  Criterias  •  At  least  a  „How-­‐to-­‐demo-­‐Workflow“  •  Add  them  to  the  Product  Backlog  Example  1.  Fill  in  star4ng-­‐,  lunch  &  end  4me  in  natural  hours  &  minutes  2.  Decimal  working  hours  will  be  displayed  &  saved  3.  Displayed  working  hours  must  be  present  in  the  DB  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   25  
  26. 26. Introducing  Specifica4on  by  Example  Priority   As  a  [role]   I  can  [goal]   so  that  [reason]   EsImaIon  10   Employee   log  my  working  4me   I  always  keep  track  of   2   my  daily  working  4me  Business  Rules   Morn   Lunch   Lunch   Eve   Time  •  Given  work  4me  is  >  9h   In   out   In   Out   Then  break  =  1  hour   9:00   12:00   13:00   17:05   7.08   8:00   12:00   13:00   17:00   8.00  •  Given  work  4me  is  >  7h   Then  break  =  30  min   8:00   -­‐   -­‐   17:01   8.02   7:30   12:00   13:00   17:00   8.50  •  Given  work  4me  is  >  5.5h   ...   ...   ...   ...   ...   Then  break  =  15  min  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   26  
  27. 27. Build  Executable  Documenta4on   Scenario:  Log  4me   In terms of the Given  my  4me  of  <arrival>   ubiquituous language And  the  4me  I  go  for  <lunch-­‐out>   And  the  4me  I  return  from  <lunch-­‐in>     And  the  4me  I  leave  in  the  <evening>   When I  entered  my  4me   Then the  <total>  decimal  4me  is  calculated   Examples: | arrival | lunch-out | lunch-in | evening | total! | 09:00 | 12:00 | 13:00 | 17:05 | 7.08! | 08:00 | 12:00 | 13:00 | 18:00 | 9.00! | 08:00 | - | - | 17:01 | 8.02! | 07:30 | 12:00 | 13:00 | 17:00 | 8.50! ! !  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   27  
  28. 28. Specifiying  Behaviour  Given  Put  the  system  in  a  known  state  When Describe  the  key  user  ac4on  Then Observes  the  output  And / But Shortcut  for  mul4ple  Given,  When,  Then‘s  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   28  
  29. 29. Soda  Machine  Behaviour  Feature:  Thirst  Quentsching  As  a  thirsty  guy  I  want  to  pull  a  sop  drink  from  the  machine  to  quench  my  thirst    Scenario:  Successful  Buy  Given  a  filled  compartment  When  I  select  the  desired  drink  And  I  provide  the  right  amount  of  money  Then  the  drink  falls  down  in  the  tray    Scenario:  Empty  Compartment  Given  an  empty  compartment  When  I  select  the  drink  Then  the  message  „Empty!“  is  displayed    Scenario:  Few  Money  Given  a  selected  drink  And  I  provided  too  few  money  And  the  outstanding  amount  is  displayed  When  I  press  cancel  Then  the  already  inserted  money  will  be  released  into  the  coin  compartement  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   29  
  30. 30. Automate  the  Behaviour  Scenario:  Successful  Buy  Given  a  filled  compartment   @Given(“^a  filled  compartment$“)   public  void  given()  {    machine  =  new  Machine().withCompartment(1,  “Can“)    .withDrink(“Coke“).withPrice(2);   }   @When(“^I  select  the  desired  drink$“)  When  I  select  the  desired  drink   public  void  when()  {  And  I  provide  the  right  amount  of  money    m.selectCompartment(1);   }   @And(“^I  provide  the  right  amount  of  money$“)   public  void  when()  {    m.putMoney(2);   }   @Then(“^the  drink  falls  down  in  the  tray$“)  Then  the  drink  falls  down  in  the  tray   public  void  then()  {    assertFalse(m.getOuputTray().isEmpty());    assertEquals(“Coke“,  m.getOutputTray()    .getDrink().getName();   }  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   30  
  31. 31. Inner-­‐  &  Outer  Quality   Inner Quality is inside the system08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   31  
  32. 32. TDD  improves  inner  quality   Write a failing test Make it compile Make it work in production code RED GREEN REFACTOR No production Make it nice code without a eliminate duplication test increase expressiveness08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   32  
  33. 33. TDD  is  not  an  op4on   Built  in   Bever  Design   Regression   RED GREEN REFACTOR Faster   Fewer  Bugs   Development  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   33  
  34. 34. What  is  Pair  Programming?   Navigator Driver08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   34  
  35. 35. Pair  Programming     Faster,  but   Bever  Code   more  Effort   &  Design   Knowledge   Half  of  Bugs   spread  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   35  
  36. 36. Double  pack!   RED GREEN REFACTOR08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   36  
  37. 37. Address  Outer  and  Inner  Quality  in  your  Development  Process   Failing Acceptance Code Test Implement Test Acceptance Refactor Identify test(s) Acceptance Criterias Select a User Code Story Behaviour Test Driven Driven Development Development Test Refactor Customer Acceptance Code Refactor Acceptance Passing Test Test Refactor Acceptance Test08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   37  
  38. 38. Check  against  Requirements  FuncIonal   NON-­‐FuncIonal  Check  if  the  System  works  as   Check  if  the  System  operates  required   as  intended  •  Unit  Test   •  Technical  Tes4ng  •  Integra4on  Test   •  Build   •  Deployment  •  Regression  Test   •  Load,  Stress  &  Performance  •  User  Acceptance  Test   •  Security  &  Penetra4on   •  Usability  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   38  
  39. 39. Checking  vs.  Tes4ng  Checking   TesIng    •  Automated   •  Manual  •  Expected  Result   •  Exploratory  •  Developer-­‐Mindset   •  User-­‐Mindset  •  Developer  Know-­‐how   •  Business  Know-­‐how  •  Basis  for  Tes4ng   •  On  Top  of  Checks  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   39  
  40. 40. Test  Automa4on  is  not  an  op4on!   UI   Services   Unit  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   40  
  41. 41. Checks  &  Tests  Unit  Tests   Integra4on  Test  Single  Unit  Mock  Objects   Regression  Test   Check  Test  Coded   Environment   System  Tests   Replay  Unit-­‐  /  TDD   Mul4ple  Units   Integra4on-­‐Tests   NON-­‐func4onal  Refactoring   Prepared  „Real“   Manual   Don‘t  break   Data   something  else   Exploratory   Usability   Coded  &   User  Mindset     Configured   Performance   Acceptance   Security   Expected  Output   08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   41  
  42. 42. Checking  Strategy   Source  Control  Management  (SCM)   Mul4ple  Check-­‐in‘s  a  day   Single  Branch   Automa4c  Build  &  Deployment   Product  Build   Plazorm  Build   Deployment   Migra4on   Con4nuous  Build  &  Deployment   Nightly  Build   Con4nuous  Build   Addi4onal  Automated  Checks   Unit  Tests   Integra4on  Test   Regression  Test  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   42  
  43. 43. Banching  Paverns  Release  Branch   tag   Release   1.0.0   tag   Release   1.0.0   /rel1.0   branch   merge   merge   /trunk   2.0  Dev   /trunk   1.0  Dev   2.0  Dev   branch   merge   reintegrate   tag   /feat1-­‐1   Release   1.0.0  Feature  Branch  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   43  
  44. 44. Environments   Development  DEV   BUILD   INT  • Development   • SCM  Server   • Con4nuous  Deployment   Worksta4on   • Build  Server   • Integra4on  &  Migra4on   • CI-­‐Server  PROD   PERF   QA   Opera4ons  • Produc4on  Environment   • Load  &  Performance   • Controlled  Distribu4on   • Security  &  Penetra4on   • Produc4on-­‐like  Setup   • Review  &  Acceptance  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   44  
  45. 45. Con4nuous  Integra4on  is  NOT  an  op4on   Deploy   Test   Publish  reports   Build  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   45  
  46. 46. Con4nuous  Integra4on   Feedback   Check  for   Check-­‐In   Change   Developer   CI-­‐System   SCM   Worksta4on   Ceck-­‐Out   Feedback   Manual   Deploy   Test-­‐ Tes4ng   Customer   Build  Server   Environment   Worksta4on   Build   Automated   Tes4ng   Feedback  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   46  
  47. 47. 3  4mes  as  Efficient   Do  the  Right  Thing!   Do  the  Thing  Right!   Idea   Idea   Product     Idea   Development   Idea   Effec4veness   3x Efficiency  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   47  
  48. 48. agility  accelerates  ...   CONCLUSION  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   48  
  49. 49. Twice  as  much  in  half-­‐4me  –  even  more  –  is  possible!   Do  the  Right  Thing!   Do  the  Thing  Right!   Idea   Idea   Product     Idea   Development   Idea   3 x 3 = 9 Effec4veness   Efficiency  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   49  
  50. 50. Quality  Improvement  thru  Agile  Prac4ces  will  boost  your  performance!   Line   Management  3.0   Management   Project   Scrum   Management   eXtreme   Programming   Engineering   Prac4ces  08.02.12   About  Quality,  pragma4c  solu4ons  gmbh   50