Monday, May 11, 2015

Impact Analysis - LoopConf

Impact Analysis - LoopConf

Impact analysis is a lot easier when you automate it with tools like Codeception. This is my presentation at LoopConf 2015.
Published in: SoftwareBusinessEngineering


 Transcript

  • 1. IMPACT ANALYSIS CHRISLEMA | CROWDFAVORITE
  • 2. This  is  a  story  that  bears  strong  resemblance  to  a  real   project.  I  can’t  tell  you  the  details  but  I  can  tell  you   enough  of  it  to  make  it  useful  as  a  story.  I’ll  protect  the   innocent.  Oh  wait,  there  were  no  innocents.   CAN I TELL YOU A STORY?
  • 3. PERFECT CLIENT BUILD  THE   SOLUTION DESIGN  THE   SOLUTION RECIEVE  THE   REQUIREMENTS GO  THROUGH  THE   SECOND  ROUND   OF  SAME  PHASE NO   YES   TEST  &  SHOW   THE  CLIENT release start  of  iteraPon THEWAYIT’SSUPPOSEDTOWORK
  • 4. LARGE CLIENT BUILD  THE   SOLUTION DESIGN  THE   SOLUTION RECIEVE  THE   REQUIREMENTS YES.  WE  KNOW   WHO  YOU  ARE. OK.  WE’RE  ON  IT. NO   WAIT!  LET’S   ADD  NEW   SCOPE TEST  &  SHOW   THE  CLIENT WHATHAPPENSWHEN...
  • 5. THE DANGER ZONE The  porPon  of  a  project  where  all  your  profit  disappears   and  you’re  wondering  how  you  got  here  in  the  first  place. HOPE ACTUAL SOW   DEVELOPMENT  &  QA DISCOVERY LAUNCH Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep 2014 2015 THE PROJECT TIMELINE TELLS THE STORY SOW DEVELOPMENT DISCOVERY SOW  &  CONTRACTS   DEVELOPMENT DISCOVERY LAUNCH PARTNER  API  IS  A  WORK  IN  PROGRESS DANGER ZONE
  • 6. CLIENTS ARE IDEA FACTORIES You  can’t  blame  a  client  for  having  a  lot  of   new  ideas  when  they  can  finally  interact   with  the  system  they’ve  been  paying  for.
  • 7. DEVELOPERS GET EASILY ANCHORED We  o]en  get  locked  in  on  the  original  statement   of  work  -­‐  and  the  tasks  we  created  based  on   them.  Even  if  a  client  has  to  adjust  course.
  • 8. THE TRUTH: THE PROBLEM ISN’T CLIENTS & IT’S NOT DEVELOPERS
  • 9. THE PROJECT BY THE NUMBERS # OF COMMITS # OF CONTRIBUTORS # OF MONTHS 4461 12 8
  • 10. THE PROBLEM IS OUR BRAIN & MEMORY
  • 11. 0% The number of staff we have that have perfect memory and can do impact analysis in their sleep.
  • 12. IMPACT ANALYSIS The  work  that  must  be  done  when  a  client   requests  new  work  (new  scope)  and  it  must  be   determined  what  the  changes  will  do  (what   impact  they’ll  have)  on  exisPng  code. HINT:  IT’S  REALLY  HARD  TO  DO.  
  • 13. HOW DO YOU MAKE CHOICES WHEN YOU WRITE CODE? Idea Insight CODE CODE CODE Talk Talk Talk Choice Choice Choice If  you  noPce  the   performance  isn’t   great,  maybe  you   try  a  new  approach. Seeing  someone   else’s  code  helps  you   think  about  your  own   in  a  new  way. New  informaPon   suggests  you   thought  about  it  all   wrong.  Which  leads   to  changes  in  your   code. LET ME MAKE A GUESS. YOU DON’T WRITE THIS ALL DOWN. I NEVER DID.  
  • 14.     NOTACHANGEORDERISSUE NOT  A  MONEY  ISSUE.  IT’S  ABOUT  RISK  MITIGATION.
  • 15. THE DANGER ZONE The  place  where  you  break  your  own  code  and  can’t   charge  anyone  else  because  it’s  your  mistake. HOPE ACTUAL SOW   DEVELOPMENT  &  QA DISCOVERY LAUNCH Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep 2014 2015 WE CREATED CHANGE ORDERS FOR NEW WORK... SOW DEVELOPMENT DISCOVERY SOW  &  CONTRACTS   DEVELOPMENT DISCOVERY LAUNCH PARTNER  API  IS  A  WORK  IN  PROGRESS DANGER ZONE
  • 16. Everything, which is done orderly, with measure and according to rules, generates something good. Plato
  • 17. This  is  another  story.  It’s  what  turned  me   onto  automated  impact  analysis  thru   acceptance  tesPng.   CAN I TELL YOU A STORY?
  • 18. The  trading  engine  for   market  makers  was  a   message-­‐oriented  soluEon   that  was  having   performance  issues.   No  one  thought  about   gridlock  because  no  one   thought  about  the  big   picture.   PACIFIC STOCK EXCHANGE
  • 19. HIRE OLD PEOPLE T I N Y L I T T L E P L U G B E C A U S E T H E Y C A N W R I T E B O O K S F I L L E D W I T H L E S S O N S L E A R N E D
  • 20. IMPACT ANALYSIS IS EASIER & FASTER USING CODECEPTION FOR ACCEPTANCE TESTING
  • 21. ACCEPTANCE TESTS REPLICATE A USER’S EXPERIENCE & ARE DRIVEN BY “EXPECTATION” LOGIC. THEY REMEMBER ALL THE PREVIOUS DECISIONS & PROMISES YOU MADE.
  • 22. Title As a [role] I want [feature] So that [benefit] Acceptance Criteria Scenario: Title Given [context] When [event] Then [outcome] hdp://dannorth.net/whats-­‐in-­‐a-­‐story/
  • 23. <?php $I = new AcceptanceTester($scenario); $I->am(‘A Subscriber’); $I->wantTo(‘edit my profile’); $I->amOnPage(‘/members/edit-profile/’); $I->canSee(‘Personal Information’); ?> $  php  codecept.phar  generate:scenarios
  • 24. I want to edit my profile I am on page ‘members/edit-profile’ I see ‘Personal Information’ ... This  is  the  expectaPon  logic  that  is  easy  to  remember  later.  And  it’s  really   helpful  when  something  breaks.  Because  we  know  exactly  what  we  were   trying  to  do  and  how  to  verify  that  something  broke.
  • 25. wantTo amOnPage lookForwardTo click fillField selectOption submitForm see seeLink seeElement dontSeeElement seeInCurrentUrl seeCheckboxIsChecked seeInField CODECEPTION COMMANDS  
  • 26. 1.  wget http://codeception.com/codecept.phar 2. php codecept.phar bootstrap 3. php codecept.phar generate:cept acceptance Welcome 4. Edit file tests/acceptance/WelcomeCept.php 5. Write your first acceptance test 6. Put application URL into tests/acceptance.suite.yml 7.  php codecept.phar run   GETTING STARTED IS EASY hdp://codecepPon.com/quickstart
  • 27. 395ACCEPTANCE TESTS
  • 28. AUTOMATED ACCEPTANCE TESTING GITHUB  SCRUTINIZER  CODECEPTION  CAPISTRANO   PUSH REPO TESTS Registered  w/  ScruPnizer? ScruPnizer  calls   CodecepPon Do  the  tests  pass? ScruPnizer   iniPates deployment Capistrano  only  deploys  code  that’s  passed  acceptance  tests
  • 29. 80mph SPEED The  goal  isn’t  to  write  these  tests   quickly.  Or  even  to  learn  quickly  which   acceptance  tests  to  write.  The  goal  is   to  find  places  of  impact  quickly.
  • 30. ConEnuous  effort     –  not  strength  or  intelligence  –     is  the  key  to  unlocking  our   potenPal.   Sir  Winston  Churchill
  • 31. Maybe  you  saw  this  in  the  papers,  online,     or  read  about  it  recently.  It  sPll  bears  telling.   ONE LAST STORY...
  • 32. KNIGHT CAPITAL - August 2012 $440 million $10MM every minute 45 MINUTES 8 SERVERS LET ME MAKE A GUESS. YOU DON’T WANT YOUR NAME IN AN SEC FILING.  
  • 33. RESOURCES TO GET YOU STARTED hdp://codecepPon.com/quickstart hdp://codecepPon.com/docs/01-­‐IntroducPon hdp://codecepPon.com/docs/02-­‐GekngStarted hdp://codecepPon.com/docs/04-­‐AcceptanceTests hdp://dannorth.net/whats-­‐in-­‐a-­‐story/ hdps://vimeo.com/rzen/codecepPon
  • 34. CHRIS LEMA CTO & CHIEF STRATEGIST, CROWD FAVORITE @chrislema | http://chrislema.com