Windows: A Software Engineering Odyssey
danluu.com
danluu.com
Currently having issues with this at works. Teams are pressured by their PM to release at certain time, and breaking thr pipleline and sending back bad code creates you lots of enemies from top to bottom.
Sometimes you just know the project is doomed by looking at how the organisation handles failure.
I really had to think deeply to actually "get" your point because my experience differs a lot:
Recently I reimplemented some convoluted feature, which is somewhat critical for some business processes. The tester found a (surprising) bug in my implementation - I indeed did something subtly wrong. After this, a next round of testing came - it looks like another class of errors was found.
Honestly, I am very thankful for these errors that were found. The test cases that the testers provided help me to make my code much better and robust.
(just to be clear: of course, normally I write code that is mostly free of errors, but this feature is, as mentioned, quite convoluted with a complicated history behind; I already warned the testers beforehand that they better test very comprehensively).
Back to topic: Sending code back to me with a clear indication where it fails will for sure not make me an enemy, because this nearly always leads to improvement in my code, which is what I actually want (on the other hand: office politics might easily make me an enemy ... ;-) ).
That alone makes it a great case study. Of course it stood on the shoulders of giants too. But today it stands alone with many design decisions. Some turned out great, some less so. But the design philosophy and quality of the kernel is very solid (something I wouldn't say about the userland work Microsoft did over the last two decades)
Product Devs Testers
======= ==== =======
NT 3.1 200 140
NT 3.5 300 230
NT 3.51 450 325
NT 4.0 800 700
Win 2K 1400 1700So much was borrowed from VMS that with a little bit of changed terminology, you could use the VMS Internals book to program NT. see: https://www.itprotoday.com/server-virtualization/windows-nt-...
It also reminds me of the settlement of the DEC v. Intel lawsuit the next year that resulted in Intel buying out DEC's semiconductor operations and DEC endorsing IA-64.
If nothing else, the DEC/Microsoft alliance eventually resulted in a promotional copy of OpenVMS and Windows NT Integration for Dummies[1] showing up in my mailbox, which as I recall was both amusing (the book's name) and informative (its contents) at the time.
[1] https://archive.org/details/openvmswindowsnt0000jimm/mode/2u...