SlideShare a Scribd company logo
new bamboo
Gwyn




       new bamboo
new bamboo
new bamboo
new bamboo
new bamboo
Image: Veo_   new bamboo
Image: Davic   new bamboo
Survey Time


              new bamboo
Have you ever wanted to rewrite?
                    Yes




 Cyborgs           Liars
                            new bamboo
new bamboo
£
    new bamboo
new bamboo
new bamboo
Default: Refactor


                    new bamboo
“      the single worst
    strategic mistake that
        any software
     company can make

- Joel on Software
                             new bamboo
Business Value
Lots             Rewrite




Some
                           Refactor



None                                  Time
                                      new bamboo
Business Value
Lots


                                Oops, we're
Some                            out of time!
                 Refactor



                      Rewrite
None                                     Time
                                        new bamboo
Refactor if:
You lack a very good reason to rewrite.




                                    new bamboo
new bamboo
new bamboo
new bamboo
new bamboo
Stuff they
  have




             Stuff they
               need


                      new bamboo
Business Value
Lots             Rewrite




Some
                           Refactor



None                                  Time
                                      new bamboo
Business Value
Lots             Rewrite




Some
                           Refactor



None                                  Time
                                      new bamboo
Rewrite if:
You have a 15,000 line controller

You can drastically cut scope

You have access to the original coder

You're not going to stall the business


                                     new bamboo
Doing the wrong thing, badly.
Image: failblog.org              new bamboo
new bamboo
new bamboo
Stuff they
  have
             Stuff they
               need




                    new bamboo
new bamboo
Rewrite if:
You have a 15,000 line controller

You can drastically cut scope

You have access to the original coder

You're not going to stall the business

The requirements have changed
                                     new bamboo
An Example


             new bamboo
Stuff they   Stuff they
  have         need




                   new bamboo
Rewrite if:
You have a 15,000 line controller

You can drastically cut scope

You have access to the original coder

You're not going to stall the business

The requirements have changed
                                     new bamboo
new bamboo
Rock > Us < Hard Place
Image: Shaggyshoo                     new bamboo
How to Rewrite


                 new bamboo
“   First, solve the
    problem. Then,
       write the
         code.
- John Johnson
                       new bamboo
Image: nathas@gmail.com




         STEALTH FEATURE
         Will bomb your project without warning.new bamboo
new bamboo
new bamboo
new bamboo
Deliver early


                new bamboo
How to Refactor


                  new bamboo
Boot It Up


             new bamboo
Routes


         new bamboo
new bamboo
new bamboo
new bamboo
Know what you
  don't know


                new bamboo
new bamboo
new bamboo
gitx -- models/wtf.rb


                    new bamboo
new bamboo
sudo port install qgit


                     new bamboo
new bamboo
new bamboo
Noisy Partials


                 new bamboo
script/plugin install
git://github.com/gwynm/noisy_partials.git




                                        new bamboo
new bamboo
new bamboo
script/plugin install
git://github.com/msales/partial_dependencies




                                         new bamboo
new bamboo
Divide and Conquer


                 new bamboo
new bamboo
new bamboo
Delete and See


                 new bamboo
“   Deleted code
     is debugged
         code.
    - Jeff Sickel
                    new bamboo
Creepingup slowly
 Creep Up Slowlynew bamboo
Eject Eject Eject


git reset --hard HEAD new bamboo
Prejudice.


             new bamboo
The Database


               new bamboo
new bamboo
new bamboo
new bamboo
new bamboo
Slides, comments,
    reading list:
blog.new-bamboo.co.uk
        (soon!)

                        new bamboo
Code, jobs,
awesomeness:
new-bamboo.co.uk

(Looking for two devs -
 say "Gwyn sent me")
                          new bamboo
new bamboo

More Related Content

PDF
Century Council Plans Book, NSAC 08-09
PDF
Marina Aizen Resumé
PDF
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
PDF
W jax wenn-code altert
PDF
Version Control & Git
PPTX
[Mas 500] Software Development Strategies
PDF
Refactoring Fest
Century Council Plans Book, NSAC 08-09
Marina Aizen Resumé
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
W jax wenn-code altert
Version Control & Git
[Mas 500] Software Development Strategies
Refactoring Fest

Similar to Refactoring With Fire (20)

PPTX
Source control - what you need to know
PDF
Bamboo Continuous Integration Server - Brief
PDF
The Power Of Refactoring (PHPCon Italia)
PDF
Deployment With Subversion - Lorna Mitchell
 
PDF
Agile & ALM tools
PDF
PDF Ruby on Rails 3 Day BC
PDF
Stash - We Code Together
PDF
Atlassian - The latest and greatest early 2013
PDF
PHP Deployment With SVN
PDF
Git tutorial
PDF
Git 101 for CloudStack
PDF
Symfony meetup MyBuilder.com
PDF
Git Going with DVCS v1.6.0
PDF
Beyond The Timesheet
PDF
Droisys development process_v_1.1
PDF
Code Management (Version Control)
PDF
Writing code well: tools, tips and tricks
PDF
Web Developing In Search
PDF
Surviving a Hackathon and Beyond
PPTX
Bitbucket git-bamboo-jira
Source control - what you need to know
Bamboo Continuous Integration Server - Brief
The Power Of Refactoring (PHPCon Italia)
Deployment With Subversion - Lorna Mitchell
 
Agile & ALM tools
PDF Ruby on Rails 3 Day BC
Stash - We Code Together
Atlassian - The latest and greatest early 2013
PHP Deployment With SVN
Git tutorial
Git 101 for CloudStack
Symfony meetup MyBuilder.com
Git Going with DVCS v1.6.0
Beyond The Timesheet
Droisys development process_v_1.1
Code Management (Version Control)
Writing code well: tools, tips and tricks
Web Developing In Search
Surviving a Hackathon and Beyond
Bitbucket git-bamboo-jira
Ad

Recently uploaded (20)

PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
A Presentation on Artificial Intelligence
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPT
Teaching material agriculture food technology
PDF
Electronic commerce courselecture one. Pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
Unlocking AI with Model Context Protocol (MCP)
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Reach Out and Touch Someone: Haptics and Empathic Computing
Advanced methodologies resolving dimensionality complications for autism neur...
Per capita expenditure prediction using model stacking based on satellite ima...
Group 1 Presentation -Planning and Decision Making .pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Network Security Unit 5.pdf for BCA BBA.
A Presentation on Artificial Intelligence
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Diabetes mellitus diagnosis method based random forest with bat algorithm
Teaching material agriculture food technology
Electronic commerce courselecture one. Pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
A comparative analysis of optical character recognition models for extracting...
MIND Revenue Release Quarter 2 2025 Press Release
Ad

Refactoring With Fire