Martin Fowler @ OOP2014 "Workflows of Refactoring"

  • Published on Jul 13, 2014
  • Over the last decade or so, Refactoring has become a widely used technique to keep a high internal quality for a codebase. However most teams don't make enough use of refactoring because they aren't aware of the various workflows in which you can use it. In this keynote talk from OOP 2014 in Munich, Martin Fowler explores some of these workflows: such as Litter-Pickup Refactoring, Comprehension Refactoring, and Preparatory Refactoring. Martin also reminds people why common justifications for refactoring will sabotage your best efforts. (This talk also has a treatment as an infodeck.)
    More information about Martin Fowler:
    More information about OOP Conference:

Comments • 53

  • Tejas Kumthekar
    Tejas Kumthekar 4 years ago +10

    This is super amazing. Strangely, it has a pretty low view count. I wish more devs watch this stuff.

  • Tri Hadiah Muliawati

    Even though I find this gem 7 years late, it is still a big help. Thank you for the superb explanation

  • Erik Ecoologic
    Erik Ecoologic 3 years ago +3

    This is a great talk on how to approach your day-to-day work. It was needed for a long time.

  • Emma Scott Lavin
    Emma Scott Lavin 4 years ago +16

    Growing up in an environment where people shamed my quest for elegance with the attitude "It ain't broke, why are you pissing me off and wasting my time and money fixing it," the case for elegance and intuition are quite refreshing.

  • Philip Starritt
    Philip Starritt 5 years ago +26

    Great talk . "Clean code allows you to go faster"

  • Tristan Bailey
    Tristan Bailey 2 years ago

    This talk was very focused and clear. Like the audience or managers already know the idea but this hammers it out with the reasons that sometimes get lost in longer talks.

  • Murat K. Gungor
    Murat K. Gungor 3 years ago

    Very well expressed! Great examples

  • Kristopehr Lindsey
    Kristopehr Lindsey 6 years ago +2

    Thank you Mr Fowler for the education.

  • Sasuke Sarutobi
    Sasuke Sarutobi 2 years ago

    Great talk by one of the titans of software engineering. Who better to discuss refactoring than the guy who originated it.

  • Jeanderson Barros Cândido

    Very wisely thoughts about why refactoring matters and how it makes difference.

  • Rick

    So this video confirmed that my workflow isn’t that messy after all. I usually start with a rough sketch of a requirement by writing/drawing them down. Then i try to build the feature asap. I more or less ignore all the rules that are in my code, which mostly results in a big class with everything in it. After everything works i than clean up my new code by refactoring it. 🙏🏻🙂

  • Yun Li
    Yun Li 2 years ago +5

    Did some note of Martin's talk as take away.

  • Steve Roger
    Steve Roger Year ago +1

    All these refactoring and TDD talks are great, but they are missing out one thing.

  • Joel Regen
    Joel Regen 5 years ago +1

    what about legacy code, where there are large swaths of bad code that warrant deliberate refactoring with no new features directly being added immediately, but would definitely prepare for easier addition of new features later.

  • Steven Volckaert
    Steven Volckaert 4 years ago +1

    Great talk.

  • Kenshiro
    Kenshiro 5 years ago +4

    Well, in my company the entire code is a complete mess - business logic in views, database calls in controllers, thousands of hardcoded values, variables are named in different languages, a lot of methods have more than 300 linies of code (some even more than 800), reusability is a foreign word and the performance is generally a disaster.

  • Channel Dad Bryon Lape

    I would like to see the likes of Martin debate the ideals of Harlan Mills directly.

  • Joel Regen
    Joel Regen 5 years ago +3

    when i was adding an icon to a list of things i found very overly complex code, but had no time to fix it. How should one deliberately schedule this work, when the management would never justify the extra time.?

  • Lepi Doptera

    Refactoring is usually the admission that you got it all wrong on your first try. I had projects where I gave up refactoring in the middle of it and I just wrote the entire thing from scratch by reusing just the bits that actually worked great. The final result was always much better than what the refactored code could have been under the best of circumstances. I am not even bothering with refactoring anymore. When I see an architectural flaw I go in and fix it completely.

  • Nikhil CSB
    Nikhil CSB 2 years ago +36

    He refactored his older talk.