SlideShare uma empresa Scribd logo
1 de 52
Cucumber
A Tool for Continuous Software Collaboration
Agenda
• Me (boring so will be brief)
• SDLC ->TDD->BDD evolution survey
• Overview of Cucumber
• Challenges Starting Up BDD in an
  organization.
• What makes BDD worth it.
• My experience with BDD
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me
     Scott Smith       aka OldFartDeveloper

     BSEE 1972         CS was a math minor
 Hardware/Firmware    ATE (always interested
     /Software                in test)
Berlin Wall Down 1990  Switched to business
                             software
     Late 1990’s      Became web developer

     2005 - TDD           Changed my life
Me

• Husband
• Dad
• Not yet a
  grandpa
Software Evolution

<1998 Systems Development Life Cycle (SDLC)    Waterfall

                                                Extreme
1998-                 SDLC
                                              Programming
2008     Test-Driven-Development (TDD)
                                                  (XP)
                       SDLC
>2008                  TDD                    Agile/Scrum
        Behavior-Driven Development (BDD)
Waterfall
Stakeholder(s)




       Everyone Else
Extreme Programming
            Stakeholder(s)


                                Analysis



 Evaluate      Write Tests   Evaluate      Write Tests   Evaluate      Write Tests



        Implement                   Implement                   Implement
Agile/Scrum
             Stakeholder(s)




           Analysis                       Analysis                       Analysis


Evaluate         Write Tests   Evaluate         Write Tests   Evaluate         Write Tests



       Implement                      Implement                      Implement
Agile/Scrum
             Stakeholder(s)

                                                          Scrum Master

           Analysis                       Analysis                       Analysis


Evaluate         Write Tests   Evaluate         Write Tests   Evaluate         Write Tests



       Implement                      Implement                      Implement
Agile/Scrum
                                       Stakeholder(s)

                                                                                    Scrum Master

                                     Analysis                       Analysis                       Analysis


This requires a lot of what I like
to euphemistically call Evaluate           Write Tests   Evaluate         Write Tests   Evaluate         Write Tests



                                 Implement                      Implement                      Implement
The Challenge: Analysis

     Features: What to Include




    Analysis: How to Implement
The Challenge: Analysis

     Features: What to Include

         (No Automation)

    Analysis: How to Implement
BDD Objective
1. BDD focuses on developing a clear
   understanding of desired software behavior
   through discussion with stakeholders.
2. This understanding is recorded in a natural
   (i.e. domain) language readable by non-
   programmers.
3. The natural language can be programmatically
   interpreted to provide tests to drive code
What is Cucumber?

• Cucumber is a software implementation of a
  BDD framework.
• Competitors:
 • Fitnesse
 • Turnip, Steak, xBehave, others
What is Cucumber?
• Hyper-High Level Specification Language
What is Cucumber?
• Write a step definition (here in Ruby)
What is Cucumber?
• Run and watch it fail
What is Cucumber?
• Write code to make the step pass
What is Cucumber?
• Run again and see the step pass:




                Evaluate      Write Tests



                       Implement
What is Cucumber?
• Many tools support Cucumber annotation
What is Cucumber?
• Repeat until steps are green like a cuke
What is Cucumber?
• Repeat the previous steps until the money
  runs out
What is Cucumber?
•   Cucumber lets software development teams describe how
    software should behave in plain text. The text is written in a
    business-readable domain-specific language and serves
    as documentation, automated tests and development-aid -
    all rolled into one format.

•   Introduced in 2008 in Ruby. Since then, has been
    expanded to Ruby, Java, .NET, Flex, Javascript (new), and
    web applications written in any language

•   Translated to over 40 spoken languages.
Cucumber:
        Collaboration
• Specific examples, not vague descriptions
• Before examples, justification
• Highest priority: clarity to non-
  programmers
 • Appropriate level of detail
 • Avoid repetitive detail; presentation is
    important
Specificness
Consider:




Vs:
Justification
Consider:



Vs.
Prioritize on
           Justification
Will this feature...
• Significantly enhance and/or protect the
  core vision of the product?
• Specifically appeal to a customer need?
• Enhance revenue?
• Save resources? (labor/time/equipment)
If not, why are you considering it? Drop it.
Appropriate Detail
Consider:




