Your SlideShare is downloading. ×
Frozenrails2011
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Frozenrails2011

1,310
views

Published on

Published in: Business, Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,310
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
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. @josephwilkTuesday, 20 September 11
  • 2. Joseph WilkTuesday, 20 September 11
  • 3. Limited Red Joseph WilkTuesday, 20 September 11
  • 4. Limited Red Oh crap Joseph WilkTuesday, 20 September 11
  • 5. Work In ProgressTuesday, 20 September 11
  • 6. Work In ProgressTuesday, 20 September 11
  • 7. Context Switching is ExpensiveTuesday, 20 September 11
  • 8. Small Batch sizes Large batches Small batchesTuesday, 20 September 11
  • 9. Red == Work in ProgressTuesday, 20 September 11
  • 10. 1 day 1.5 day 2 dayTuesday, 20 September 11
  • 11. Why is Red Bad?Tuesday, 20 September 11
  • 12. Limit Red Measure Red Visualise Red LearnTuesday, 20 September 11
  • 13. Are we Professionals?Tuesday, 20 September 11
  • 14. Tuesday, 20 September 11
  • 15. Tuesday, 20 September 11
  • 16. Tuesday, 20 September 11
  • 17. Joseph Wilk PAIRING RED TIME TESTING REFACTORINGTuesday, 20 September 11
  • 18. Measuring & Visualising RedTuesday, 20 September 11
  • 19. Limited Red Learn and adapt from test metricsTuesday, 20 September 11
  • 20. Tuesday, 20 September 11
  • 21. Industrial LogicTuesday, 20 September 11
  • 22. Industrial LogicTuesday, 20 September 11
  • 23. Tuesday, 20 September 11
  • 24. Tuesday, 20 September 11
  • 25. Fighting RedTuesday, 20 September 11
  • 26. Patterns ‣Parallel Change ‣Narrowed Change ‣Sequence Change ‣Graceful Retreat ‣Piecemeal Change ‣Gradual Change ‣Evolved Target ‣Unified Methods Joshua KerievskyTuesday, 20 September 11
  • 27. Parallel Change class ImageResizer def resize(x,y) ... end endTuesday, 20 September 11
  • 28. Parallel Change class ImageResizer include ThumbResizer end module ThumbResizer def resize(x,y) ... end endTuesday, 20 September 11
  • 29. Ship itTuesday, 20 September 11
  • 30. But....Tuesday, 20 September 11
  • 31. Tuesday, 20 September 11
  • 32. Tuesday, 20 September 11
  • 33. Ship itTuesday, 20 September 11
  • 34. class ImageResizer Parallel Change if FeatureFlipper.active?(:fast_resizer) include FastThumbResizer else include ThumbResizer end end module ThumbResizer def resize(x,y) ... end end module FastThumbResizer def resize(x,y) ... end endTuesday, 20 September 11
  • 35. But.. Both versions!!!Tuesday, 20 September 11
  • 36. Ship itTuesday, 20 September 11
  • 37. Parallel Change class ImageResizer include FastThumbResizer end module FastThumbResizer def resize(x,y) ... end endTuesday, 20 September 11
  • 38. Ship itTuesday, 20 September 11
  • 39. Narrowed Change <%- if @game.player?(@active_user) && @black_player.present? && @white_player.present? %> <%= render :template => messaging %> <%- end %> <%- if @game.player?(@active_user) && @black_player.present? && @white_player.present? %> <%= render :template => messaging %> <%- end %>Tuesday, 20 September 11
  • 40. Narrowed Change <%- game_presenter.show_messaging? do %> <%= render :template => messaging %> <%- end %> class GamePresenter def initialize(game, black_payer, white_player) @game, @black_player, @white_player = game, black_player, white_player end def show_messaging?(&block) messaging_should_be_visible = @game.player?(@user) && @black_player.present? && @white_player.present? yield block if messaging_should_be_visible end endTuesday, 20 September 11
  • 41. Ship itTuesday, 20 September 11
  • 42. Narrowed Change <%- game_presenter.show_messaging? do %> <%= render :template => messaging %> <%- end %> class GamePresenter def initialize(game, black_payer, white_player) @game, @black_player, @white_player = game, black_player, white_player end def show_messaging?(&block) messaging_should_be_visible= @game.human_player?(@user) yield block if messaging_should_be_visible end endTuesday, 20 September 11
  • 43. Ship itTuesday, 20 September 11
  • 44. Sequence Change Remove Narrowed Extract control flag change methodTuesday, 20 September 11
  • 45. Sequence Change Narrowed Remove Extract change control flag methodTuesday, 20 September 11
  • 46. Graceful Retreat Please step away from the Yak... Slowly Shave?Tuesday, 20 September 11
  • 47. http://www.refactoring.com/catalog/index.htmlTuesday, 20 September 11
  • 48. Learning more from Red ‣ Smart Continuous integration ‣ Failure rate ‣ Performance ‣ FlickeringTuesday, 20 September 11
  • 49. Tuesday, 20 September 11
  • 50. Tuesday, 20 September 11
  • 51. Evil hatTuesday, 20 September 11
  • 52. Tuesday, 20 September 11
  • 53. More Books!Tuesday, 20 September 11
  • 54. “To measure is to know” Lord KelvinTuesday, 20 September 11
  • 55. Kiitos @josephwilk joe@josephwilk.netTuesday, 20 September 11
  • 56. Kiitos @josephwilk joe@josephwilk.net GreenTuesday, 20 September 11
  • 57. Kiitos @josephwilk joe@josephwilk.net GreenTuesday, 20 September 11
  • 58. Kiitos @josephwilk joe@josephwilk.net Ship itTuesday, 20 September 11 Green