Staying positive and delivering value…
I’ve been talking a lot about how difficult it is to deal with legacy code. If you’re just starting out as a hobbyist or a junior developer, I don’t want to scare you. In fact, I think you can always take a code situation and look at in a positive light.
What are some of the things that are in conflict when you inherit code that someone else wrote?
- You are eager to learn new things : This code does not demonstrate any new things
- You hold your code to a high standard : This legacy code is smelly
- You like to kick the tires of new frameworks : There’s no room for anything new in this legacy project
- You need to build skills in modern tech so you can advance your career : This code is written in X framework from 2005
- You don’t like fixing bugs : This code is full of bugs and you have to fix them
- I am sooo good with X framework : It’s going to take forever for me to learn this framework from 2005
It can be a reality check. You hear all about these cool frameworks and tools like React, .NET Core, Angular 2, Docker, etc. but your not going to be working with any of them today. How un-cool, right?…
Wrong. You’re in a great position when you’re handed old, gnarly legacy projects. That coolness will become legacy in 10 years. The languages/frameworks themselves may not become legacy, but the projects built with them will.
I believe legacy code forces you to develop and apply concepts. By accepting the reality that legacy code will always be in your future and looking at it as an opportunity, you can begin to develop essential skills like:
- how to test
- how to refactor
- how to decouple
- how to diagnose performance issues
- how to fix bugs quickly, and prevent them
- how to commit and release often
- how to write code that isn’t abrasive to what’s already there
- how to apply concepts where they will clearly provide value
I know I’ve been talking a lot about tests, but testing is a prime example of a concept where you can build expertise and apply it to whatever code situation you’re in. You can use it to generate immense value to your employer. You can be the one on your team who generates the most value because you can jump into any legacy code situation and get to work. This is because you’ll know how to write tests, refactor, and ship high-quality code - even when you start with something shitty.
Next time you’re handed a nasty, legacy project - look for opportunities to develop value-generating skills and capitalize on them. These skills are timeless, and you’ll always be happy you committed time to value-generating skills that won’t run out of fashion.
If you’ve been following along, you now know that I’m launching my ebook Intuitive Testing with Legacy ASP.NET MVC on Thursday, June 16th @ 12:00 PM.
I also promised you a promo code, valid from launch day until next Friday, June 24th. On checkout, enter bpemail to get $10 off! Make sure you use it before it expires!