impactanalysis 150507054758-lva1-app6891

34
IMPACT ANALYSIS CHRIS LEMA | CROWD FAVORITE

Upload: jose-banuelos

Post on 14-Aug-2015

12 views

Category:

Leadership & Management


0 download

TRANSCRIPT

Page 1: Impactanalysis 150507054758-lva1-app6891

IMPACT ANALYSIS

CHRIS LEMA | CROWD FAVORITE

Page 2: Impactanalysis 150507054758-lva1-app6891

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?

Page 3: Impactanalysis 150507054758-lva1-app6891

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

THE WAY IT’S SUPPOSED TO WORK

Page 4: Impactanalysis 150507054758-lva1-app6891

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

WHAT HAPPENS WHEN...

Page 5: Impactanalysis 150507054758-lva1-app6891

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

ACTU

AL

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

Page 6: Impactanalysis 150507054758-lva1-app6891

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.

Page 7: Impactanalysis 150507054758-lva1-app6891

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.

Page 8: Impactanalysis 150507054758-lva1-app6891

THE TRUTH: THE PROBLEM ISN’T CLIENTS & IT’S NOT DEVELOPERS

Page 9: Impactanalysis 150507054758-lva1-app6891

THE PROJECT BY THE NUMBERS

# OF COMMITS # OF CONTRIBUTORS # OF MONTHS

4461 12 8

Page 10: Impactanalysis 150507054758-lva1-app6891

THE PROBLEM IS OUR BRAIN & MEMORY

Page 11: Impactanalysis 150507054758-lva1-app6891

0% The number of staff we have that have perfect memory and can do impact analysis in their sleep.

Page 12: Impactanalysis 150507054758-lva1-app6891

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.  

Page 13: Impactanalysis 150507054758-lva1-app6891

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.  

Page 14: Impactanalysis 150507054758-lva1-app6891

   

NOT A CHANGE ORDER ISSUE NOT  A  MONEY  ISSUE.  IT’S  ABOUT  RISK  MITIGATION.

Page 15: Impactanalysis 150507054758-lva1-app6891

THE DANGER ZONE The  place  where  you  break  your  own  code  and  can’t  charge  anyone  else  because  it’s  your  mistake.

HOPE

ACTU

AL

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

Page 16: Impactanalysis 150507054758-lva1-app6891

Everything, which is done orderly, with measure and according to rules, generates something good. Plato

Page 17: Impactanalysis 150507054758-lva1-app6891

This  is  another  story.  It’s  what  turned  me  onto  automated  impact  analysis  thru  acceptance  tesPng.  

CAN I TELL YOU A STORY?

Page 18: Impactanalysis 150507054758-lva1-app6891

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

Page 19: Impactanalysis 150507054758-lva1-app6891

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

Page 20: Impactanalysis 150507054758-lva1-app6891

IMPACT ANALYSIS IS EASIER & FASTER USING CODECEPTION FOR ACCEPTANCE TESTING

Page 21: Impactanalysis 150507054758-lva1-app6891

ACCEPTANCE TESTS REPLICATE A USER’S EXPERIENCE & ARE DRIVEN BY “EXPECTATION” LOGIC. THEY REMEMBER ALL THE PREVIOUS DECISIONS & PROMISES YOU MADE.

Page 22: Impactanalysis 150507054758-lva1-app6891

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/

Page 23: Impactanalysis 150507054758-lva1-app6891

<?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 .pha r   generate : s cena r io s

Page 24: Impactanalysis 150507054758-lva1-app6891

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.

Page 25: Impactanalysis 150507054758-lva1-app6891

wantTo amOnPage lookForwardTo click fillField selectOption submitForm

see seeLink seeElement dontSeeElement seeInCurrentUrl seeCheckboxIsChecked seeInField

CODECEPTION COMMANDS  

Page 26: Impactanalysis 150507054758-lva1-app6891

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

Page 27: Impactanalysis 150507054758-lva1-app6891

395 ACCEPTANCE TESTS

Page 28: Impactanalysis 150507054758-lva1-app6891

AUTOMATED ACCEPTANCE TESTING GITH

UB  

SCRU

TINIZER

 CO

DECE

PTION  

CAPISTRA

NO  

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

Page 29: Impactanalysis 150507054758-lva1-app6891

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.

Page 30: Impactanalysis 150507054758-lva1-app6891

ConEnuous  effort    –  not  strength  or  intelligence  –    is  the  key  to  unlocking  our  potenPal.   Sir  Winston  Churchill

Page 31: Impactanalysis 150507054758-lva1-app6891

Maybe  you  saw  this  in  the  papers,  online,    or  read  about  it  recently.  It  sPll  bears  telling.  

ONE LAST STORY...

Page 32: Impactanalysis 150507054758-lva1-app6891

KNIGHT CAPITAL - August 2012

$440 mil l ion $10MM

every minute 45 MINUTES

8 SERVERS

LET ME MAKE A GUESS. YOU DON’T WANT YOUR NAME IN AN SEC FILING.  

Page 33: Impactanalysis 150507054758-lva1-app6891

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

Page 34: Impactanalysis 150507054758-lva1-app6891

CHRIS LEMA CTO & CHIEF STRATEGIST, CROWD FAVORITE @chrislema | http://chrislema.com