“The Biological Half-Life of Software Engineering Ideas”, Philippe Kruchten2008-08-19 (; backlinks)⁠:

…Using the same general idea, I’ve often wondered about the half-life of important software engineering concepts, tools, methods, and even companies. If you were to compose a list of 100 important concepts in year T0, how many would still be important in year T0 + N?

The 5-year hypothesis: My conjecture is that the half-life of software engineering ideas is roughly 5 years. 5 years from now, 50% of the key ideas, concepts, and so on in this copy of IEEE Software will have been forgotten or seriously marginalized—not really worth teaching an undergraduate software engineering student, for example. No, I haven’t rigorously tested this hypothesis, but just for fun, I took from my shelf a few issues of IEEE Software from 1988 (this shows my age, I know). What do we have here? Lots of articles about programming languages: Fortran (okay, it’s still around in some circles, but not taught much), Eiffel (a small niche of fans), Ada (very marginal; gee, I loved that language, so here I’ll drop an emotional tear), Turbo Pascal (yep, used that), someone who wants to integrate Loops with Prolog, and a visual front end for Prolog, touted as the new great way forward.

On the operating-systems front, OS/2 is mentioned most (gone now). And we have companies buying full-page ads: Stepstone (gone), Softool (gone), and Interactive Software (morphed). On systems, the hypercube computer is the state-of-the-art, and rapid prototyping is the new “in” process (which, in some ways, survives in early iterations of agile development).

Out of 50 items I checked, maybe 3 are still important today, or at least recognizable. That’s indeed a half-life of 5 years. This made me wonder: of 200 things I learned about software in school, only one or two would still be key ideas today! What could those be? Modularity? Synchronization between processes? The Dijkstra/Parnas/Hoare stuff?