Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
Their 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 moreDavid Scott Bernstein • Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
Michael Feathers further defines legacy code as any code without tests.
David Scott Bernstein • Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
I was the third consultant they hired, and the first not to address it as a “people issue.” What I saw was a legacy code issue. Their software was brittle and hard to work with.
David Scott Bernstein • Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
And it’s not just that batching is inefficient—and we’re going to talk about the inefficiencies as we start to look at the cadence of different release cycles—it forces us to build things that are unchangeable. This is far more subtle, but vitally important.
David Scott Bernstein • Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
The fact that software engineering is not like other forms of engineering should really come as no surprise. Medicine is not like the law. Carpentry is not like baking. Software development is like one thing, and one thing only: software development.
David Scott Bernstein • Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
No one builds a house with later room additions in mind. You build the house the blueprints call for. And how often does someone add a room addition to a house? Compare that to how often a new feature is added to software.
David Scott Bernstein • Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
A legacy is the part of the dead that remains influential.
David Scott Bernstein • 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 moreDavid Scott Bernstein • Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
Software development has many contraindications where the “right” approach in one situation is the wrong approach in another situation.
David Scott Bernstein • Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
Different people have different definitions for “legacy code,” but put most simply, legacy code is code that, for a few different reasons, is particularly difficult to fix, enhance, and work with.