How often do we talk about software ‘ecosystems’ or ‘environments’? Yet how often do we explore the metaphor that underlies these terms?
Ecology is the study ecosystems, looking at the interactions of living organisms and their environment. While there is some discussion within software development circles of the lessons to be learnt from systems theory, and the occasional suggestion that we consider software as organisms, it seems to me that we could learn a lot from an understanding of ecology.
Green politics is particularly influenced by ecology. (In fact, the Green Party of England and Wales was at one point called the Ecology Party.) A current concept in green thought is that of Stewardship, and I’m particularly interested in how this notion can apply to our work with software.
Stewardship gives us an alternative to the notion of private ownership. It allows to reconcile the the principle of collective ownership with a model of possession or usage. It encourages us to take care of the things we use, so that when we have finished with them, others, both now and in the future, can also use them. It encourages us to think about our contemporaries and our heirs. It enjoins us to conserve and enrich the resources we use, rather than depleting them for our short-term personal gain.
This strikes me as an intriguing alternative to the metaphor of Technical Debt. An alternative that the Campsite Rule has perhaps foreshadowed. What are the natural resources of our code? How does our work deplete, conserve or enrich these resources? How should we act if we are to be good stewards of our software ecosystems?
I look forward to exploring these ideas further.