Late phases and ecology

In this post I’d like to reuse one of my previously written pieces. I wrote it as part of a take-home exam for a software architect training program at Siemens[1]SSWA, Senior Software Architect training program. I believe ;-) the copyright is still with me.. We were asked to choose and elaborate on a quote about “late phases”, i.e. the stuff that happens to your software after it is released.

The thing the ecologically illiterate don’t realize about an ecosystem is that it’s a system. A system! A system maintains a certain fluid stability that can be destroyed by a misstep in just one niche. A system has order, a flowing from point to point. If something dams the flow, order collapses. The untrained might miss that collapse until it was too late. That’s why the highest function of ecology is the understanding of consequences.
— Pardot Kynes in “Appendix I: The Ecology of Dune”, Frank Herbert, Dune

This quote is from Pardot Kynes, a fictional ecologist who seeks to transform the desert planet Dune into a forest planet. The foremost reason I chose this quote is because of the system emphasis. If the understanding about a system is inadequate, no change can be assessed regarding its impact. An anti-pattern I observed a few times is a “change control board” meeting where the impact of a change is assessed based on the number of code lines changed or similar aspects. As Kynes points out, even if the change is in a niche, maybe not even a code change, but a configuration change, it can still affect the whole system, and the order collapses. Thus, building, distributing and maintaining the adequate understanding of the system, for all involved stakeholders at the necessary levels of detail, is a key challenge of late phases. The architect should understand the consequences on a high-level, and should relay this knowledge to other stakeholders who are working on the system during the late phases. As systems grow into systems of systems, ecosystems or web of systems, one architect’s capacity will not be sufficient to assess the consequences of a single change, either. So, multiple architects working on the system face the challenge of developing and maintaining a collective and consistent understanding of the system.

Another reason why I chose this quote is the increasing criticality of software-intensive systems, analogous to a natural ecosystem, which is vital for any living beings in it. As Grady Booch said, software has become part of the fabric of our society. Today, many mission-critical systems that cannot be easily shutdown, or even rebooted, are already in place, as well as support critical systems like industrial automation systems, financial systems, urban infrastructures etc. The complexity, scale and criticality of these systems are continuously growing; take for instance the emergence of SW ecosystems. With increasing criticality, complexity and scale, the possibility of throwing away old systems, and implementing new ones (initial development rather than maintenance) is diminishing. Thus, sustainability, maintainability and evolution are increasingly more popular in software teams, and all this revolves around “understanding of consequences” of the changes.

<SPOILER>

After generations, Kynes’ vision of forest planet Dune was realized, akin to bringing a software system with a high level of technical debt to a high-quality state after many years of persistent work. However, this transformation had the undesired effect that the only source of “Spice” (a special material produced only in Dune vital for space travel etc.) was depleted. This demonstrates another challenge concerning late phases: even the perfect long-term vision for a system may have undesired and hard-to-see consequences.

</SPOILER>

Footnotes

Footnotes
1 SSWA, Senior Software Architect training program. I believe ;-) the copyright is still with me.

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.