TechWorkRamblings

by Mike Kalvas

202205031435 Evolutionary approach to software design

An evolutionary approach to software design and development is simply the acceptance that we can't know what we'll need in the future.

Instead of trying to pin these decisions down and hit some specific goal in the far future which we'll likely miss (202204031033 Abstractions and future-coding are actively harmful), we build a system that allows for flexibility (202205031219 Agility is not equal to speed) and reliability through change (202205031449 Optimize for change).

There are many versions of an evolutionary or iterative approach to software design and development. One of the most popular over the past decade has been the Agile methodology. At their core, these approaches are simply different ways of iterating and evolving to our changing circumstances.