Entropy's inevitable increase in a closed system may be a metaphor for pessimism about the future of organized systems, but it is not a scientific argument for the impossibility of increasing organization. Artifacts such as programs are not closed systems; in this they resemble natural self-organizing systems such as life. Energy is applied from outside these systems to increase the organization of the system. The difficulty of software evolution is not even vaguely thermodynamic, since it does not lie in the inability to apply resources to increasing organization. A great deal resources are expended on the development and application of software; the problem is that existing software products fail to live up to expectations. The goal of Gwydion is minimize the cost of the larger system which uses the software product as a tool. We intend to do this partly by supporting an evolutionary lifecycle model that eases the continuing development of relevant functionality, and partly by trading hardware for manpower during early development via high-level programming and dynamism. Hypercode tools implement the evolutionary lifecycle by recording and recalling the design record, and by supporting emergent organization of the program. The real problem is brittleness: Evolved systems often seem to reach a point where they become impossible to modify because making any change causes severe ripple effects. Causes of brittleness: -- Poor system architecture and modularization allow ripples to propagate widely. -- Poor organization and design documentation make it hard to maintainers to anticipate the implications of a change. -- An evolutionary programming style creates components with initially unused generality. This generality is invaluable for later modification, but when a general mechanism is used in new ways, it is fairly common for problems in analysis, design and implementation to be discovered. Causes of complexity: -- Gratuitous (pseudo) generality -- Creeping featurism -- Architectural decay Emergent organization: -- Not free, but usually cheaper than throwing it all away and starting over again. Not only does it save software costs, but it preserves what is good about the existing system. -- Component-wise re-engineering specialization obsolete component deletion -- Architectural synthesis - develop "big pictures" with increasing explanatory and predictive power. - re-engineer component interfaces to fit the overall organization. -- Facilitated by tools for architectural analysis and ripple-effect discovery.