All,
Software engineering is young in comparison to other forms of engineering. I
see software development as being non-engineering, as there is usually very
little design. Good techniques for design are I think beginning to appear,
such as UML. Once software gets designed properly, may be it will work more
efficiently and without bugs. Perhaps then, software engineers will get some
recognition as being real engineers. I think people tend to look down on
software engineers, well other types of engineers do (just my
opinion/observation).
Steve.
-----Original Message-----
From: Starlink development [mailto:[log in to unmask]] On Behalf Of
Norman Gray
Sent: 30 November 2004 12:04
To: [log in to unmask]
Subject: Nothing ever changes
Proving that nothing ever changes, depressingly: this is scanned in
from the editorial in the very first issue of `Software: Practice and
Experience', 1, pp3-4 (1971).
Does it sound familiar?
Of the items listed, possibly (1), and probably (6) are less of a
problem than they were, but the rest are just the same.
Norman
SOFTWARE-PRACTICE AND EXPERIENCE, VOL. 1, 3-4 (1971)
Editorial
It is reliably reported that the pioneers of computing were somewhat
taken aback to discover that their programs contained errors, since it
had never occurred to them that programs would not be correct. The
early days of software development were much the same: it was assumed
that a large system could be produced quickly by a small number of
people, and that it would work. Nowadays we are resigned to the fact
that whilst some software shines brilliantly, much of it emits only a
dismal glow. All too often it is delivered late, full of bugs, and is
excessively expensive. Despite this we still go on trying, and the
software scene is littered with the whitening bones of projects whose
designers, with the ever-present triumph of optimism over experience,
thought that they could do better this time. The production of
software has at present many of the characteristics of a cottage
industry: labour-intensive, producing a product of variable quality by
methods that are unbelievably unsophisticated by comparison with the
best of the products themselves. (Like applying the road-building
techniques of the Romans to the construction of a modern
super-highway.)
This is a lamentable state of affairs. The continuing development of
the application of computers in all walks of life is held back by the
difficulty of producing software. (Some might argue that this is no
bad thing!) As applications become more sophisticated and systems get
larger, the effects of bad software will be less easy to ignore since
the possibility of disastrous errors will increase. Without
overstating the case too much, we can list some of the factors that
have led to this situation.
(1) The shortage of trained personnel.
(2) The fact that the intellectual level required for the design of
software is generally underestimated.
(3) The failure of most practitioners in the field to practise what
they preach (which accounts for the persistence of that
abomination, the unannotated hexadecimal core dump).
(4) The school of management that believes that by employing twice the
number of programmers a project will take half as long to
complete. (It is more likely to take at least four times as long.)
(5) The 'not-invented-here' complex, which causes any new technique to
be viewed with suspicion and distaste.
(6) Lack of adaptability of software, which makes it impossible to
include facilities not anticipated at the start, or to adapt
someone else's program to fit into our system.
(7) Lack of communication, which leads to repetition of work that has
been done before and means that, as Hamming has pointed out,
whereas scientists make progress by standing on each other's
shoulders, software people trample on each other's feet.
SOFTWARE aims to improve this situation by a direct attack on the
communication problem, encouraging workers to write up their work in a
form that will be useful to others.
We hope also to attack some of the other problems by documenting much
of the know-how that is at present disseminated by word of mouth, and
by trying to keep the man who writes software in touch with new
techniques that are being developed which may simplify his job. But in
the long run the success of the journal will depend on its
readers. Only if sufficient people are prepared to spare the time to
record their practice and experience will SOFTWARE fulfil its aims.
THE EDITORS
--
----------------------------------------------------------------------
Norman Gray : Physics & Astronomy, Glasgow University, UK
http://www.astro.gla.ac.uk/users/norman/ : www.starlink.ac.uk
|