Vs:
What Should Go Into a
      Feature?
• Anything the team wants information from
  the stakeholders about:
 • Business rules
  • Especially core-business values
  • What, not how.
 • Needs to be justified
What Should NOT Go
    Into a Feature

• Blatantly obvious functionality
• End-to-end acceptance testing
• Peripheral requirements
What
Goes
Wrong
Stakeholder Distracted
   by Pretty Pictures
• It is easy to become preoccupied by screen
  design and form layout (mockups).
• But:
 • What are the flows?
 • What are the exceptional conditions and
    what do we do about them?
Resistance to
          Preciseness

• It is much easier to think in vague
  generalities than sweat the functional
  details.
Hazy Requirements


• What should happen when each possible
  exceptional condition occurs?
• Conflicting desired functionality
                 Exhausting
Inexperience

• Cucumber verifies mock-up sequences
• “How” decisions creep into features
• Failure to develop domain vocabulary
• Features not developed collaboratively
Disengagement
• Stakeholder(s) not participating
• Not all participants can see all the
  docs.
• Feature development trails off
• Deterioration into “Seven Stages of
  a Project”
OMG! Why Do This?

• Lean Startup Mantra: “Fail Early”
• You were going to run into all the problems
  later down the line anyways; now you
  encounter them early when you can still do
  something about it.
• You always know where you are.
BDD Is Hard! But Very
      Effective!
• The alternatives are much harder and
  demoralizing.
• The BDD fundamentals are easy to learn,
  but the implications take practice
• Feature-wise, aim low at first; measure
  carefully your velocity. Then adjust.
• Otherwise, exhaustion takes over
Author’s Experience
• Reintroduced Cucumber after 2 year
  hiatus.
• New Product VP loves it, but the team is
  learning all over again.
• Feature development revealed all kinds of
  problems early. Cucumbers incomplete.
• Forced a much more realistic schedule; thus
  far have avoided another death march.
Takeaways
• A good BDD tool applied in a collaborative
  way will quickly expose the root causes of
  an organization’s deficiencies and suggest
  useful remedies.
• Must have management buy-in.
• Culture change is hard. Discipline is hard.
• Real organizational growth is rewarding.
Obligatory Cat Video

      http://www.youtube.com/watch?
  v=yVjzd320gew&feature=channel&list=UL

Mais conteúdo relacionado

