On Wed, Jul 3, 2024 at 10:46 AM Norman Wilson <norman(a)oclsc.org> wrote:
Steve Jenkin:
I've never heard of a Computer Science or Software Engineering program
that included a `case study' component, especially for Software
Development & Projects.
[...]
How about the course for which John Lions wrote his famous
exegesis of the 6/e kernel?
Norman Wilson
Toronto ON
This >>might<< be far from an OS >>developer<< perspective
[*i.e*., for a
practitioner of SW development for an OS]. However, I'm quite sure it is
the same thing. In Lion's case, he looks at the code and final system in
the same manner to examine the technical output/result (a complete
timesharing system than in "modest HW", that a single person could
understand as it was less than 9000 KLOCs). This is like an architecture
class might take apart drawings of Notre Dame Cathedral to examine how the
structure was developed to carry such huge loads of stone, wood, and lead
but still allow so much light in the building (such as the class on my CMU
roommates who became a restoration architect for buildings like 30th Street
Station in Philadelphia). Case studies (which originated at HSB and are
now de rigor in most B-schools) look at the choices made, given a set of
initial conditions to create a (business) result [positively and
negatively]. What could be learned from the conditions, choices, and
results so that feature (business) leaders can recognize what might not be
obvious? The idea is that you are teaching managers about choices
that change/predict a future outcome. This is not the same as field
practitioners trying to make a structure/machine/program to >>operate<< to
do some design function.
So, the place where a case study for SW projects (using books like Mythical
Man Month) would be helpful is an in-software engineering course. Writing
an HSB style case for something like UNIX, or Tenex or maybe Oracle;
particularly to compared to something like Brook's book would be
fascinating to read, I'm not sure Lion's text qualifies. I think the
content of such a "case" would be quite different.
Again, it comes back to what "success" is. If success is defined as winning
the market, OS/360 was a huge success, as was DOS. But neither would
I consider a success from the standpoint of building something that future
generations of programmers would want to learn to emulate.
ᐧ
ᐧ