Reversible Engineering: Going Back in Time
Irreversibility is the enemy of the software engineer; it adds useless complexity and produces frictions that slow down the development process.
At the same time it is an inevitable artifact of development, so it has to be somehow tamed into submission. The successful process uses, without knowing it, techniques that make it mostly-reversible. It is due time that we take the effects of reversibility into account, and design our processes and tools with the explicit goal of making it easy to revert time. Software architecture, continuous deployment and decision-making will be used as case-studies.