Robert Firth said:
> Will future software products delivered to the DoD be assessed for
> reliability, maintainability, and the other *essential* -ilitites?
> I rather think not. I see no evidence that the DoD has any competence
> in such assessments, nor much evidence it even realises it *needs*
> such competence, and very badly.
Emmett Paige said:
> THIS ONE IS INSULTING TO A LOT OF SMART,INTELLIGENT FOLKS IN DOD THAT
> HAVE AS MUCH EXPERIENCE AS THE EDITOR AND MOST OF THE ADDRESSES. IT
> STRESSES THAT THOSE WHO ARE IN DOD FOR WHATEVER REASON ARE IDIOTS WHO DO
> NOT EVEN KNOW WHAT WE NEED OR TO TEST WHAT WE BUY.
> I REJECT THAT NOTION FROM ANYONE...
If anyone should be insulted by Robert Firth's comments, I should.
I work at MITRE and am expected to be a technical expert advising the
government on exactly those issues. But I am not insulted, and in
fact I agree with Robert Firth. Why? I think of it as the problem of
the Emperor's New Clothes. A lot of the people on the government side
of the table are totally blind to the software engineering issues
involved in a procurement. As such this is not a problem, that is
what the experts are there for, in this and many other areas. But the
area of software engineering is special in that it is not particular
subtle aspects of the product that are invisible to the untrained eye,
it is the whole garment.
Now the people who do make the (final) decisions are intelligent
and willing to listen to good advice. But when quality of software
engineering is only one of the factors in a procurement, and the only
one that the final decision maker cannot see, it gets deprecated
relative to other criteria. Even when it doesn't, imagine the plight
of a color-blind Emperor whose advisors are discussing the advantages
and disadvantage of two robes, one red and one green. He can't avoid
But it gets worse. I work daily with experts in the area of
database technology. One or two of them are able to SEE software
engineering issues, but most are not. On the other hand, I rely on
them for advice on database issues--I can understand the underlying
technology, but there are lots of things immediately obvious to the
database experts that are not visible to me. Repeat for real-time,
design methodologies, requirements analysis, comm, etc. The world of
software development has grown into many specialized fields, and no
one person can be expert in all of them.
Now let's get back to the decision maker, who IS an expert in
program management, or radar or command and control doctrine, but at
best is capable of seeing the key issues in one area of software. He
convenes his panel of experts, and gets six different opinions, based
on honest differences of opinion, and expertise in different domains.
He must make the decision, but has no tools to use in evaluating the
relative importance of the experts concerns on this project. So he
makes the decision by choosing the best bid based on the criteria he
How do we fix this? There is only one way, software engineering
must become a profession. I expect that in about two years the Y2K
disasters will cause this to happen, just like boiler explosions, dam
failures, and elevator accidents caused other engineering professions
to emerge. (And lest anyone feel insulted by this--I consider myself
a professional, as most of the other readers here are professionals,
and in many cases are recognized as such, though often not as
professional software engineers.) But until and unless we have
customers on large projects who won't buy a system unless a
professional software engineer has signed off on the requirements, the
design, the development methodology, the maintenance plan, etc., we
will continue to have large software system buys that fail, and fail
So Secretary Paige, if you really want to solve the problem, and I
know that you do, the best solution for the DoD is to select a set
of individuals who can sign off on software engineering plans, and
delegate to them the authority to make these judgement calls. When
their judgement is seen to be flawed, remove them from the list. (And
I would make such authority DoD wide. If someone is fool enough to
sign a plan that several others have already rejected for good
reasons, he or she will be weeded out quickly.)
If the government contracts for a road or a bridge or a building
there is a clear distinction (at least outside the DoD) between the
authority of the contracting officer to select a vendor, and the civil
engineer who signs off on the plans. If and when the government buys
software the same way it buys bridges, the quality will increase
significantly, and both cost and failure rates will decline.
Robert I. Eachus
function Message (Text: in Clever_Ideas) return Better_Ideas is...