From: grp@dmu.ac.uk (Graham Perkins)
Newsgroups: comp.software-eng
Subject: Re: Why is the Software Process NOT working
Date: 22 Jan 93 13:09:40 GMT
Organization: De Montfort University, Leicester, UK.


Good to see someone trying to place soft. eng. in context
of software culture - which has social and political ramifications
so is not entirely a matter of management practice/expertise or
technological developments.

Several problems with the culture here in UK, perhaps some
apply to US and Europe too, and maybe Japan.

1) Education not respected
We have had a harsh decade of free-market politics.  Major social
change has been engineered (i.e., M.Thatcher was indeed successful
in rolling back the frontiers of state - though what has replaced
the state is another argument altogether).  Agree or not with this
process, it cannot be denied that there has been a big cultural shift.
State-run organisations and public sector services are seen as inefficient,
clumsy, and lacking in expertise.  They have to be exposed to market
pressures and broken up wherever possible.
One of the effects of this change is that the population in
general has accumulated a dis-respect for public-service professionals:
train drivers, teachers, and dustbin-persons.  Teachers, in particular,
are despised.  Education is no longer a respectable or valued
profession in this country.  The professionals in education are blamed
for everything; from children's inability to read; to graduates'
inappropriate training for the "real world". (NB it is usually ill-trained
and poorly literate people who make such complaints).
It is all too easy for professionals in industry to ignore developments
being pushed in education.  

2) Prejudice against academic methods
BIG EXAMPLE - we have been pushing structured
programming, then modular programming, plus documentation standards
for years.  Senior programmers in industry then tell our graduates
that it's all very well in the "ivory towers", but out here in the
real word you've got to do arithmetic on your pointers and jump
in/out of routines with dexterity - because there isn't time for
anything else.  I'm sure that if you looked at what's  being
produced, you'd find that most C++ programs in industry are little
more than sugared-up assembler language programs, and bear little
relationship to OO software development, incremental design and
implementation, abstract spec. or anything else we teach.
 (I hope lots of good industrial employees are reading this, but
  you know you are in a minority when you consider the sheer
  bulk of bad software being produced)
This prejudice has always been with us, but it has been made
much worse by changing culture described in (1) above.

3) Poor communication skills
Dijkstra identified a high level of mastery over one's native
language as an essential skill for programmers.  We might add
that the same applies to analysts, designers, etc.  It is clear
that many people in this country have difficulty in communicating
their ideas or understanding other people.  The bulk of written
communication is even poorer.  One only has to look at the car 
and pram "For Sale" notices in the average Newsagent's window to
see that few people understand correct usage of upper and lower
case letters, even fewer can spell, and virtually nobody can
use punctuation correctly or construct grammatically  correct
sentences.  These criticisms, alas, apply to many people working
to quite high levels in professional employment.
Traditionally, we do not expect our scientists to be educated
in communication.  Although some graduate courses include some
element of communication skills, few make it a large and compulsory
part.  Moreover when faced with such requirements many applicants
say that they came into computing to avoid essays, and they'd rather
apply to some other college which doesn't require them to be
able to speak, read, and write.

4) Poor Social Awareness

"Social Aspects" and "Professional Skills" are seen as the "soft"
 areas of Computing, not to be taken seriously by students or
lecturers.  It is good to see the ACM/IEEE Curriculum recommendations
paying much more attention to these areas.  Currently, students
graduate with the assumption that their purpose in life is to
replace paper systems in organisations with equivalent (albeit
more "efficient") computer systems.  This seems a rather spartan
view of the subject, and is surely inadequate in large, complicated, 
interconnected societies.

5) Obsolescence
Most products (goods or services) in our society are understood
to be of short term utility only, to be replaced after 3 or 4
years at most.  There is, as yet, no resistance to this trend.
Software design is no exception.
Newsgroups: comp.software-eng