Many of our software engineering methods have a common weakness. They are exclusively oriented towards current computer programming languages. They do not even treat software, in the broadest (i.e. non-hardware) sense of that term. They do precious little about the Data Engineering aspects of software, and do even less about less obvious concerns such as documentation, training, marketing, and motivation. A contrast to all this will be found in the Apple Macintosh design effort – outstanding amongst other reasons because everything was designed in a fully integrated manner. I often think that the real problem with software engineering is the lack of total architectural co-ordination of the system design process as a whole, of which software is merely a part.