Skip to content
Create an account for full access.

Continuous everything in engineering as a techno-evolution

The limitation of the waterfall model[1] was the idea of a single one-way passage of the creators through the life cycle as a set of activities, conducted according to practices, with the target system being seen as passively undergoing this one-time creation. Therefore, in engineering, agile approaches evolved, overcoming the concept of a "waterfall" life cycle. In 2001, the Manifesto for Agile Software Development was introduced[2]. In 2017, the concept of evolvability as a primary architectural property, reflecting the idea of continuous everything, became established not only in advanced engineering practices but also in literature[3]. Architecture was finally separated from development into a separate domain, as the literature began to reflect the inevitable "productive conflicts" between architects and developers. Architecture focused on breaking down the system into minimally interacting modules to maintain the stability of the whole in an evolutionary time scale (well-known to engineers, "-ities" became architectural characteristics), while developers focused on maximizing functionality, which could lead to temporary deterioration of architectural characteristics due to the accumulation of technical debt (work aimed at maintaining selected architectural solutions but not directly affecting functionality).

The concept of techno-evolution entered engineering, but differed from the idea of biological evolution in that the meme, as an analogy to the biological genome, was not found in the system being manufactured itself but was stored in a digital form (implying precise replication without accumulating analog errors) somewhere in the systems of the creators. This significantly accelerated evolution, as a technocrab did not need to wait for an entire crab to die in order to replace an unsuccessful claw variant through mutations forming the gene's phenotype, but could do so directly. Smart mutations could also be employed, obtaining results by trying out only the claw variants that showed success in virtual modeling - and changing only the claw, not the whole crab. This high-speed techno-evolution and its results were unattainable with just a one-time offering of new features (a one-time passage of the "waterfall" for one instance of the system) or evolution with random mutations[4]. To understand how successful a system is in operation, system modeling for operational time emerged - the digital twin, reflecting not only the meme, but also the system's phenomenon. Therefore, ontologies of a system oriented towards two times (1. operation and 2. creation of one increment/feature) were found to be insufficient. Modeling tools for entire groups of systems (product lines[5], sometimes system families) coexisting as different versions of the system at one point in time were also inadequate.

The solution lay in the concept of continuous everything[6], involving endless development with continuous deployment where new and new versions of the target system with new changes were continuously introduced. The development pace maintains itself with the growing complexity of the target system through evolving architecture and changing teams working on the development (utilizing the concept of the Conway reverse maneuver[7]). In software engineering, this idea evolved within the frameworks of DevOps/SRE/platform engineering, while in traditional engineering, it is currently discussed in examples from aerospace, where testing of engines of the next version begins before the tested engines of the previous version in a rocket fly on their first mission, and each new rocket has new features and/or improved design compared to the previous one. "Continuous everything" signifies the transition of engineering to techno-evolutionary projects, employing smart (non-random) mutational/evolutionary changes of the meme (the project's information model/system design), not just phenotype changes as "on-the-spot tuning" for an instance of the system. The evolution of the system aims to be as close to endless as possible, adapting the system for as long as possible to inevitable changes in its environment, itself, and in the creating systems. Similar problems of approaching infinite time development are discussed in biology and life sciences as open-endedness[8].

This introduced a requirement in the system ontology to reflect the ideas of evolution - if there were a developed ontology of evolution, it could be used for the development of a third generation of a systems approach, which would not only consider systems as created by agents in their various project/activity roles but would also explicitly work with three times: operating the system as a phenomenon, creating an increment of the phenomenon from the meme (design and implementation), and changing the meme (evolution, continuous everything).

  1. Waterfall model, ↩︎

  2. Manifesto for Agile Software Development, ↩︎

  3. Neal Ford, Rebecca Parsons, Patrick Kua, Building Evolutionary Architectures, 2017, ↩︎

  4. Joel Lehman, Jonathan Gordon, Shawn Jain, Kamal Ndousse, Cathy Yeh, Kenneth O. Stanley, Evolution through Large Models, 2022, ↩︎

  5. Software Product Lines matures into the next generation of Systems and Software Product Line Engineering, ↩︎

  6. The Continuous Everything (CE) concept defined, ↩︎

  7. Nicole Forsgren, Jez Humble, Gene Kim, Accelerate, 2018, ↩︎

  8. Kenneth O. Stanley, Joel Lehman and Lisa Soros, Open-endedness: The last grand challenge you've never heard of, 2017, ↩︎