It’s Thursday stand-up, and one of your reports is being squirrely about progress on the one-point feature they started on Monday.

What if they could get themselves out of refactoring rabbit-holes, before they fell in?

Uncomfortable Refactoring is a 2-hour workshop that helps both longtime and newer programmers refactor more effectively:

  • Save time by closing off false trails to bad refactors sooner
  • Break free from programming patterns that are no longer serving you
  • Apply refactoring theory to a real world environment

Modern development is about adapting to change. All codebases make assumptions – some blatant, some subtle. No matter how cleanly your team works, evolving business needs will eventually challenge every one of those assumptions. A feature which looks simple on the surface will clash with assumptions you didn’t even realize you were making. When that happens, engineers sometimes assume that they have to choose between three days of refactoring or piling on the technical debt. Both options lead to bad results.

Cohere developed our “Uncomfortable Refactoring” workshop to explode this false binary. In it, we teach incremental, test-validated refactoring techniques that your developers can use to close off rabbit-hole refactors before they fall in. That they can use to get that unexpectedly large “one-pointer” done, in a timely manner, with serviceable code that doesn’t make anything worse.

In “Uncomfortable Refactoring,” attendees tackle adding new features to realistically bad legacy code – the kind that’s difficult to extend, but readable. Most of the workshop is spent in a faciltated mobbing session. Your team won’t only develop a common language for approaching refactoring problems – they’ll learn to apply this common language to real-world Rails codebases.

“Uncomfortable Refactoring” is offered both as a public workshop and as an internal-only workshop. The material is the same across workshops, but – due to the intense nature of the facilitated mobbing work – the public workshop and the internal-facing workshop will offer your team different experiences. While the framework this workshop teaches is valuable on its own, having your team learn it together will give them a leg up in applying it to your codebase. They’ll practice helping each other out when they get stuck, and talking with each other thoughtfully about individual code decisions.

“After learning about one-line refactoring in the refactoring workshop, I tried it at work where we’re going through a massive scary refactoring. This technique helped me have more confidence and go through faster than we would have otherwise.”
~ Jeffrey Baird

“Jennifer was a great facilitator – I really felt like I could participate, but also like I could defer to others when I didn’t feel confident. She managed to draw out an intentional, thoughtful discussion of engineering principles.”
~ Maeve Andrews

“I learned a ton from Betsy and Jennifer at their Uncomfortable Refactoring workshop. I’d encourage anyone to take it.”
~ Valerie Woolard Srinivasan

“Really enjoyed this workshop when I participated during RailsConf. Learned some new techniques for doing TDD better… and that sometimes the path to cleaner code involves things getting uglier before they get prettier again.”
~ Fiona Voss

“It helped me get a much stronger intuition about tensions in refactoring work, and be able to know when to put off code-structure decisions (man that’s uncomfortable) until I can make more assured and cohesive improvements.”
~ Roman Kofman