NFI 2014-12-02
Requirement and test with Continuous DeliveryCustomer in focus at Scania Connected Services
Agenda – A time-travel
• History
• Today
• Future
Agenda – A time-travel
• History
• Today
• Future
• Individuals
• Team
• Innovators
Jonatan Mossberg Rebecca Isaksson
Smartphone access to driver/vehicle
data
Scania Connected Services
FMP
CommunicationServers
Web Servers
Mail Reports
Email and SMS
reminders/alarms
Fleet Management
Portal
Remote Diagnosis
Communicator
Web Service Interface
FMP
MPMP
Why do we need
requirements?
Nobody reads them!
Who wants what and why?
”Requirement meeting” starts every story!
Requirement Specification by Example
But Given When Then is nothing
new?
http://code.tutsplus.com/tutorials/behavior-driven-development-in-python--net-26547
ATDD + TDD
Requirements linked to the code!
Living documentation
Executable documentation
Executable documentation
Now
Requirement
Then
Documentation
Soon
Test
Antifragile
Please
mishandle!
But should we really automate
all the tests?
Automate on the right level!
Black box
http://fabiopereira.me/blog/2012/03/18/introducing-depth-of-test-dot/
Black box
http://fabiopereira.me/blog/2012/03/18/introducing-depth-of-test-dot/
Black box
http://fabiopereira.me/blog/2012/03/18/introducing-depth-of-test-dot/
SlowImprecise
Fragile
Late feedback
http://fabiopereira.me/blog/2012/03/18/introducing-depth-of-test-dot/
White box
http://fabiopereira.me/blog/2012/03/18/introducing-depth-of-test-dot/
White box
http://fabiopereira.me/blog/2012/03/18/introducing-depth-of-test-dot/
FastPreciseRobust
Fast feedback
White box
The requirement meeting gives us both!
Talk to each other!
But how do we know if the
customer is happy?
Continuous Delivery
BuildStage
BronzeStage
Deployment Pipeline
Silver Stage
GoldStage
Deploy Stage
Compile Package Unit Test Analysis DB. Script ”Compile”
DB Deploy Int.Tests
Deploy System Test
Staging Deploy
Prod Deploy
.....
…..
But still, what about the customer?
Feature Toggle
Old!
New!
Feature Toggle
Main
GUI
Business Logic
Database
Feature Toggle
Main
GUI
Business Logic
Database
But should we use our customers for human
experimentation?
Limited number of
customers
Limited functionality
Limited time
What about the future?
Try new ideas…
Let’s try both!
…on real users!
A/B-testing!
Hypothesis driven development!
We Believe That this featureWill Result In this valueWe Will Know We Have Succeeded When we have this measurable result
Improve the ability to respond to changeKill bad idéas – FAST
It is fun!
Contact
• Jonatan Mossberg– [email protected] – @Kneulen
• Rebecca Isaksson– [email protected]– @auriorai