Admiral Rickover's 'Paper Reactor' Memo (1953)
whatisnuclear.com
whatisnuclear.com
"Doing a Job" https://govleaders.org/rickover.htm
"When I came to Washington before World War II to head the electrical section of the Bureau of Ships, I found that one man was in charge of design, another of production, a third handled maintenance, while a fourth dealt with fiscal matters. The entire bureau operated that way. It didn’t make sense to me. Design problems showed up in production, production errors showed up in maintenance, and financial matters reached into all areas. I changed the system. I made one man responsible for his entire area of equipment—for design, production, maintenance, and contracting. If anything went wrong, I knew exactly at whom to point. I run my present organization on the same principle."
I feel like this has become the norm just about everywhere.
A common mistake many new and seasoned managers make is to delegate and then disconnect from the details. Once so disconnected, it is a one-way street where the manager progressively operates at a higher and higher level. Now they are no longer in a position to evaluate the reliability of estimates from their engineers or the output of their work. Worse, they lose awareness of the technical debt being accumulated and tradeoffs being made.
This works out fine if they are lucky to have a highly competent and conscientious team and it is a disaster otherwise. The latter is more likely in the real world especially if you are not working for a company that can afford to hire top-notch engineering talent.
Rickover's approach outlined in the above article keeps managers grounded in the reality - delegate but do not disconnect from the low-level details. The flip side is that this may come across as micromanagement (and Rickover was a notorious micromanager). Effective management is anything but easy.
I knew Rickover's leadership and management still sounded very, very familiar, way before I read this towards the end of his speach.
https://www.theenergymix.com/2022/06/29/corrosion-problem-sh...
Yogi Berra
Theory (at least in physical disciplines) is always taught with up-front statements of assumptions, what non-idealities are assumed away in order to tractably develop a theory in the first place. It's not taught by theory that theory transcends whatever simplifications were made to arrive at the the theory. Physical theoreticians do not contend that theory has no differences from reality.
If one is taught ideal spring-damper theory, they are told friction in the damper is neglected in the mathematical model. If I use this theory to size the spring and hydraulic damper for some application where the forces involved vastly outweigh the damper seal friction, it's likely this non-ideality doesn't impact the answer enough to affect my sizing.
If I'm trying to eke out every last bit of performance from the spring-damper system and minimize damper lag, then the seal friction probably does matter.
Either way, when the theory was taught, it was done by stating what assumptions were used to derive the theory. How much those assumptions affect the validity of the model for a given purpose is an "it depends" matter.
It's like "... in mice" for medical advances. Taking the next step into humans demands rigour.
You're saying the risk:consequences equation differs. I don't disagree.
He basically has some very strong opinions about the seriousness of knowing your domain and systems well. Given the risks inherent in submarine nuclear reactors, he really focuses on deeply knowing your shit, so you can model problems holistically.
How practical this advice is in a modern environment of doing more with less and selecting trade offs with less than perfect information is an open question.
That being said, if you want to reflect on your own standards for yourself and your work, it’s good.
But Rickover is the most underrated product & engineering leader, ever. So my entering assumption is that it’s worth any engineer’s time.
After nearly 50 years I can still recite my interview (both sides of the conversation) pretty much verbatim from memory — it was, let's just say, unfriendly (but he let me into the program, much to my surprise).
Rickover believed in that AND demanded technical excellence from all of the operators. Nowadays, it seems like we automate things so that we don’t have to train technical excellence.
Rickover believed that automated systems will fail in unpredictable ways, leaving the human operators as the last line of defense. The people in the organization need to understand how -everything- works so that they can respond to these failures.
But modern orgs want to automate the things so that they can cut costs. Not Rickoverian.
Nukes are expected to understand their systems (and everything that interacts with them) at a granular level. A common final board certification question is, "How does a neutron turn my rack light on?" Depending on your rate (i.e. your specific job - reactor, electrical, mechanical, chemical), you may be expected to do a deeper dive into a specific area, but everyone will be required to trace the path from fission --> heat --> heat exchange --> steam generation --> turbine --> power buses --> light. By trace the path, I mean literally sketch the systems including pumps, valves, circuit breakers, etc.
An analogous question for tech is "What happens when you type foobar.com into your browser?" This question has enormous breadth and depth: keyboard debounce circuits, CPU interrupts, TCP congestion control algorithms, DNS, LCDs, and a thousand other things I didn't discuss. You can argue that this is all trivia for most SWEs, but I counter that if you have at least a passing familiarity with the actual full stack, you're in a much better position to understand how your day-to-day work affects and can be affected by the rest of it.
For example, IOPS seem to be a mystery to a lot of devs. I'll grant you that EBS (and presumably other cloud offerings as well) makes it a fun adventure between provisioned, burstable, implicit striping, max performance/24 hours limits, et al., but the root concept remains the same - you can perform N actions/sec of block size M. Don't forget to take fsync() calls into account, as well as blocksize mis-matches.
This stuff is so abstracted away that most people never have to see it or think about it, until they do. The magic that's occurring when you add a Persistent Volume to a Pod is incredible. There's the cloud provider abstracting away the disk, controller, redundancy, failover, etc. The CSI driver abstracting away filesystem creation, expansion, etc. Kubernetes abstracting away mount points, access controls, read/write, etc. The amount of things in the path between your app issuing a write and it landing on persistent storage is breathtaking.
> if you have at least a passing familiarity with the actual full stack, you're in a much better position to understand how your day-to-day work affects and can be affected by the rest of it.
If these events have anything to do with nuclear fission, then I don't find Admiral Rickover's remarks relevant at all. Those remarks were right on the money back in 1953, but we are in 2023 now. Nobody is suggesting we can build reactors easily, or with "off-the-shelf" components, or that they'd be cheap, or can be built quickly, etc. We know reactors are complex, expensive, take a long time to build.
But reactors are not theoretical anymore. We've built hundreds of them. Of many types. Pressurized water reactors the most; they've turned out to be quite good from a number of points of view. But we've built boiling water reactors, Candu reactors, even sodium cooled reactors, reactors cooled with CO2, etc.
When people talk about building new reactors, it's not paper reactors we're talking about. It's reactors where the world has thousands of reactor-years experience. They are complex, they have to go through an arduous regulatory approval process, but they are definitely not vaporware.
So, how is Rickover's lament relevant today?
It is simple. It is small. It is cheap. It is light. It can be built very quickly. It is very flexible in purpose (“omnibus reactor”) Very little development is required. It will use mostly “off-the-shelf” components. The reactor is in the study phase. It is not being built now. On the other hand, a practical reactor plant can be distinguished by the following characteristics:
It is being built now. It is behind schedule. It is requiring an immense amount of development on apparently trivial items. Corrosion, in particular, is a problem. It is very expensive. It takes a long time to build because of the engineering development problems. It is large. It is heavy. It is complicated. "
The above still seems to be relevant, it spells out the differences between paper exercises and the finished product. On paper the many thousands of subtleties of real things are rarely taken into account
i.e. frictionless, motionless, perfectly rigid, etc., spherical cows are the norm.
Just thought it captured a timeless truth of engineering - that there are two kinds of project: beautiful clever designs that will solve all your problems (but that haven’t yet been built); and messy, expensive, late designs that are actually working.
Related to the nirvana fallacy discussed here the other day, where user acidburnNSA mentioned it - I felt it deserved a discussion of its own: https://news.ycombinator.com/item?id=36078781
You could apply this to almost any engineering endeavor.