7.1 Planning for multiple objectives
Conventional software planning is overwhelmingly ‘function’ oriented. Planning is done in terms of the functional deliverables, i.e. what the software will do, rather than ‘how well?’ (quality attributes) and ‘at what cost?’ (the resource attributes). Present day software engineering places too little emphasis on control of the critical quality and resource attributes of the system, and thereby loses control of these attributes. A simple example is the general lack of knowledge among software engineers and teachers on such topics as how to define critical attributes like ‘usability’ or ‘maintainability’. These subjects are so vital to the success of most present day software projects that ignorance of how to specify measures of them is roughly equivalent to an electronics engineer not knowing what volts and watts are.
Evolutionary delivery is based on iteration towards clear and measurable multidimensional objectives. The set of objectives must contain all functional, quality and resource objectives which are vital to the long-term and short-term survival of the system under development.