Refactoring Workout
You want to master evolutionary design, but you never seem to find the time to work at it. You feel pressure at your day job to shove features out the door, you’re constantly fighting fires, and whenever you think about extracting this thing here and cleaning up that thing there, you feel nervous. Will somebody think you’re too slow? Will your manager yell at you?
This is not a great way to work. You need space to breathe and practise and learn.
This course helps you break through your refactoring rut. It combines some inspirational words with some clear theory about design and the chance to roll up your sleeves and just refactor. Sure, you could do this on your own, but this course acts like hiring a personal trainer: once you’ve paid for the session, it’s harder to justify skipping it and just doing whatever feels easy.
Click here to read more about this course
Audience
You want to refactor, but you don’t. You don’t take the time, you don’t know enough to get started, you waste too much energy wondering Am I doing it right?
Structure and Style
The agenda of this course:
- Welcome, Opening talk, and group discussion (40 minutes)
- Practice exercise (20 minutes)
- Break (15 minuts)
- Theory and group discussion (20 minutes)
- Practice exercises (40 minutes)
- Break (15 minutes)
- Group discussion and/or practice exercises, according to your preference (45 minutes)
- Closing and recommendations for future personal work (15 minutes)
If you get stuck, I’ll help you get unstuck. You can work on these exercises alone or with others.
You will join a Slack workspace where we can all chat together, ask quick questions, share what we learn, and generally hang out.
Objectives
In this course, you will learn…
- how to break through the refactoring rut that you and many other programmers have experienced
- how to perform microsteps and moves accurately and safely
- a proven system for building confidence, which helps you build both skill and speed, so that you can refactor the code base at your day job without appearing slower than the people around you
Topics
- The central role of chunking in building refactoring skill
- Using the Casino Technique to manufacture slack in order to let chunking happen
- A handful of refactoring practice drills (No, really!)
- How not to let the lack of tests stand in the way of refactoring where it’s needed
- And, of course: practice, practice, practice!
Preparation
Participants will need the following to attend this course.
- A working software development environment in your preferred programming language, including a personal version control system, such as
git
. - Something to write with, and something to write on. I suggest index cards or sticky notes and a notebook.
Remote Training Preparation
Please do the following at least one day before the course is scheduled to start.
- Upgrade Zoom to the most recent version.
- Check audio, video, and screen sharing on Zoom.