Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
amazon.com
Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
Michael Feathers asks what we think about when we hear the term “legacy code”: If you are at all like me, you think of tangled, unintelligible structure, code that you have to change but don’t really understand. You think of sleepless nights trying to add in features that should be easy to add, and you think of demoralization, the sense that everyo
... See moreThe whole development team didn’t understand the reasons behind the technical practices. They ended up cutting corners here or gaming the system there, creating little sub-teams—or even “teams of one”—operating with a different set of standards and an incomplete view of the whole system. This made integrating code a nightmare-like experience that n
... See moreTheir core developers were brilliant, but they also had a second level of junior developers and offsite or second-site teams that were allowed to slip into an attitude of “code monkey-ness”—micro-focused on building “just this feature,” not thinking about how that single feature would integrate into the whole and unaware that some of the things the
... See moreThere’s a difference between a recipe and a formula. You can make, say, marinara sauce from a recipe and it will taste the same as the marinara sauce made by someone else from the same recipe, but only if both cooks follow that recipe in exacting detail. But if one cook adds a little more pepper, and someone else uses more basil and less oregano, i
... See moreThey knew they had to address both their existing legacy code as well as all those bad habits they’d accumulated along the way that got them into this situation.
When I’m looking at a system that was built years ago with no documentation and poorly named variables, I sometimes feel how an archaeologist must feel pondering the mysteries of a lost and ancient civilization from a shard of pottery. It’s just so little to go on.
Software development has many contraindications where the “right” approach in one situation is the wrong approach in another situation.
As a young industry we’re still figuring things out and learning to distinguish what’s important from what’s unimportant.
A legacy is the part of the dead that remains influential.