Frozenrails2011

1,627 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,627
On SlideShare
0
From Embeds
0
Number of Embeds
590
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Frozenrails2011

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

×