2. who I am
› Larry: An open source, collaboration & Agile evangelist
› Software Practice Pioneering:
Discover the best suitable methods and tools to
improve the efficiency of software development
– Git, CI, Sonar, Agile, Eclipse, Cloud, Code review
Larry Cai
› mail: larry.caiyu@gmail.com
› weibo: http://weibo.com/larrycaiyu
› blog: http://codeslife.com
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 2 (28)
3. Requirement is the important thing for software development
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 3 (28)
4. One good way to improve your requirement handling
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 4 (28)
5. agenda
› WHAT is specification by example
› How we make changes
› Key learning
› suggestion
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 5 (28)
6. agenda
› WHAT is specification by example
› How we make changes
› Key learning
› suggestion
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 6 (28)
7. Specification by
example
› Based on capturing and illustrating requirements using
realistic examples instead of abstract statements.
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 7 (28)
8. User story
Requirement: customer can check order information before purchase
Feature: As a Returning Customer I want the system to
remember my details so I can purchase goods more quickly.
Acceptance criteria:
Scenario: Review Details Before Purchase
Given I’m on the Amazon website
And I’m logged in as a returning customer
When I click the “1-Click” button
Then I should see my order details
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 8 (28)
9. Specification by
example
› Based on capturing and illustrating requirements using
realistic examples instead of abstract statements.
› Collaborative approach to defining requirements and
business-oriented functional tests for software products
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 9 (28)
10. All others
Created by http://www.wordle.net/
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 10 (28)
11. agenda
› WHAT is specification by example
› How we make changes
– Embrace example
– Change delivery plan
› Key learning
› suggestion
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 11 (28)
12. without example
› Feature: Free delivery
Customer will get free delivery when buy some books
We
igh
tv
s. N
um
ber
n
aiwa
ai vs. T
ngh
Sha
Books w
ith USB
e
sh machin
Books with wa
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 12 (28)
13. problem
› Technical debts in the end of iteration (notice the gap
between design and verification)
› Waterfall inside the iteration
› Less focus on the requirement in the beginning and no
efficient way to clarify the requirement
Do we do the right thing from the beginning ?
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 13 (28)
14. Example matters
› Feature: Free Delivery
› Example:
– Customer has 6 books in cart gets free delivery
– Customer has 5 books in cart doesn’t get free delivery
– Customer has 6 books in cart and delivery address to shanghai is
free delivery
– Customer has 6 books in cart and delivery address to Qinghai
doesn’t get free delivery
– Customer has 6 books in cart and one 2G USB get free delivery
– Customer has 6 books in cart and one wash machine get ?
› Customer buy 6 books (included) and only books can have free
delivery to mainland (exclude Tibet,….)
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 14 (28)
15. Tool is good, but it is not must-have to use
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 15 (28)
16. Specification by
example
Source: key process from the book “Specification by example”
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 16 (28)
17. Embrace Example
› Team works with Product Owner for more examples (less
how, more what) for each feature
– Short vague and abstract description to nature language in example
– Do it until passenger can understand
› Not easy to change. Training, coach and push in beginning
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 17 (28)
18. visible requirement
› One source and everyone check/challenge !
Wall, White board ….
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 18 (28)
19. Start from example
› Discuss in small group and spread to the team to make it
more efficiency
› Test case comes from example and continuously to
challenge what !
› Implement according to the example and focusing on how !
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 19 (28)
20. Change deliver plan
› From component based to feature based
Task based Feature based/Delivery
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 20 (28)
21. clear drive
› Deliver plan based on the requirement
– Tester is most suitable
› Done of definition is more easy to track and clear
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 21 (28)
22. agenda
› WHAT is specification by example
› How we make changes
› Key learning
› suggestion
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 22 (28)
23. Key learning
› Specification by example gives good improvement
– Better way for requirement clarification, easier than you can
image
– Motivation for testers
› Learn and deploy, and continuously improve it.
– Bring testers into front to push for the quality of the requirement
– Collaborate efficiency by visible them
› Tools (like cucumber) is very useful, but is not necessary in
the beginning
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 23 (28)
24. Compare to …
› Example is more nature for people to
understand and directed connect to
business (compare to test…)
› Collaboration is the key to refine the
requirement and improve step by step
(compare to driven …)
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 24 (28)
25. agenda
› WHAT is specification by example
› How we make changes
› Key learning
› suggestion
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 25 (28)
26. suggestion
› Start from changing delivery plan to make team work
together with business mindset
› Push team to clarify the requirement using example
› Training, Coach in the beginning to touch real case instead
of demo
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 26 (28)
27. 实例化需求,你行的
weibo: http://weibo.com/larrycaiyu
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 27 (28)