• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Agile requirements

Agile requirements



Presentation done at the Winnipeg Agile UG

Presentation done at the Winnipeg Agile UG



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Agile requirements Agile requirements Presentation Transcript

    • AMIR BARYLKO AGILE REQUIREMENTSAmir Barylko MavenThought Inc.
    • HIGH QUALITY REQUIREMENTS Goal Techniques Complexity Planning Common IssuesAmir Barylko MavenThought Inc.
    • WHAT’S THE GOAL? • (good question)Amir Barylko MavenThought Inc.
    • TECHNIQUES • Verbally • Use Cases • Prototyping • User StoriesAmir Barylko MavenThought Inc.
    • COMPLEXITY • Task Breakdown • Story points • Planning poker • Throw a dice?Amir Barylko MavenThought Inc.
    • PLANNING • Gantt Chart • Sprints for releases • Continuos release •A mix of thoseAmir Barylko MavenThought Inc.
    • COMMON PROBLEMS • (Your input here)Amir Barylko MavenThought Inc.
    • NARROWING THE GAP Acceptance Criteria First Benefits Roles Outside In Approach Runnable featuresAmir Barylko MavenThought Inc.
    • ACCEPTANCE CRITERIA • Write the expected criteria before the implementation starts • Developers will implement the feature until the criteria is satisfied • QA will validate against the same criteriaAmir Barylko MavenThought Inc.
    • BENEFITS • Discover the feature • Testing all the way • Traceability • Quality every step of the processAmir Barylko MavenThought Inc.
    • ROLES • Who writes the feature? • Who implements the feature? • Who validates the feature? • What’s the role of QA, PM, etc?Amir Barylko MavenThought Inc.
    • OUTSIDE IN APPROACHAmir Barylko MavenThought Inc.
    • RUNNABLE FEATURES • Features describe functionality • What if we could run them? • Then features would validate functionality • Becoming live documentationAmir Barylko MavenThought Inc.
    • ACCEPTANCE CASES A common language Features Scenarios Styles BenefitsAmir Barylko MavenThought Inc.
    • GHERKIN DSL • Business readable DSL • Flush out requirements • Documentation • Automated testing • Used by Cucumber, SpecFlow, jBehaveAmir Barylko MavenThought Inc.
    • FEATURES Keyword Feature: Listing projects As a user Free text! I Want to see the list of projects So I can choose one to see the details Scenario: List all projects (steps here to implement scenario) Scenario: No projects are available (steps here to implement scenario)Amir Barylko MavenThought Inc.
    • SCENARIOS Scenario: List all projects Given Im logged in Step 1 And I have (some data loaded) Step 2 When I (do some action) Step 3 Then I (should see expected results) Step 4Amir Barylko MavenThought Inc.
    • SCENARIOS • Each feature file can have multiple scenarios • Each scenario can contain multiple steps • Keywords: • Given When Then • And Not ButAmir Barylko MavenThought Inc.
    • Post-It EXCERCISE & Sharpie! •Write a story and •scenarios for a user loginAmir Barylko MavenThought Inc.
    • GUIDELINES & GOALS Too Vague Too Imperative Descriptive Style Complexity PlanningAmir Barylko MavenThought Inc.
    • TOO VAGUE Scenario: Perfect world Given the application is setup When I want to use some projects Then I should be able to load data And have a great user experience but no bugs should appearAmir Barylko MavenThought Inc.
    • TOO IMPERATIVE Scenario: Redirect user to originally requested page Given a User "dave" exists with password "secret" And I am not logged in When I navigate to the home page Then I am redirected to the login form When I fill in "Username" with "dave" And I fill in "Password" with "secret" And I press "Login"Amir Barylko MavenThought Inc.
    • DESCRIPTIVE STYLE Scenario: List all projects Given Im logged in And I have some projects stored When I list the projects Then I should see all of themAmir Barylko MavenThought Inc.
    • DISCOVER COMPLEXITY • How many scenarios per feature? • The more scenarios the more complex • The more steps the more complex • If scenarios are unclear, then is time to rethink the featureAmir Barylko MavenThought Inc.
    • DISCOVER FUNCTIONALITY • When is the right time to write scenarios? • During Inception? • During Analysis? • During Development? • During QA?Amir Barylko MavenThought Inc.
    • SCENARIO ORDER • What happens with dependencies? • How do I use data if I haven’t implemented that feature? • Can devs work independently in different scenarios?Amir Barylko MavenThought Inc.
    • Post-It VOTING APP & Sharpie! •In teams •Choose top three user stories •Write scenarios •Share with the other teamsAmir Barylko MavenThought Inc.
    • RUNNABLE SCENARIOS Tools Implementation Unit Tests Integration Tests Acceptance TestsAmir Barylko MavenThought Inc.
    • TOOLS GALORE • Lots of tools available that use Gherkin: • Cucumber / rSpec • jBehave • Specflow • Scalatest • etcAmir Barylko MavenThought Inc.
    • WHERE SHOULD THEY GO? •Acceptance tests? •Integration tests? •Unit tests?Amir Barylko MavenThought Inc.
    • ACCEPTANCE TEST •Black box testing •Crossing all layers •Should cover all scenarios •External subsystems may be mockedAmir Barylko MavenThought Inc.
    • INTEGRATION TEST •More than one class •Still some parts can be mocked •Partial functionality of subsystemAmir Barylko MavenThought Inc.
    • UNIT TEST • Test for a class or method • No external dependencies • Small • ClearAmir Barylko MavenThought Inc.
    • TDD • First write a test that fails (RED) • Write code to make it pass (GREEN) • Check if code can be improved (REFACTOR) • Start again until it’s doneAmir Barylko MavenThought Inc.
    • WHEN TDD IS NOT ENOUGH •Legacy Code •Refactoring is not viable •Verify functionality across layers •Validate feature end to endAmir Barylko MavenThought Inc.
    • DEMOAmir Barylko MavenThought Inc.
    • SUMMARY Benefits Challenges What’s next?Amir Barylko MavenThought Inc.
    • BENEFITS • Easier planning • Putsthe whole team on the same page • Discoversfunctionality and complexity • Simplifies QA process • No particular skill • Narrows the gap required between expectations and actual • Easy Adoption implementationAmir Barylko MavenThought Inc.
    • CHALLENGES • Different approach • The roles get blurred • Team effort • Others?Amir Barylko MavenThought Inc.
    • WHAT’S NEXT • Take one concept that you are not implementing • You have until next meeting to put it to work • Register challenges, issues and results • Share that next sessionAmir Barylko MavenThought Inc.
    • QUESTIONS?Amir Barylko MavenThought Inc.
    • RESOURCES • Contact me: amir@barylko.com, @abarylko • Download: http://www.orthocoders.com/presentationsAmir Barylko MavenThought Inc.
    • RESOURCES II • jBehave: http://jbehave.org • Cucumber: http://cukes.info • ScalaTest: http://scalatest.org • Selenium: http://seleniumhq.org • jDave: http://jdave.org • EasyB: http://easyb.orgAmir Barylko MavenThought Inc.