User:Jlovisa/sandbox

Emergent software development (sometimes referred to as emergent coding) is a system for software development under which applications are custom-designed and constructed by a decentralised network of collaborating and self-organising agents. The phenomenon of emergence is characterised by a higher-order complexity that emerges from a system of smaller entities, that in isolation do not exhibit such complexity. In emergent coding, such higher-order complexity is the design and construction of software itself, and the individual entities are programs (agents) that all follow the same behavioural principles; they are capable of accepting contracts (from other agents), making internal decisions, and then sending out further contracts (to more agents like themselves).

Under the emergent coding paradigm, all software applications are built from domain-specific requirements (even agents of the system themselves). This obviates the need for code maintenance via continual upkeep of existing codebases. There is no human-readable codebase; there is only a (domain-specific) map of application requirements, and a binary that exactly satisfies those requirements. If the requirements change, only the domain-specific map is altered, and the binary rebuilt. The binary is a by-product of the emergent coding process and is never adjusted.

The term emergent coding was first coined in 2016, in Code Valley: A peer-to-peer software engineering system.