The world around us constantly changes. Our programs are unable to respond and adapt to those changes by themselves. They are, after all, mere code. They are dead and have no agency. It falls on us, the programmers, to run around modifying the code as appropriate in response to the changes that occur in the world. Unfortunately, since this is a manual process and we are bound by time and economic constraints, our response is bound to be partial and imperfect. We might not immediately be aware of all the changes that we need to respond to. Sometimes we don’t know exactly how to respond. Maybe we don’t consider it worthwhile to respond to the change. The change might be incompatible with previous choices or assumptions we have made. It might take a lot of time to make the necessary changes. When there are many changes, we might lag behind. Over time, this causes problems. This isn’t just a matter of so-called technical debt. It is much more fundamental.
In this talk, we’ll take a deeper look at change and inertia in the socio-technical symbiosis of programs and programmers.