Académique Documents
Professionnel Documents
Culture Documents
Viewpoints
.,~,'~ ~, ~ ~: ' ~ = " ~ .... -4 :; ~ , - ' ~ ~' - ";, ~ ;~; = :~s .... :~'~_~ ~., iI ~.~j_~;.~-~
1. What is Engineering? Here are some remarks concerning this definition (I'11
discuss the terms 'designs' and 'requirements' later in
In the 1980s, Professor Billy Koen of the Department of this article):
Mechanical Engineering, Austin, University of Texas,
9 'Principles' are rules of thumb that guide the choices
defined the engineering method as 'the use of heuristics
and actions of engineers. Principles are not rigid laws.
to cause the best change in a poorly understood They reflect the experience learnt from previous
situation within the available resources'. He also engineering projects. I see professional codes of
stressed the importance of controlling risk by using the conduct playing a part as well.
heuristics of making only small changes already known
9 'In a systematic way' must include brainstorming and
to have worked in the past, of planning paths of retreat testing random insights.
in case of failure, and of feeding back results to improve
9 'Deliver' implies a process that continues beyond
future performance [1, p. 301].
design stages to project delivery stages. Success is
Here is my rephrased version of Koen's definition of
determined by successfully meeting all the specified
engineering:
requirements.
Engineering is the use of principles in a systematic 9 'Conditions of uncertainty'9 exist because we must
deal with combinations of designs being applied into
way,
ever-changing environments. The results are 'com-
to find designs,
plex to predict' and the resulting risk has to be
which deliver the requirements,
handled.
within resource constraints,
under conditions of uncertainty. I believe that such a definition of engineering is
relevant to Software engineering. However, does cur-
rent practice measure up? Are we 'engineering'? I
consider that the software engineering industry is only
just beginning to adopt the engineering practices of the
more traditional engineering disciplines.
Correspondence and offprint requests to: Tom Gilb, Result Planning
Ltd., Iver Holtersvei 2, N-1410 Kolbotn, Norway. Let me discuss the current state of requirements
Email: Gilb@acm.org.Web site: http://www.Result-Planning.com specification and give some pointers on how, I believe,
166 T. Gilb
true engineering of requirements ought to be carried requirements or alter the understanding o f what is
out. Today, too many requirements specifications con- wanted.
tain what I shall call 'false' requirements. b. Alternative better designs are not searched for.
c. The overall design cannot be optimized to satisfy a
larger set of requirements. (the true requirement and
2. What are 'False' Requirements? other concurrent requirements).
True requirements are best stated m terms of the
'False' requirements occur when the requirement speci-
desired end-state effects, not the means for getting
fication contains statements which are not really what is
those effects. True requirements are best stated at the
needed or desired. This happens when:
highest level of generality consistent with the end state
(i) the requirements are not stated in a quantified and required. This generality will permit a broader and
measurable way. more satisfactory set of design solutions to be
considered.
It is commonplace to find requirements statements,
such as 'reduced costs', 'improved management con-
trol', 'high usability' and 'increased customer satisfac-
tion', with no clear definition of what is intended; no 3. What are 'Requirements?'
homing in on the key issues to reduce ambiguity and no
quantification of the current and required levels at I map 'requirements' under the following categories:
future dates.
I once analysed about 40 design specifications for a 9 Functions: 'what' the system must be able to do.
mobile telephone. Almost all of the specifications 9 Qualities: 'how well' the function will perform.
simply included the wording 'increased ease of service' 9 Costs: what we will budget as 'costs' (any input
as one of their justifications. There was no definition, in resource: money, people or time) for creating and
writing, of the levels and types of serviceability that maintaining the functions and their qualities.
were to be aimed for. 9 Constraints: any restrictiorL on the freedom of the
Once pointed out, the mobile telephone engineers requirements or the design.
agreed with me and we spent a day defining the
serviceability requirements. 'Increased ease of service' I also differentiate between the two essentially differ-
actually expanded to approximately 18 different types ent types of requirement statement:
of serviceability, each with its own quantified require- 9 Not quantifiable, but testable for presence.
ments levels.
9 Quantifiable (on a scale of measure).
(ii) design ideas are used in place of the true
Functions are not quantifiable, they tend to be either
requirements.
present or absent. All qualities and costs are quantifi-
I have noticed that there is a strong tendency to specify able. Constraints can be of either type.
design ideas under the heading of 'Requirements'. For
example, 'an object-orientated database is required',
'an improved handbook is needed' or 'a WINDOWS 95 3.1. Functions
interface is to be provided'. Usually, there are no clear
agreed quantified requirements to even lend any Time and again, current practice focuses on specifying
support to the choice of the design. For example, the functionality. Personally, I find 'functions' of less use
requirements giving rise to the request for 'an improved when designing than the other categories. This is
handbook' are probably to do with reducing training because it is usually fairly self-evident what function-
times and improving the quality of answers given to ality is required. It is actually the other categories that
customers. But you need to explore this and quantify determine the choice of design.
the requirements. One further issue concerning functions: they should
Design ideas given as requirements must be treated only be specified in detail on an 'as needs' ba~i~. There
with caution because they lead to the following is little point specifying the current functionality in
negative effects: great detail if it is not a proposed candidate for
imminent redesign. In a fast-moving business environ-
a. The true requirement is not stated and not known. ment, change is occurring fairly rapidly and it is
Further, the actual process of determining the true essential that any study of functionality should be
requirements is highly likely to bring to light new accurate. So, unless you are planning specific system
Towards the Eng#'~edngof Requirements 167
These requirement levels can be specified for any set of 3.3. What Bse is Important about Requirements?
conditions, such as time, space (component, market)
and event. I call these conditions 'qualifiers' and Requirements are a mul.fidimensional set of end-state
enclose them in square brackets. needs, all vying for the same project resources. The fil of
For example: design to requirements is not likely to be perfect, thus
there is a negotiable 'grey area' between them. Trade-
Availability: "depends o11 Rch~abillt3 and Maintain-
offs must be made and, maybe, the requirements have
ability'
to be amended.
Reliability: It is essential to ensure you keep control of what you
Scale: Mean Time Between Failure per user in on- understand as the critical requirements. These can
line hours per user. change over time. Only critical requirements are worth
Meter: Calculate average time between reported specifying and controlling. Critical requirements, by
user failure situations. definition, are those which if not met threaten the
Plan [Release Version 1] 24 hours. survival of the entire system.
168 T. Glib