Frozenrails2011

  • 1,291 views
Uploaded on

 

More in: Business , 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
1,291
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
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