The Whole Enchilada

140 views
94 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
140
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

The Whole Enchilada

  1. 1. The whole enchilada Inception to delivery in just 2 weeks 1
  2. 2. We write code... and we write it wellOh... And we’re ON A BOAT! 2
  3. 3. Steve Jackson Dave Shah@stevejxsn @daveshahsteve.jackson@leandogsoftware.com dave.shah@leandogsoftware.com 3
  4. 4. WE LOVE BURRITOS... 4
  5. 5. We love apps.... 5
  6. 6. We LOVE FEEDBACK! 6
  7. 7. Making assumptions explicit 7
  8. 8. Features 8
  9. 9. Low Fidelity Prototyping 9
  10. 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. 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. 12. Why test first? (MORE ON THIS LATER...) 12
  13. 13. Why test first? (CONVINCING YOUR BOSS) CapersJones, SoftwareAssessments, Benchmarks, andBestPractices- Addison- Wesley, 2000 13
  14. 14. ATDD Acceptance Test Developer TestDefine Def Fail Def Fail Def TDD Pass Def Pass Def Refactor Def 14
  15. 15. Three amigos Knows what to build Knows how to build it Knows how to verify it 15
  16. 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. 17. Why ATDD? Constant Collaboration Improved Understanding Eliminates Waste Move Risk Forward Bake Quality In 17
  18. 18. Sounds great in theory... lets see somecode! 18
  19. 19. time travel 19
  20. 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. 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. 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. 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. 24. And Now...LIVECODING!!!! 24
  25. 25. So we mentioned science... 25
  26. 26. So we mentioned science... 26
  27. 27. So we mentioned science... Acceptance Test Developer TestDefine Def Fail Def Fail Def TDD Pass Def Pass Def Refactor Def 27 12
  28. 28. So we mentioned science... Write a Test == Experiment Hypothesis Fail Def Results Repeat Pass Def Conclusion Refactor Def 28 12
  29. 29. Thanks! Michael Lemley @audienceofnone 29
  30. 30. Happy hacking! https://github.com/leandog/OCBMobileSteve Jackson Dave Shah@stevejxsn @daveshahsteve.jackson@leandogsoftware.com dave.shah@leandogsoftware.com 30

×