We used to build software like bridges. There was time for careful collection of requirements and the analysis of design options. But we don’t do that anymore, in part because the time we spent did not ensure we hit our targets or avoided risks. Today, most companies use some form of continuous design where the software changes in small steps, often weekly or even daily, which makes those companies responsive to environmental changes. The problem is that in just a few years the software becomes over-complicated and usually needs to be rewritten, even when the team refactors. The longer you let the team code, the worse the code gets. That’s a shame because other kinds of engineering don’t have this problem. Car engines, for example, improve every year. I’ll primarily discuss some ideas about why things work out this way and also some promising ideas for how we can practice continuous design longer, if not forever.
Invited talk at the YOW! 2019 conference series in Sydney, Brisbane, and Melbourne.
Here are the slides:
subscribe via RSS