Último

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Destaque

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Destaque (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Continuous Software Collaboration with Cucumber

  • 1. Cucumber A Tool for Continuous Software Collaboration
  • 2. Agenda • Me (boring so will be brief) • SDLC ->TDD->BDD evolution survey • Overview of Cucumber • Challenges Starting Up BDD in an organization. • What makes BDD worth it. • My experience with BDD
  • 3. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 4. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 5. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 6. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 7. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 8. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 9. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 10. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 11. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 12. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 13. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 14. Me Scott Smith aka OldFartDeveloper BSEE 1972 CS was a math minor Hardware/Firmware ATE (always interested /Software in test) Berlin Wall Down 1990 Switched to business software Late 1990’s Became web developer 2005 - TDD Changed my life
  • 15. Me • Husband • Dad • Not yet a grandpa
  • 16. Software Evolution <1998 Systems Development Life Cycle (SDLC) Waterfall Extreme 1998- SDLC Programming 2008 Test-Driven-Development (TDD) (XP) SDLC >2008 TDD Agile/Scrum Behavior-Driven Development (BDD)
  • 17. Waterfall Stakeholder(s) Everyone Else
  • 18. Extreme Programming Stakeholder(s) Analysis Evaluate Write Tests Evaluate Write Tests Evaluate Write Tests Implement Implement Implement
  • 19. Agile/Scrum Stakeholder(s) Analysis Analysis Analysis Evaluate Write Tests Evaluate Write Tests Evaluate Write Tests Implement Implement Implement
  • 20. Agile/Scrum Stakeholder(s) Scrum Master Analysis Analysis Analysis Evaluate Write Tests Evaluate Write Tests Evaluate Write Tests Implement Implement Implement
  • 21. Agile/Scrum Stakeholder(s) Scrum Master Analysis Analysis Analysis This requires a lot of what I like to euphemistically call Evaluate Write Tests Evaluate Write Tests Evaluate Write Tests Implement Implement Implement
  • 22. The Challenge: Analysis Features: What to Include Analysis: How to Implement
  • 23. The Challenge: Analysis Features: What to Include (No Automation) Analysis: How to Implement
  • 24. BDD Objective 1. BDD focuses on developing a clear understanding of desired software behavior through discussion with stakeholders. 2. This understanding is recorded in a natural (i.e. domain) language readable by non- programmers. 3. The natural language can be programmatically interpreted to provide tests to drive code
  • 25. What is Cucumber? • Cucumber is a software implementation of a BDD framework. • Competitors: • Fitnesse • Turnip, Steak, xBehave, others
  • 26. What is Cucumber? • Hyper-High Level Specification Language
  • 27. What is Cucumber? • Write a step definition (here in Ruby)
  • 28. What is Cucumber? • Run and watch it fail
  • 29. What is Cucumber? • Write code to make the step pass
  • 30. What is Cucumber? • Run again and see the step pass: Evaluate Write Tests Implement
  • 31. What is Cucumber? • Many tools support Cucumber annotation
  • 32. What is Cucumber? • Repeat until steps are green like a cuke
  • 33. What is Cucumber? • Repeat the previous steps until the money runs out
  • 34. What is Cucumber? • Cucumber lets software development teams describe how software should behave in plain text. The text is written in a business-readable domain-specific language and serves as documentation, automated tests and development-aid - all rolled into one format. • Introduced in 2008 in Ruby. Since then, has been expanded to Ruby, Java, .NET, Flex, Javascript (new), and web applications written in any language • Translated to over 40 spoken languages.
  • 35. Cucumber: Collaboration • Specific examples, not vague descriptions • Before examples, justification • Highest priority: clarity to non- programmers • Appropriate level of detail • Avoid repetitive detail; presentation is important
  • 38. Prioritize on Justification Will this feature... • Significantly enhance and/or protect the core vision of the product? • Specifically appeal to a customer need? • Enhance revenue? • Save resources? (labor/time/equipment) If not, why are you considering it? Drop it.
  • 40. What Should Go Into a Feature? • Anything the team wants information from the stakeholders about: • Business rules • Especially core-business values • What, not how. • Needs to be justified
  • 41. What Should NOT Go Into a Feature • Blatantly obvious functionality • End-to-end acceptance testing • Peripheral requirements
  • 43. Stakeholder Distracted by Pretty Pictures • It is easy to become preoccupied by screen design and form layout (mockups). • But: • What are the flows? • What are the exceptional conditions and what do we do about them?
  • 44. Resistance to Preciseness • It is much easier to think in vague generalities than sweat the functional details.
  • 45. Hazy Requirements • What should happen when each possible exceptional condition occurs? • Conflicting desired functionality Exhausting
  • 46. Inexperience • Cucumber verifies mock-up sequences • “How” decisions creep into features • Failure to develop domain vocabulary • Features not developed collaboratively
  • 47. Disengagement • Stakeholder(s) not participating • Not all participants can see all the docs. • Feature development trails off • Deterioration into “Seven Stages of a Project”
  • 48. OMG! Why Do This? • Lean Startup Mantra: “Fail Early” • You were going to run into all the problems later down the line anyways; now you encounter them early when you can still do something about it. • You always know where you are.
  • 49. BDD Is Hard! But Very Effective! • The alternatives are much harder and demoralizing. • The BDD fundamentals are easy to learn, but the implications take practice • Feature-wise, aim low at first; measure carefully your velocity. Then adjust. • Otherwise, exhaustion takes over
  • 50. Author’s Experience • Reintroduced Cucumber after 2 year hiatus. • New Product VP loves it, but the team is learning all over again. • Feature development revealed all kinds of problems early. Cucumbers incomplete. • Forced a much more realistic schedule; thus far have avoided another death march.
  • 51. Takeaways • A good BDD tool applied in a collaborative way will quickly expose the root causes of an organization’s deficiencies and suggest useful remedies. • Must have management buy-in. • Culture change is hard. Discipline is hard. • Real organizational growth is rewarding.
  • 52. Obligatory Cat Video http://www.youtube.com/watch? v=yVjzd320gew&feature=channel&list=UL

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n