This paper is part speculative, part technical, and mostly discursive! The paper is also comprehensive and should be readable by a large fraction of the software community. The conjectures of the paper are based on more than 30 years of extensive experience in computing and software systems development: in the formal, abstract specification of software system architectures, and in their stepwise implementation. The conjecture of the paper is this: For a software house, a producer of products, to be able, in future, to compete effectively it must possess: (i) deep and broad (large scale) problem domain knowledge represented in the form of `mathematical theories of application domains', (ii) ready access to `software devices and mechanisms', and (iii) otherwise pursue development steadily using a large variety of `design calculi'. The paper will define the single-quoted concepts, and will illustrate large-scale applications.