Rethinking Maintainability
[Feb 2018] Despite near-universal support for building maintainable code, we rarely see it manifested in practice. It will be hugely beneficial if we reclaim it from the aspirational realm. As we move further into building software via iterations governed by independent (and at times contradicting) priorities and preferences, we will naturally spiral deeper into states of unmanageable code. Given the multi-dimensional nature of the problem, our conventional linear solutions would be insufficient. But if we model each iteration as a generation with a different environment, and reframe the goal as survival, then we can leverage Darwinian ideas. A successful survival pattern we can learn from is how advanced species have an deeply ingrained sense of responsibility for their future generations. This perspective can help us realize the importance of investing for the success of future developers, and leverage what is build by our predecessors. This thinking is radically different from the current mindset of local optimizations and wins or losses. As developers, we really want our work to survive, and this continuity perspective can help us attain our goals in a reliable and social way.
Comments
Post a Comment