Subject: Re: rocket science
From: Tom Lord <lord@emf.net>
Date: Mon, 28 Feb 2005 13:56:59 -0800 (PST)


   Robin:
  
   [interesting writing about robin's experience in the army]

I think there is roughly a spectrum of options between current FOSS
development practices on the one hand and milspec or nasa-esque or
CMM5 processes on the other.  It's not either or.  My pointing at
shuttle software indicates a general direction, not necessarily a
final destination.

Some areas in which the shuttle software team differs from the 
economically hot areas of public FOSS projects (according to the
article, though it jives with my experience):

~ The shuttle software business is family-friendly.  (Linus seems to
  be in a family-friendly state given the number of reports of
  interviews where the interviewer is recruited for babysitting or for
  tagging along on a sauna trip. But for the rest of us it's all too
  often expected to be a perpetual pizza-at-midnight job.)

~ The shuttle software business is woman friendly.  For us outside
  observers, this suggests a lot about the office culture there
  when contrasted with typical purely private sector offices.

~ Management of the shuttle software business is open to women.

~ The shuttle software process rejects the idea of the "heroic hacker".

~ The shuttle software process regards each change to a deployed system
  as a maximally serious activity.  Certainly a change should not be made
  at any "last minute" or without conscious, deliberate consideration
  by at least several people.

[I lump those above points under the general heading that the shuttle
 process is far more worker-friendly.  As such, it empowers workers to
 live up to their potential.]

~ The shuttle software process rejects the idea that developers can
  be objective about the quality of their product.

~ The shuttle software process is based entirely on economic exchange:
  they do not rely on "volunteers".

~ The shuttle software process emphasizes careful and complete 
  documentation.

~ The shuttle software process develops under sharp constraints
  about the the resource requirements of the software they write
  (every byte, and a great many of the CPU cycles counts).

~ The shuttle software process is, in general, agressively introspective
  about the quality of itself.   It is, intrinsically, an intelligently
  self-improving process.

~ The shuttle software process produces only software which is well
  understood, completely, by a substantial number of people.

One could extend the list all day.  The point being: when people
know they are doing life critical development, contrasted with
situations when people arbitrarilly assume they are not doign life
critical development, they organize (at least in the case of NASA) 
along radically different lines than we see in the FOSS world.

Perhaps, as recognition spreads that most of us in the FSB world are
involved in life critical development, we'll start moving in the
direction of the shuttle software program.

-t