Tactical Refactoring

How to write code today that you won't hate in 6 months.

  Enroll in Course
unsplash-logochuttersnap

Who wrote this terrible code? I can't understand any of it. types git blame command. Oh...it was me.
How did this even cause that bug? This part of the code is nowhere near the spot that broke?? How did it ever work?
I can make that change, but it's going to take forever, and I have to change a dozen places for it to work, and I'm pretty sure it'll break something else.
Oh no...I have to fix something in that part of the app. I hate having to go into that code. This isn't fun anymore. Maybe I should start interviewing.

Sound Familiar?

I've said or thought each of those things. You see, I've been coding professionally for more than 20 years, and I've written my share of obtuse, hard to maintain code.

In fact, I spent years of my software development career thinking that the inevitable trajectory of any software project was to start out as a pristine greenfield codebase, easy and quick to change, and fun to work with.

But over the months it would become more and more complicated and brittle with changes in one area inexplicably breaking things far afield.

And my only hope for happiness was to get a new job working on a brand new app, just to repeat the cycle.

But over the years, I’ve learned a secret.

That cycle is not inevitable. It is possible to overcome software entropy. It is possible for an app to stay pristine, easy and quick to change, and fun to work with.

It is possible for a codebase to actually improve over time.


You're Not a Total Noob!

I get it. It's not that you don't know what you're doing. You do, although you do worry sometimes that you'll never be able to code like one of them. You know, the real experts who write frameworks and libraries that you use. The ones who post tutorials on youtube and speak at conferences.

  • You actually know what good code looks like, though you aren't really sure how to get your simple, working solution from here to there.
  • You know some basic principles of writing good code like DRY, and maybe have heard of SOLID.
  • You're actually good at finding and fixing bugs, though sometimes when you fix one, your solution causes another.
  • You know you should be writing tests and maybe have even tried TDD, but maybe don't do it in that order, when you write tests at all.
  • And you've been on the job long enough to notice a pattern...the longer you work on an app, the slower your work gets, the harder it is to change, the easier it is to break.
  • You have all these bits and pieces of knowledge, but you're not sure how to put them together. How to actually do them on the job. How do super-senior developers actually do their work?
  • You've seen a lot of tutorials...do real senior devs really just type beautiful, fully-formed solutions like that??? Are they just that much smarter than you?
  • So you start to doubt your own abilities. Maybe you should try a different language.
  • What you really need is a method...a workflow that you can apply over and over again in any situation. One that will reliably take you from working (but ugly) code to maintainable code.
  • And you need somebody...a coach or mentor...to show you the ropes and demonstrate how to actually put it into practice. Someone to show you how to reliably write code today that you won't hate in 6 months.

That's exactly why I created the Tactical Refactoring course

In this course, I’ll teach you my Tactical Refactoring Method for taking working but ugly code and turning it into something that you will be happy to see in six months after you have forgotten all the context you had in your head when you created it.

What You Get

  • The Tactical Refactoring Method - my step-by-step approach for taking your code from working (but ugly) to maintainable.
  • A bit of lecture, and a ton of actual coding examples. Work through a problem and then sit by my side, and watch me refactor as I explain in depth my workflow and thought process. It's as if we were pairing and I was mentoring you personally.
  • The examples are all in ruby at the moment, because that's what I know best. But don't let that scare you away! The principles and techniques are broadly applicable and there's a no-questions asked refund policy.
  • 6 hours of video instruction
  • A complete demonstration of my full TDD workflow as I build a simple application starting with nothing but a simple set of requirements.
We're all embarrassed and confused by the code we wrote a few months ago. No more! Step takes this overwhelming challenge head on and makes it look and feel easy by breaking it all down into simple, repeatable, memorable tasks with clear explanations and a calm tone. Tame the intimidating beast of bad code and make it your beloved pet with Step's tips, tools and tactics.

- Bear Cahill, Lead Mobile Developer, Brainwash.inc. Author @ Lynda.com/LinkedIn Learning.

"From a great technical leader, developer, and human. Definitely worth it."

- Ryan Culpepper, Engineering Team Lead at ReadyRosie.

1

Module 1 is the introductory, lecture portion of the course. We'll cover the how, what, and why of the Tactical Refactoring Method. This workflow will become your superpower on your journey to writing good, maintainable code.

2

Module 2 is the first extended refactoring code example. You'll get your feet wet with the Tactical Refactoring Method, starting with the "simplest-thing-that-can-work" solution that I wrote to make the tests pass.

3

Module 3 is the second extended refactoring code example. We dive deeper into the workflow and techniques.

4

Module 4 is a bonus module. We start out with a set of requirements for a simple application to translate the color bands of a resistor into its value. No tests here. We'll write them ourselves as we first hammer out a dumbed-out, simplest-thing-that-can work initial solution that we will then refactor. You'll see first-hand my actual day-to-day, draft-to-refactored, TDD workflow.

Bonuses

  • Transcripts of every video
  • Bonus TDD: Draft-to-Refactored Module
  • Complete code repository so you can follow along with a branch for each video so you can check it out and code with me.
  • Each video is downloadable so you can watch offline.
  • Downloadable/printable Tactical Refactoring Method cheatsheet
  • Downloadable/printable 12 Bloodhound Questions cheatsheet

Your Instructor


Step Aument
Step Aument

I’m Step Aument. I’m a husband, a dad, a software developer, and a technical leader.

I’ve been a software developer (web and mobile) at companies ranging from 3 to 30,000+ employees. I’ve also done a lot of freelance work over the years. I’ve been working remotely off and on for most of my career and exclusively so for the past decade and counting. Remote doesn’t mean disengaged. The most collaborative teams I’ve worked with have been 100% remote, including near-100% pairing environments.

I have a pretty broad background including an early stint as a musician and recording studio owner, and a theological masters degree.

I am a kind, growth-mindset, high-empathy servant-leader who cares deeply about nurturing happy, effective teams of leaders and frequently shipping high-impact, delightful, maintainable software that addresses the biggest pains and goals of users.

I believe that you get in proportion to what you give.


Step Aument taught me a lot about code in my career, and now he's got a course that builds on his experience of writing code that can stand the test of time. Check it out and get your learning on! #stepissmart #code

- Jeremy Villeneuve, Sr. Consultant, IT Agile and DevOps at Halvanta and Author at LinkedIn Learning

"Step is a great teacher, if you're wanting to get better at Ruby, or just programming in general, check out his work."

- Dan Minshew, code typist, SimSpace Corporation

I really believe that this course will add huge value to your career as a software developer. But I want to make sure it's the right fit for you. So I'm going to take on all the risk. Buy the course and check it out for a full 30 days. If you are unhappy for any reason, contact me within that time period and I'll give you a full refund, no questions asked. Keep anything you've downloaded.

Course Curriculum


  Refactoring: Tournament
Available in days
days after you enroll
  Bonus: A TDD Walkthrough - Draft-to-Refactored
Available in days
days after you enroll
  Conclusion
Available in days
days after you enroll

Frequently Asked Questions


When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.
What if I am unhappy with the course?
I would never want you to be unhappy! If you are unsatisfied with your purchase, contact me in the first 30 days and I will give you a full refund.

Thanks for checking out Tactical Refactoring. I hope to see you inside the course!

cheers,
Step

Get started now!