We outline basic aspects of a method for developing systems. The method concerns a sequentially ordered set of development stages. For each stage we describe principles and techniques. The major stages include: problem delineation, domain theory, requirements capture and software development. Each stage may consist of several partially ordered related steps. Typical software development steps include the (externally observable) software architecture, the (internally structuring) program organisation, zero, one or more software design steps and the [final] code step. Development work within stages and steps are recorded in descriptions. Such documents contain both informal parts: synopsis, narrative and terminology, and formal parts. The latter are expressed in a number of relatable design calculi. \\ An emphasis of the method is its applicability to very large scale infra\-structure systems. An infrastructure system is seen as a base and a set of extensions. Each base + extension defines the terms of a sub-language --- the professional language spoken by employees of an appropriate subpart of the infrastructure. \\ The method is formulated around a concept of Problem Frames introduced by Michael Jackson.