How do you design something as complex as a submarine

Hey, 85% is not that bad, considering that mortality rate for humans in general is 100%! :smiley:

(But yeah, I get your point. And never, ever would I dare to go for a dive in one of those!)

How does a general decide what each soldier will do? He doesn’t. How does a city planner decide how each room/passage in the city will be arranged? He doesn’t.

It does pose the question of how many subunits, on average, can each level handle efficiently. In the military, it’s usually 3-5 subunits per unit so 3-5 squads per platoon, 3-5 platoons per company, 3-5 companies per battalion, 3-5 battalions per regiment then division then corps. The 3-5 trend may be because the military often has to take fast decisions un seriously suboptimal situations.

In IC design or programming, how many subsystems is each decisional level typically expected to handle? Is it mainly related to the limits of working memory?

And just to get the terminology straight, COTS in the defense world means specifically that the parts are commercially available. In semiconductors, at least. COTS stuff is often far ahead of military specific stuff, though there might be some requirements for military stuff that requires special design. Still, the impression I got from the defense guys on my committee was that there was a push to use COTS components wherever possible for cost reasons.

That’s not true at all; what did get lost is a lot of the knowledge involved in building Saturn V rockets.

That’s about it though; rocket engine design and manufacturing continued apace; the SSMEs were a post-Apollo design, as are the RS-68 engines that power the Delta IV, and a few others. Other designs have been continually upgraded- the RS-10 used in the Atlas IV upper stages, and several others as well.

Even the Saturn V engines have been modernized- the J-2X is a modern version of the J-2 from the upper stages, and there has been a lot of work done on a F-1B modernized and simplified version of the F-1 first-stage engine.

A lot of other stuff has also been continuously improved since Apollo- spacesuits, procedures for EVA, etc… were refined during the Shuttle era. Same with electronics and materials.

The only thing lacking is a heavy booster, and NASA will soon have that with the Space Launch System, which is slated to be roughly equal (either slightly more or slightly less) to the Saturn V in terms of lift capacity, and from 133% to nearly 200% the capacity of a Falcon Heavy.

So in other words, because we stopped building Saturn V rockets some 50 years ago, we’ve had to design a completely different heavy launch system to replace it (which is apparently derived from the launch system used for the Shuttle).

In any event, the Apollo program was comprised of more than just the launch system. It also included the Apollo Command Module, Service Module, and Lunar Module. To the best of my knowledge, there is no currently operational equivalent for any of these. More to the point, everyone who worked on the design of these modules has either retired or died.

In short, how long would it take to put a man on the moon, starting from today? How much of this new program would have to be designed essentially from scratch? (This is a serious question, not a rhetorical one. I am genuinely curious.)

It took about 8 years last time. I don’t see why it should take any longer now, assuming we’re willing to invest the same amount of money.

Engineering and design for any large project will have various levels of leadership and coordination. If it’s well-managed, you’ll have a bunch of teams working together and someone on charge to make the hard decisions, because engineering is, to a great degree, the science of compromise. There are space, weight, time, budget, mission, maintenance, and operational constraints, among others. You can come up with the greatest design ever for a system, but if it won’t fit or if it costs too much or if it causes interference with another system, something’s gotta give.

This is true for submarines, aircraft, amusement park rides, kitchen appliances… well, you get the idea. And it does help when you are designing a newer version of something that already exists, but the same applies to brand-new, never-been-done-before designs. Big task broken down as necessary to smaller tasks, choreographed to come together on time and on budget… theoretically. :smiley:

It took somewhat longer than this, considering that the Apollo program was directly preceded by Projects Mercury and Gemini. However, I think it would be difficult to replicate the urgency of the project today, what with the race to the moon the first time against the Soviets.

In any event, what about the second question? For a repeat manned Moon program, how much of this new program would have to be designed essentially from scratch?

From today? About 5 years, considering that they started the work on the SLS and Orion capsule/service module in 2011, and are planning an Apollo 8 style circumnavigation of the moon in 2023- with as much as a 6 person crew.

A lot is being derived from scratch- the capsule, for example, but the SLS itself derives heavily from Shuttle components- SSME engines, SRBs very similar to the Shuttle, and the tankage is pretty similar to both the Shuttle and the Delta IV.

We didn’t lose the knowledge to build rockets; we just QUIT building Saturn Vs because there wasn’t a mission for them- we focused on the Shuttle.

Related to the OP, there’s an unusual process that I’ve experienced in programming.

Computer programs, by necessity, start small. It’s nice when they can do something even at that stage (as opposed to writing a giant program that only works when fully complete), so you find some bare-minimum thing to do and do that.

