[IP] More on Microsoft and software engineering
Begin forwarded message:
From: Cliff Bamford <bamford@xxxxxx>
Date: September 24, 2005 10:17:51 PM EDT
To: 'David Farber' <dave@xxxxxxxxxx>
Subject: RE: More on Microsoft and software engineering
Reply-To: bamford@xxxxxx
I'm a programmer. I also worked at MSFT for several years and
although I was
not in development, I saw the results of that division's labors early
and up
close.
I think these two anecdotes reflect the essence of Microsoft's
development
culture:
1. In a certain mainstream OS product, there was code that permitted
you to
change your password. That code allowed the choice of password
characters
that were translated in some unknown way by the input mechanism of the
actual login module. As a result, you could establish passwords that
were
not accepted at logon time (which of course meant that you couldn't
logon to
change the unacceptable passwords). Permitting two separate input
validating mechanisms in this case isn't programmer freedom, it's rank
amateurism bordering on negligence.
2. Brian Valentine, who joined Microsoft in 1987 and could arguably
be said
to have helped set the tone for much of Microsoft's development culture,
became the leader of the Windows 2000 development team in Dec 1998,
which at
that time was struggling with complex implementation issues.
Valentine set
out to relieve these stresses. He made a motto out of the phrase,
"Decisions in 10 minutes or less, or the next one is free." He
wandered the
halls and asked people, "What is a decision? It's a tool to remove
confusion! Are you confused? If so, then make the decision and let's
move
on!"
Good engineering decisions are not tools to resolve confusion. They
are the
result of good and often painstaking problem analyses and adherence to
effective design principles. Resolving design issues by hunches divined
within 10 minutes does not result in good software --- it results in the
kind of absurdity described in anecdote 1.
I'm not trying to single Valentine out -- he just happens to have
gone on
record more frequently and volubly than other MSFT project leaders.
What's astonishing is that the world has accepted, with so little
resistance, software of such low quality for so long.
Cliff Bamford
Seal Harbor
-----------
From: "Steven M. Bellovin" <smb@xxxxxxxxxxxxxxx>
Date: September 23, 2005 5:57:22 PM EDT
To: dave@xxxxxxxxxx
There was a long article on the front page of today's Wall Street
Journal
about how Microsoft is finally starting to appreciate the tenets of
software
engineering. For a long time, they didn't:
The news got even worse: Longhorn was irredeemable because
Microsoft
engineers were building it just as they had always built software.
Throughout its history, Microsoft had let thousands of programmers
each produce their own piece of computer code, then stitched it
together into one sprawling program. Now, Mr. Allchin argued, the
jig was up. Microsoft needed to start over.
The rationale within the company was classic; so were the consequences.
But as personal computers
took off in the 1980s, companies like Microsoft didn't have time
for that. PC users wanted cool and useful features quickly. They
tolerated -- or didn't notice -- the bugs riddling the software.
Problems could always be patched over. With each patch and
enhancement,
it became harder to strap new features onto the software since new
code could affect everything else in unpredictable ways.
Some people, such as Jim Allchin, realized this all along, but
couldn't get
any traction to change it. The article indicates that Gates didn't
understand the scope of the problem. Furthermore, and not surprisingly,
there was a lot of resistance from the progammers who enjoyed the
lack of
structure. Apparently, though, now that some of the new techniques and
tools are starting to show their worth, people are starting to accept
them.
I can't vouch for the accuracy of the article; I have no idea how
things are
done inside Microsoft. It is very clear to me, though, that if
matters were
as described, no one with any background in software engineering
should be
even slightly surprised by the state of Windows.
--Steven M. Bellovin, http://www.cs.columbia.edu/~smb
-------------------------------------
You are subscribed as roessler@xxxxxxxxxxxxxxxxxx
To manage your subscription, go to
http://v2.listbox.com/member/?listname=ip
Archives at: http://www.interesting-people.org/archives/interesting-people/