frozenrails2011
DESCRIPTION
TRANSCRIPT
@josephwilk
Tuesday, 20 September 11
Joseph WilkTuesday, 20 September 11
Limited Red
Joseph WilkTuesday, 20 September 11
Limited RedOh crap
Joseph WilkTuesday, 20 September 11
Work In Progress
Tuesday, 20 September 11
Work In Progress
Tuesday, 20 September 11
Context Switching is Expensive
Tuesday, 20 September 11
Small Batch sizes
Large batches
Small batches
Tuesday, 20 September 11
Red == Work in Progress
Tuesday, 20 September 11
1 day
1.5 day
2 day
Tuesday, 20 September 11
Why is Red Bad?
Tuesday, 20 September 11
Limit Red
Measure Red
Learn
Visualise Red
Tuesday, 20 September 11
Are we Professionals?
Tuesday, 20 September 11
Tuesday, 20 September 11
Tuesday, 20 September 11
Tuesday, 20 September 11
Joseph Wilk
REFACTORING
TESTINGRE
D TI
MEPAIRING
Tuesday, 20 September 11
Measuring &Visualising Red
Tuesday, 20 September 11
Limited RedLearn and adapt from test metrics
Tuesday, 20 September 11
Tuesday, 20 September 11
Industrial Logic
Tuesday, 20 September 11
Industrial LogicTuesday, 20 September 11
Tuesday, 20 September 11
Tuesday, 20 September 11
Fighting Red
Tuesday, 20 September 11
‣Parallel Change
‣Narrowed Change
‣Sequence Change
‣Graceful Retreat
‣Piecemeal Change
‣Gradual Change
‣Evolved Target
‣Unified MethodsJoshua Kerievsky
Patterns
Tuesday, 20 September 11
Parallel Change
class ImageResizer
def resize(x,y) ... end
end
Tuesday, 20 September 11
Parallel Change
class ImageResizer include ThumbResizerend
module ThumbResizer def resize(x,y) ... endend
Tuesday, 20 September 11
Ship it
Tuesday, 20 September 11
But....
Tuesday, 20 September 11
Tuesday, 20 September 11
Tuesday, 20 September 11
Ship itTuesday, 20 September 11
Parallel Changeclass ImageResizer if FeatureFlipper.active?(:fast_resizer) include FastThumbResizer else include ThumbResizer endend
module ThumbResizer def resize(x,y) ... endend
module FastThumbResizer def resize(x,y) ... endend
Tuesday, 20 September 11
But... Bothversions!!!
Tuesday, 20 September 11
Ship itTuesday, 20 September 11
Parallel Change
class ImageResizer include FastThumbResizerend
module FastThumbResizer def resize(x,y) ... endend
Tuesday, 20 September 11
Ship itTuesday, 20 September 11
<%- 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 %>
Narrowed Change
Tuesday, 20 September 11
Narrowed Change
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 endend
<%- game_presenter.show_messaging? do %> <%= render :template => 'messaging' %><%- end %>
Tuesday, 20 September 11
Ship itTuesday, 20 September 11
Narrowed Change
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 endend
<%- game_presenter.show_messaging? do %> <%= render :template => 'messaging' %><%- end %>
Tuesday, 20 September 11
Ship itTuesday, 20 September 11
Sequence Change
Narrowed change
Remove control flag
Extract method
Tuesday, 20 September 11
Sequence Change
Narrowed change
Remove control flag
Extract method
Tuesday, 20 September 11
Graceful Retreat
Shave?
Please step away from the Yak... Slowly
Tuesday, 20 September 11
http://www.refactoring.com/catalog/index.html
Tuesday, 20 September 11
Learning more from Red
‣ Smart Continuous integration
‣ Failure rate
‣ Performance
‣ Flickering
Tuesday, 20 September 11
Tuesday, 20 September 11
Tuesday, 20 September 11
Evil hat
Tuesday, 20 September 11
Tuesday, 20 September 11
More Books!
Tuesday, 20 September 11
“To measure is to know”Lord Kelvin
Tuesday, 20 September 11
@josephwilk
Kiitos
Tuesday, 20 September 11
@josephwilk
Kiitos
Green
Tuesday, 20 September 11
@josephwilk
Kiitos
Green
Tuesday, 20 September 11
@josephwilk
Kiitos
GreenShip itTuesday, 20 September 11