Kdf3chxzswokmtpwd9me survivinglegacycode 960x540

Surviving Legacy Code

Friends don't let friends get stuck in code they're afraid to change

  Enroll in Course

Looking for a plan for your company? You'll find Small Team and Enterprise plans by jumping to the bottom of this page.

Working with legacy code remains difficult. We feel afraid to change it, but sometimes we have no choice.

Learn key techniques to help you manage your risk. J. B. Rainsberger gives you a safe code base in which to experiment and his video demonstrations guide you through the confusing risk/reward decisions involved in living with legacy code. You will learn and practise several specific, safe techniques that you can start using on your own legacy code once you return to your project.

You should purchase this course if you have code that seems impossible to change, code that you feel really uncomfortable changing, or you want to avoid creating code like it in the future. J. B.'s advice transcends business domains and programming languages. Moreover, you get to watch him think through the tough choices as well as improve the design with (relative) grace and ease.

After watching a video, it's your turn to try the techniques out for yourself, and you can even ask your fellow learners for their advice. All you need is a working development environment for your favorite programming language and to install git. (Strictly speaking, you don't even need to do that, but you probably should.)

Although the demonstrations are necessarily limited to a small number of programming languages, the practice code base is available in (at least) bash, C#, C++, C, COBOL, CoffeeScript, D, F#, Go, Groovy, Java, JavaScript, Lua, Objective-C, Perl, PHP, PowerShell, Python, Ruby, Rust, Scala, Smalltalk, Swift and VB6.

You don't need to know any fancy frameworks. (That's probably part of what got you into trouble in the first place.) You don't even need testing libraries, although you really should probably find one and install it. You only need a place to watch, listen, practise, and enjoy.

Your Instructor

J. B. Rainsberger
J. B. Rainsberger

J. B. (Joe) Rainsberger is one of the "second wave" of TDD practitioners: he learned directly from the pioneers of the field. His book, JUnit Recipes, was the standard for over a decade for Java programmers who wanted to do what we today call developer testing or programmer testing. He has taught thousands of programmers around the world to bring high discipline to their work for well over a decade.

Not "just a programmer", J. B. has taught people how to manage the never-ending onslaught of work, figure out how to adopt new working practices chaos-free, understand and even grow to respect their most annoying co-workers, find the time and energy to improve as though finding loose change in the couch cushions, turn their dreary day job into a Dream Job–even how he enjoyed his first retirement from age 34 to 40! Software, life. Agile, not Agile. He's up for anything.

Read his work at jbrains.ca and as The Code Whisperer, and don't forget to sign up at sign-up.jbrains.ca—subscribers there got to sample this training material and received discounts on this training course. Don't miss J. B.'s next launch!

Class Curriculum

  Jump Into the Deep End
Available in days
days after you enroll
  Before You Continue In This Course
Available in days
days after you enroll
  Before You Rush Into Changing Code...
Available in days
days after you enroll
  Case Studies and Other Questions
Available in days
days after you enroll
  Putting It All Together
Available in days
days after you enroll
  Short Takes
Available in days
days after you enroll
  Extras and Fun Stuff
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?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.
Which programming languages does this course address?

The demonstrations are (so far) in Java, because it remains a dominant legacy language, but the practice code base is available in a wide variety of languages. The usual suspects are represented (C, C++, C#, Ruby, Python, PHP, JavaScript/CoffeeScript) in addition to some particularly fun ones (COBOL, Perl, D, PowerShell) and some that you might not expect to see legacy code written in just yet (Groovy, Go, Lua, Rust, Swift). Naturally, you'll find a VB6 version, too.

Wait a minute... isn't this just Legacy Code Retreat?!

Yes and no. Yes, the videos come from exercises that I typically use when I run a Legacy Code Retreat; however, how many of you have attended LCR and got to pair with me, huh?!

You can think of this course as snapshots of all the best moments from all the Legacy Code Retreats I have ever been to, plus all the ones I will ever go to, in a series of highlight reels, tastefully edited.

What happens when I try to practise this stuff as part of my day job?

That's up to you. I've included some information about how to start rescuing legacy code with confidence at work, but the rest is up to you. If you need my help or want to pair with me, then please ask your manager if the Enterprise plan is right for you.

Get started now!