Article View: comp.sw.components
Article #274Re: Software quality
From: mjl
Date: Tue, 24 Oct 1989 03:22
Date: Tue, 24 Oct 1989 03:22
72 lines
4846 bytes
4846 bytes
In article <6847@hubcap.clemson.edu> billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu writes:
>From rcd@ico.isc.com (Dick Dunn):
>> As for the "management decides, engineers comply" - in some sense that's
>> what happens, but it's an incredibly poor choice of words. That is,
>> regardless of the actions, an organization which sees its process in those
>> terms is not healthy...it has management problems.
>
> No, it in fact shows that the organization IS healthy. Engineers
> are not, and should not be in the business of trying to be, responsible
> for setting cost and schedule constraints. They ARE responsible for
> providing as much information as possible to management as it weighs
> technical and economic factors in the process of making the decision.
>
> If engineers were responsible for setting cost and schedule constraints,
> they would tend to disregard economic factors and the organization would
> quickly find itself out of business. Projects would be technical works
> of genius, with complete formal specifications for each subprogram or
> data abstraction, 3-D images illustrating the design, etc., at a cost
> which would result in fatal financial illness for the company.
I can't let this one pass, if for no reason than to defend the honor of
engineers. I don't think we can (or should) use the Nuremburg defense
"I was only doing what I was told." If engineers realize that
managment's requests/requirements/demands are impossible to achieve,
they have the right -- the obligation -- to object, if for no other
reason than to protect the shareholder's interests against the
unrealizable plans of management!
Like most others who've been in this business for any time, I've seen
examples of what Bill is talking about. Still, this was usually due
less to engineers violating budget and time constraints than it was a
lack of management direction -- by which I mean setting clear goals for
what was to be done. People fritter their time away when they don't
have a clear vision of where they're going. But once goals are
established, the engineers should have significant if not primary
control over how to get there. Most fiascos I've seen have resulted
from management inability or unwillingness to face facts: what the
project would cost and how long it would take.
I have no problem with management proposing budget and schedule
constraints, but the engineering staff is best qualified to determine
whether there is a feasible solution within these constraints. And
"feasiblity" in this case includes adequate time to produce a quality
design that has a high probability of successful evolution over the
lifetime of the product. Bill's snide remarks notwithstanding,
sometimes this will mean creating a formal spec. and a variety of
related models to ensure a well-engineered piece of software.
In my experience, managers consistently underestimate software product
lifetime, possibly because they base their estimates on hardware
development models. When the hardware subsystems are no longer up to
snuff, they are are often redesigned *from scratch* using the latest
technology. However, most organizations work under the implicit
assumption that software need *never* be redesigned from scratch --
it can always be modified to meet new requirements. I have in mind
several projects I've been involved with over the past couple of years,
where the hardware base evolved in stages from first generation mini's
(like PDP8's and Nova 1200's) to 68K's and 80xxx's. While the current
processor boards and attendant interfaces look nothing like their
ancestors, the current software system architectures still reflect the
original designs (or lack thereof) from the early 70's.
For those interested in the issues surrounding long-term product
evolution, I strongly recommend Belady & Lehman's book "Program
Evolution: Processes of Software Change" (Academic Press, 1985, ISBN
0-12-442441-4). The typography is awful, and I think the proof reading
phase was skipped, but the ideas and insights are well worth the time
it takes to ferret them out.
Mike Lutz Rochester Institute of Technology, Rochester NY
UUCP: {rutgers,cornell}!rochester!ritcv!mjl
CSNET: mjl%rit@relay.cs.net
INTERNET: mjl@cs.rit.edu
Technical Details
Message-ID:
<1357@cs.rit.edu>Path:
arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!rochester!rit!mjlReferences:
<1989Oct19.042903.7809@ico.isc.com> <6847@hubcap.clemson.edu>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!rochester!rit!mjl From: mjl@cs.rit.edu Newsgroups: comp.sw.components,comp.software-eng Subject: Re: Software quality Message-ID: <1357@cs.rit.edu> Date: 24 Oct 89 03:22:18 GMT References: <1989Oct19.042903.7809@ico.isc.com> <6847@hubcap.clemson.edu> Sender: news@cs.rit.edu Reply-To: mjl@prague.UUCP (Michael Lutz) Followup-To: comp.sw.components Organization: Rochester Institute of Technology, Rochester, NY Lines: 72