Martin Fowler keynotes on the need for refactoring and different ways to approach it. You can view here part 2 of this presentation: http://www.infoq.com/presentations/healthy-social-environment.
Bjorn Freeman-Benson suggests “listening” to the code, refactoring it based on various factors such as the defect rate or underperforming services, providing strategies and tools.
Glen Peterson uses the Expression Problem to compare refactoring in Java, Scala and Clojure, showing how traits minimize changes in Scala when an interface changes and how Clojure avoids some issues.
Ann Robson discusses how to develop standards, approach refactoring in a safe and practical way, and track the evolution of a code with tools and metrics.
Felienne Hermans introduces BumbleBee, a refactoring and metaprogramming spreadsheets tool based on a DSL that can perform transformations against spreadsheet formulas.
Simon Thompson shows the particularities of functional programming refactoring through examples in Haskell and Erlang, and discusses what lays ahead for FP refactoring in the next 10 years.
Greg Young discusses eight lines of very common code finding in them massive numbers of dependencies and difficulties, looking for ways to get rid of them.
Sandro Mancuso runs a hands-on demo adding tests to a Java legacy code then refactoring it.
Simon Thompson introduces Wrangler, a refactoring tool written in Erlang for Erlang code and embeddable in common IDEs, such as Emacs and Eclipse.
Nat Pryce considers that we cannot write the perfect code because it is never fully prepared for the coming change, so he suggests embracing impermanence & continual imperfection.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Jason Gorman presents how developers can learn TDD to the point of transforming the knowledge acquired into habits by exercising a number of practices followed by peer evaluation.