Surviving Legacy Code
Friends don't let friends get stuck in code they're afraid to change
a failing test I left red before lunch, now I am back in, within seconds #loveit
learned from @jbrains
— дружба (@wolframkriesing) November 23, 2016
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. (Joe) Rainsberger is one of the "second wave" of TDD practitioners and Extreme Programming enthusiasts: 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 since 2003.
Since 2010, J. B. has wandered Europe teaching people how to manage the never-ending onslaught of work, how to adopt new working practices safely and effectively, how to understand and even grow to respect their most annoying co-workers, and how to find the time and energy to improve as though finding loose change in the couch cushions. He helps not just software development professionals turn their dreary day job into a Dream Job, including sharing how he engineered his first extended retirement period from age 34 to 40!
Participants receive lifetime access to this course and every future version, which includes video demonstrations of the code techniques, extensive articles about organizing the work and navigating the people, as well as a place to discuss each lesson with your fellow learners.
view the equivalent price in your currency at xe.com (then please come back!)
A thing I learnt from @jbrains last week: minimize the integration surface between classes. As in, if you only need "name" don't pass "user"
— code designer & more (@alexboly) November 23, 2016
Frequently Asked Questions
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.
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.
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 about booking remote working sessions with me.
Participants receive lifetime access to this course and every future version, which includes video demonstrations of the code techniques, extensive articles about organizing the work and navigating the people, as well as a place to discuss each lesson with your fellow learners.
view the equivalent price in your currency at xe.com (then please come back!)