Path: utzoo!mnetor!uunet!lll-winken!lll-lcc!ames!nrl-cmf!cmcl2!brl-adm!nlm-mcs!ncifcrf!palmer From: palmer@ncifcrf.gov (Thomas Palmer) Newsgroups: comp.software-eng Subject: Re: H/W vs. S/W Message-ID: <363@ncifcrf.ncifcrf.gov> Date: 18 Mar 88 21:25:29 GMT References: <2586@Shasta.STANFORD.EDU> <1396@ur-tut.UUCP> <3867@bloom-beacon.MIT.EDU> Organization: NCI Supercomputer Center, Frederick, MD Lines: 32 Summary: Old time software engineering In article <3867@bloom-beacon.MIT.EDU>, tada@athena.mit.edu (Michael Zehr) writes: > > So... the hardware people have to be very certain that there work is correct > because iterations through the design/test/modify loop are much longer and > more expensive. This forces them to check their work very carefully. > Programmers on the other hand can have the liberty of being careless. They > can try something and see if it works, as opposed to design something that > works and then try it to verify that it works. > Fred Brooks tells an interesting story during lectures in his software engineering course. The story involves a single-user mid-sixties machine during the hardware testing stages. Software developers were given very limited access time to the machine. They prepared for these sessions *very* carefully. They had all their test data ready; were prepared for various outcomes, and could rapidly arrive at hypotheses as to what went wrong. They had a PLAN. Obviously, at that time the goal was to maximize machine time, not people time. Now, people time is much more expensive than raw cycles. However, the discipline to design and think prior to sitting down at a 3 MIP workstation can't be overrated. I didn't mention that those early software developers had to contend with possible hardware bugs too. Can you imagine? -Tom Thomas C. Palmer NCI Supercomputer Facility c/o PRI, Inc. Phone: (301) 698-5797 PO Box B, Bldg. 430 Uucp: ...!uunet!ncifcrf.gov!palmer Frederick, MD 21701 Arpanet: palmer@ncifcrf.gov