As the program grows, you find that certain things become difficult, so you go through a process of refactoring. Refactoring covers a lot of ground but usually it is about generalization–taking a specific implementation and turning it into common functionality. It’s like having a hard-wired instrument on your submarine, getting annoyed that the wiring is getting convoluted, and then designing a common power and data plug system that all instruments can use. The wiring is simplified and you gain the flexibility of moving instruments around or designing new ones.

This often means growing the hierarchy–putting new (general) systems at the top that control (specific) systems at the bottom. The whole system is made modular; different subsystems don’t have to know about each other. This goes on and on until you potentially have a very large program. Ideally, one that is divided into logical groups of functionality and not a bunch of “spaghetti code”.

The strange part is this: it’s easy to reach a level of complexity where you can’t fit the whole program in your head at one time. Even though you wrote the entire thing, you can only understand a portion of it at any given moment. If it’s well architected, you can easily move from component to component, quickly getting back up to speed–but this involves losing the details on another component.

It’s weird, building something bigger than you are, but ultimately pretty rewarding. And it absolutely requires the kind of hierarchical design mentioned in this thread, because without it you could never focus on just one part of the design. It would only be possible to build things that entirely fit in your mental space, which is really a pretty small value.

But the purpose of the Mercury and Gemini projects was to learn how to get manned craft into orbit, and to have them maneuver, navigate and link up with each other. We still do all that stuff today with the ISS.

From the first manned flight (Shepard in Mercury 3) to Apollo 11 was about 8 years.

From the beginning of Project Mercury in 1958 to the Moon landing was about 11 years.

What is the significance of the first manned flight? :confused: For what it’s worth, we don’t even have that capability at this time. Aren’t U.S. astronauts currently hitching rides to and from the ISS in Russian Soyuz spacecraft?

P.S. In case it’s gotten lost in all this back-and-forth, my original point was to compare the U.S. nuclear submarine program to the U.S. manned space program.

Since we first started building nuclear submarines in the 1950s, we’ve never stopped building them.

On the contrary, the U.S. manned space program seems to have had several starts and stops, from the Mercury/Gemini/Apollo/Skylab era to the Space Shuttle era to today. We currently have no man-capable heavy launch vehicle and no operational spacecraft, and this has been the case since the Shuttle was retired in 2011.

Lately, we seem to be getting into a habit of starting programs in one presidential administration, then canceling them in subsequent administrations, like the Constellation program. This seems like a complete waste of money and effort.

(BTW, I fully admit I am outside of my field of expertise here. I know a lot more about nuclear submarines than I do about our space program. My understanding of the latter is strictly that of a layperson.)

This helps to explain why military hardware is often mind-bogglingly expensive compared to its civilian equivalent.

Kohler manufactures and sells, among other things, toilets. The performance requirements in your master bathroom are pretty mundane; a failure in service is not likely to cause a death, the loss of a capital ship, or the loss of a battle/war. If their engineering team designs a new toilet and the prototypes behave well, they fabricate molds and packaging for it and get busy cranking them out by the tens of thousands for sale across the US and beyond. The cost of developing the toilet design, and the cost of the molds, gets amortized over all of those units, adding just a few dollars to the cost of each. In the end, Kohler can sell you a nice toilet for a few hundred bucks.

Newport News Shipbuilding manufactures and sells submarines, which have toilets installed in them. The performance requirements for these toilets are pretty stringent. If their engineering team designs a new toilet, as robby notes, it’s got a lot to live up to; the combat environment is much harsher than your master bedroom, and a malfunction can can literally sink the ship, or divert the efforts of enough sailors to compromise the ship’s combat effectiveness. So there’s a lot more R&D that goes into designing it. When it comes time to actually making it, they’re not going to make tens of thousands of them like Kohler; they might make a few dozen for the submarine they’re working on. With so few units getting made it becomes harder to justify the upfront tooling costs for many of the processes, so you resort to more handwork (e.g. you’ve got a professional welder putting things together instead of a robotic welder). That means your per-unit cost will be much higher for those processes than Kohler’s per-unit cost (although still less than it would be if you used more automation). And for some manufacturing processes, the best choice is still to use mass-production techniques (e.g. for forming a comfortably curved seat, they’ll probably still machine the forms to stamp the seats out of flatstock) - so the upfront tooling cost is the same as for Kohler, but now you’re amortizing those large costs over a few dozen units instead of tens of thousands of units. so the per-unit cost will be astronomically higher for those processes. If you broke out these toilets as a line item in the contract, it wouldn’t surprise me if the cost were many thousands of dollars each.

