5 ms·
I'm a really big fan of Chad Fowler's reframing of legacy: https://www.youtube.com/watch?v=qH_y45he4-o https://www.youtube.com/watch?v=qH_y45he4-o TLDW: In mos
by danabrams 4y ago
I'm a really big fan of Chad Fowler's reframing of legacy: https://www.youtube.com/watch?v=qH_y45he4-o https://www.youtube.com/watch?v=qH_y45he4-o
TLDW: In most endeavors in life, legacy is a positive thing, a bequest or accomplishment that you leave behind for future generations. Only in software do we have such a negative feelings towards "legacy"
For software to become legacy code, a system has to survive and that means it has to a) work and b) be useful. You're working on something that has stood the test of time. Just as it's much harder to restore an ancient, archeological treasure like The Colosseum, it's harder to work on legacy software... You were chosen for a task that's challenging, but important.
- yobbo 4y ago> You're working on something that has stood the test of time Like the janitor sweeping floors in NY grand central station.
- horsawlarway 4y agoI would say more like the restoration company coming in to fix the cracks, tune the escalators, remove the grime from the murals, etc... Still has dirty work involved, but it's important and meaningful. Not that I'm implying a janitor sweeping the floors isn't also meaningful (just have them stop for a few weeks and see how many people suddenly notice) but I believe legacy code maintainers often have significantly more control and leeway in how they resolve issues than they might believe at first.
- yobbo 4y agoNot arguing with this. The point is rather that the time and effort of [tuning escalators] does not contribute to career credits in the way new construction projects do.
- deleted 4y ago[deleted]
- PaulHoule 4y agoIf you're working on a new project the probability that it will ever go into production is less than 100%. Say a company can afford to pay you $150,000 for the value you deliver if the system goes into production 50% of the time they can afford to pay you $75,000. This is one reason why this kind of work is often done by an endless series of short-term freshers. A legacy system is really in front of customers and making money and has a much more certain value to the business.
- gorjusborg 4y agoThanks for sharing the video. I'll also mention that reading Michael C. Feather's 'Working Effectively with Legacy Code' changed my perception of the word 'legacy' in the context of software. Why do businesses pay all this money to maintain 'legacy' code, when they could just rewrite it in the newest, best tech? 1. Because the 'legacy' software often makes money out of proportion with its cost, either directly or indirectly. 2. Because much of the human understanding that is encoded into the legacy software is gone from the company and would be difficult, expensive, or impossible to recreate. The first point should help you feel better about working on 'old' tech. While a million developers are all cranking out react webapps that nobody will care about in a couple of years, you are working on software that has proven itself valuable to the company over time. The second point could help give you a hint at how to leverage a position maintaining legacy code into something good for you and the company. You are close to some 'secret sauce', and if you can identify and internalize what's valuable there, you become indispensable to the company. I've seen that turn out to be very lucrative for engineers if they play their cards right (a.k.a. learn things that nobody can find with any amount of searching the internet, and turn it into pay).