SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
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?
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
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...
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
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.
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.
0% The number of staff
we have that have perfect memory and can do impact analysis in their sleep.
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.
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.
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
This is another story. It’s
what turned me onto automated impact analysis thru acceptance tesPng. CAN I TELL YOU A STORY?
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
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
ACCEPTANCE TESTS REPLICATE A USER’S
EXPERIENCE & ARE DRIVEN BY “EXPECTATION” LOGIC. THEY REMEMBER ALL THE PREVIOUS DECISIONS & PROMISES YOU MADE.
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/
<?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
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.
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
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.
ConEnuous effort –
not strength or intelligence – is the key to unlocking our potenPal. Sir Winston Churchill
Maybe you saw this in
the papers, online, or read about it recently. It sPll bears telling. ONE LAST STORY...
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.
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