Your SlideShare is downloading. ×
  • Like
  • Save
The Whole Enchilada
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

The Whole Enchilada

  • 49 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
49
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. The whole enchilada Inception to delivery in just 2 weeks 1
  • 2. We write code... and we write it wellOh... And we’re ON A BOAT! 2
  • 3. Steve Jackson Dave Shah@stevejxsn @daveshahsteve.jackson@leandogsoftware.com dave.shah@leandogsoftware.com 3
  • 4. WE LOVE BURRITOS... 4
  • 5. We love apps.... 5
  • 6. We LOVE FEEDBACK! 6
  • 7. Making assumptions explicit 7
  • 8. Features 8
  • 9. Low Fidelity Prototyping 9
  • 10. We Wrote a cuke...Feature: Getting directions to Ohio City BurritoAs a hungry burrito loverI want to drive to OCBSo I can get a Brother’s BurritoScenario: Directions button should take us to GoogleMapsGiven Im hungry for some OCBWhen I touch the map iconThen Google maps should provide me with directions 10
  • 11. What’s A CUKE?... Feature: As a hungry burrito lover I want to drive to OCB So I can get a Brother’s Scenario: Directions butt take us to Google Maps Given Im hungry for some When I touch the map icon Then Google maps should p with directions CUKES ARE TESTS 11
  • 12. Why test first? (MORE ON THIS LATER...) 12
  • 13. Why test first? (CONVINCING YOUR BOSS) CapersJones, SoftwareAssessments, Benchmarks, andBestPractices- Addison- Wesley, 2000 13
  • 14. ATDD Acceptance Test Developer TestDefine Def Fail Def Fail Def TDD Pass Def Pass Def Refactor Def 14
  • 15. Three amigos Knows what to build Knows how to build it Knows how to verify it 15
  • 16. Our First cukeFeature: Getting directions to Ohio City BurritoAs a hungry burrito loverI want to drive to OCBSo I can get a Brother’s BurritoScenario: Directions button should take us to GoogleMapsGiven Im hungry for some OCBWhen I touch the map iconThen Google maps should provide me with directions 16
  • 17. Why ATDD? Constant Collaboration Improved Understanding Eliminates Waste Move Risk Forward Bake Quality In 17
  • 18. Sounds great in theory... lets see somecode! 18
  • 19. time travel 19
  • 20. @Overrideprotected void onStart() { super.onStart(); ListView menuListView = (ListView) findViewById(id.menu_list_view); menuListView.setAdapter(new ArrayAdapter<String>( this,android.R.layout.simple_list_item_1, Arrays.asList("Burritos","Tacos","Choices and Additions")));} 20
  • 21. Scenario: Checking pricesGiven I want to see what Ohio City BurritoservesWhen I touch the menu signThen I should see the prices:| Brother’s Burrito | $6.15 || Baby Burrito | $1.85 | | 21
  • 22. Then /^I should see the prices:$/ do |expected_items| actual_items = [] expected_items.raw.each do |item, expected_price| price = on(MenuScreen).price item actual_items << [item, price] end expected_items.diff! actual_itemsend 22
  • 23. class MenuScreenclass MenuScreen include Gametel include Gametel ITEM = 0 button(:directions, :id => "directions_button") DESCRIPTION = 1 button(:call, :id => "call_button") PRICE = 2end button(:directions, :id => "directions_button") button(:call, :id => "call_button") def price(item) Gametel::Views::ListItem.new(platform, :text => item).text[PRICE] endend 23
  • 24. And Now...LIVECODING!!!! 24
  • 25. So we mentioned science... 25
  • 26. So we mentioned science... 26
  • 27. So we mentioned science... Acceptance Test Developer TestDefine Def Fail Def Fail Def TDD Pass Def Pass Def Refactor Def 27 12
  • 28. So we mentioned science... Write a Test == Experiment Hypothesis Fail Def Results Repeat Pass Def Conclusion Refactor Def 28 12
  • 29. Thanks! Michael Lemley @audienceofnone 29
  • 30. Happy hacking! https://github.com/leandog/OCBMobileSteve Jackson Dave Shah@stevejxsn @daveshahsteve.jackson@leandogsoftware.com dave.shah@leandogsoftware.com 30