Code is Your Partner in Thought
YOW! 2018 Brisbane
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.
George is a practicing software developer with academic leanings. He studied software architecture at Carnegie Mellon University and has been involved with the SATURN architecture conference for many years. He has written a book on software architecture and is passionate about software design. After years of teaching object-oriented analysis and design and building systems at financial companies, he is now a software engineer at Google. You can find him on the web at GeorgeFairbanks.com.