The thing is, they just haven’t bothered to man-rate any of the existing rockets that could easily put men into orbit- the Falcon 9, the Delta IV series and the Atlas V series. Make no mistake though; rocket launching by NASA and the US hasn’t stopped at all since 2011; we’ve launched a LOT of stuff.

My suspicion is that it’s cheaper to just pay the Russians by the launch to put astronauts in the ISS via Soyuz rockets, than to go through the engineering trouble to man-rate the existing rockets.

So we haven’t lost anything technology-wise- ULA and Grumman/Orbital ATK have been hard at it for years. And so has NASA; the SLS picked up where the Constellation project stopped.

The difference, I think between this and the nuclear submarine programs is that if you shut down Electric Boat for any significant amount of time, you lose ALL the tribal knowledge and experience and that sort of thing, since it’s not like there’s a big commercial submarine market out there. Basically you either keep building nuclear submarines at a steady, if slow pace, or you lose the ability to do it in a reasonable amount of time. Same goes for spacecraft, but the advantage is that there’s a pretty solid commercial industry out there independent of NASA, so if NASA takes a break, none of that industry knowledge is lost in the interim.

I would add that if you broaden the question from how much effort it takes to design rockets or submarines, each of which poses very interesting challenges, the methods of constructing submarines and surface combatants is, IMHO, far, far more impressive than the production of a rocket.

Building a rocket is a really interesting process, but it is probably just what you expect: one group or company builds a really complex rocket engine, that is both very resilient and very precise; another group builds big fuel tanks of various sorts; another builds the metal sheath that it all goes in; and there’s quite a bit of art and science in putting all the pieces together. It’s pretty amazing to see something that weighs like 50,000 pounds (without fuel) come together like that.

But then, building something that displaces like 10,000 tons and contains a mind-boggling number of parts is just on another scale entirely. What’s more, these boats aren’t built like most people would think (lay the keel and build up until you’re done). Basically, they are built in enormous sections that each weigh a gazillion pounds, moved to the shipyard, and fit together like Legos. What’s so crazy about that? Well, so many of the pieces come already fitted with pipes and whatnot so that when the pieces come together on these giant pieces, so much of the crap inside mates up so perfectly.

Plus, on destroyers, there’s these huuuuuge jigs that basically flip the pieces upside down and sideways so that welders can do their work in the most efficient manner (e.g., they don’t have to weld above their head, just rotate a huge chunk of the ship to be upside down so that you can bend down and weld things together). How the design and construction of such big things can be done so accurately is just mind-boggling to me.

I wonder if Factorio is titled partly as a reference to refactoring (in addition to the concept of factory).

I remember a talk by a KSP developer who talked about wasting a lot of time doing a multitude of ad hoc code before they figured out that they should organize the code into functions and use those as modular blocks that could link to other blocks, much like Voyager’s processor modules which are linked up to cache modules.
There is an unobvious trade-off though: If you don’t know how big the job will be, how often some elements of it will repeat, what and how much do you organize into those modules? Organizing into modular functions is analogous to automation: It has a large fixed cost but is often only worthwhile if you’ll repeat it often, otherwise it may be best done by hand on an ad hoc basis.

And the same companies which make porcelain toilets and acrylic toilets make steel toilets. I ought’a know, I had to redesign the whole quality structure for the biggest one in the world :smiley:

That doesn’t mean the bunks need to be redesigned for each submarine. If you can use the same model which was used in a different submarine, you save time and the supplier can’t whine about needing to get the production line set up.

Could be! There is definitely an element of that in the game. A huge amount of time is spent not building things, but building systems that can build things. Eventually, you reach a point where you’re stamping down huge self-sufficient factory blocks at a time.

All true. This is an advantage a small team (particularly a single person) has–they can choose the path that their ad-hoc reorganization takes. I generally take an attitude of “0, 1, N”: that is, something can be done zero times, or once, but beyond that 2 is the same as infinity–that’s when you generalize it. Sure, sometimes you might find that you really only do something two or three times, and the generalization was slightly wasteful. But this is rare compared to the opposite case where you end up with spaghetti because you didn’t take a hard line somewhere. And sometimes there is value in generalizing something even for small numbers (in particular, avoiding things like copy-and-paste errors).

At a certain level of complexity and team size, you can’t really get away with an ad hoc attitude. You have to pick the level of generalization in advance. This has the downside of freezing the design earlier than one would like and requiring more up-front work.