Practical
Ways to
sBE
Larry Cai
Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 1 (28)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
实例化需求,你行的



                                                                               weibo: http://weibo.com/larrycaiyu




Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 27 (28)

Scrum Gathering 2012 Shanghai_产品管理及用户体验 分会场:实例化需求的实践(蔡煜)

  • 1.
    Practical Ways to sBE Larry Cai Practicalway to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 1 (28)
  • 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 theimportant thing for software development Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 3 (28)
  • 4.
    One good wayto improve your requirement handling Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 4 (28)
  • 5.
    agenda › WHAT isspecification 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 isspecification 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 › Basedon 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 › Basedon 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 byhttp://www.wordle.net/ Practical way to experience Specification by Example | Scrum Gathering Shanghai 2012 | 2012-06-04 | Page 10 (28)
  • 11.
    agenda › WHAT isspecification 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 debtsin 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: keyprocess 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 › Teamworks 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 › Onesource 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 › Deliverplan 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 isspecification 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 › Specificationby 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 isspecification 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 fromchanging 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)