Change: Adjustment & Maintenance
Recently I listened to a podcast on developer tea: Change through the lens of Adjustment & Maintenance. The podcast provided a unique perspective on change. I am summarizing what I learned from this podcast in this blog.
As software developers, Scale is the first thing that comes to mind when someone asks us to prepare for change. There is an implicit imagination involved in providing more features & functionality. We consider scale along all three axes, such as the number of users, team size, and product development. In reality, this is just one aspect of change that fits perfectly into our mental model. In addition, Maintenance and Adjustment are important aspects.
Whenever we think of future change, we should ask ourselves, "How do I plan for future adjustments?" & "How do I plan for future maintenance?".
Adjustment: An adjustment can be triggered by a variety of external factors. Customers' needs, market changes, and changes in the company's vision/mission. The reduction of features in order to better serve customers counts as an adjustment as well. Scale is another type of adjustment involving the increasing demand for a product. Software that pivots from its original idea is an adjustment made in response to market changes. Throughout the lifecycle of a product/software, we adapt and adjust.
Maintenance: We spend most of our time on maintenance when working on a project. Furthermore, it involves not just fixing bugs, but also improving the tooling and design philosophy. By calibrating the tooling and design philosophies early on, we can improve maintenance for our future selves. Examples of maintenance also include documentation updating, code optimization, and code restructuring, increasing the system performance. We often think that scale and maintenance are the same things but in reality, they are not. For building scalable systems, we need maintainable paths.