[In person! in SF!] Real World Refactoring on Rails

Event Information

Share this event

Date and Time



Financial District, a few blocks from the Embarcadero + Montgomery BART stations

San Francisco, CA 94111

View Map

Event description


This is the extended version of our regular online Real World Refactoring workshop. This semi-public workshop will be held onsite at few blocks from Embarcadero BART (near the Transamerica Pyramid). If you've been wishing you could attend an in-person event instead of our online event, or wish we went into more detail -- this event is for you!

If you're looking for the 2-hour online version, use this registration page instead: https://www.eventbrite.com/e/real-world-refactoring-on-rails-online-tickets-51822540614

Have you ever found yourself needing to implement a new feature, but unlike previous feature requests, this one gets all awkward when you try to work it into your existing codebase? When this happens, you know you need to refactor, but it's not clear the best way to do so -- or how to refactor without losing several days to it.

Or maybe you went through a few tutorial exercises over the weekend, and Monday morning when you looked at your work code you realized it's hard to see how the little practice classes you made correspond to your real world monolith sitting on multiple frameworks. How do you take those lessons into your legacy codebase?

Whether you're a longtime or newer programmer, if these situations sound familiar, this workshop is for you!

You'll learn techniques to refactor more efficiently and naturally, that can carry through with you into the real world. You'll learn how to:

  • 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

Along the way, we'll explore some of the uncomfortable moments in refactoring (like when you get that horrible sinking feeling because you can't see anything better than writing repetitive code). You'll also learn about and practice a few programming tools you can take with you:

  • TDD's Red/Green/Refactor cycle
  • Single-line changes
  • Mobbing for alignment

After this workshop, you will be better prepared to change your codebase to be easier to work with. You'll have the tools to tackle a refactor in a way that won't leave you surounded with broken code blobs the moment your boss walks over and asks how things are going.

This is a hands-on workshop, and we will be limiting the number of attendees so that everyone will be able to participate fully. We'll do our best to give you space to speak up without making you feel put on the spot. Come prepared to engage!

What is mobbing?

Mob programming is one computer, many pairs of eyes and hands. It's an opportunity for many people to grapple with the same concepts together, to be smarter as a group than each on their own. It's pulling code into a design session, tactile interaction at an architecture review.

Why should you mob?

Mob programming allows you to build alignment around what you're trying to accomplish as a group. Does everyone understand the business problem? is everyone familiar with the time constraints? does everyone know the plan for going from where you are to where you want to be?

Mob programming allows you to surface these answers and make it more likely everyone on your team has the same answer to what they'll be doing.

What makes mobbing hard? what makes Uncomfortable Refactoring's mobbing better?

It can be easy to leave teammates behind while mob programming. Once a few people see the answer they may run ahead towards it, while everyone else feels embarrassed about not knowing what's going on. When this happens, everyone will give you a different answer about what they think the team goal is. Group alignment has been lost.

In Real World Refactoring, we *facilitate* our mob programming session. This means we keep an eye out for stragglers, and encourage the group to move forwards towards their goal while helping anyone who's been left behind. These regular reinforcements of what we are working towards (and why!) help not just the stragglers, but also help everyone reinforce the lessons from the workshop.

Read more about mobbing and the workshop here: https://twitter.com/betsythemuffin/status/1000153522288152576

Mobbing sounds awesome! is there ever any reason to not mob?

Mobbing *is* awesome! We'll be mobbing through the entirety of the workshop, but have found in our real world coding that there are natural stop points where everyone feels alignment has been achieved, and no one is likely to drift away from the group's agreed-upon goals. At that point it can be helpful to break up into singles or pairs and build up multiple streams of work.

Workshop Facilitators

Betsy Haibel and Jennifer Tu are two-thirds of Cohere, LLC. They created Real World Refactoring because they enjoy sharing the uncomfortable moment when you realize repetitive code is sometimes the best answer -- and that beautiful moment when you see the potential for change that lies in that repetitive code. Real World Refactoring was originally titled Uncomfortable Refactoring and debuted at RailsConf 2018 in Pittsburgh.

Interested in bringing this workshop or one of our other workshops to your team? We love going in-house, customizing our content to the unique challenges of your team, and leaving behind a shared vocabulary and framework for your team to apply together. Please get in touch (email us at info@wecohere.com or use the form on our website) and let's chat about where your team is and where it's going to go!

Share with friends

Date and Time


Financial District, a few blocks from the Embarcadero + Montgomery BART stations

San Francisco, CA 94111

View Map

Save This Event

Event Saved