Almost 120 years ago Konstantin Tsiolkovsky published his rocket equation:
That’s rocket science. Really. That’s all there is to it. One equation. For any given rocket the change in velocity (speed in a direction) is equal to the rocket exhaust velocity multiplied by the natural log of the ratio of the initial mass to the final mass.
Sure there are a lot of nuances, and any good physics teacher will tell you at the end of class that it isn’t quite as simple as it’s made out to be, but to a first (and probably second and third) approximation, that’s all there is to the science behind rockets.
Which is kind of funny actually. Because when we want to say something isn’t that hard we say that it’s not rocket science. A person needs a certain amount of food, water, and oxygen each day. We know what those numbers are. With that, the relative motions of the Earth and the Moon, and the rocket equation we can figure out just what we need to build to get from one to the other and back on a certain schedule. It’s just math. And not an integral in sight.
No, it’s not the science that’s hard. There are lots of things that are harder than rocket science. Like rocket technology. Just because you know how much fuel you need and how fast you need to throw it overboard doesn't mean you can build the rocket. You need the right materials. You need the right mechanical systems. The right electrical systems. All kinds of implementations of things.
And to make things harder, they’re all interconnected. The more fuel, the heavier your rocket needs to be. Which means you need more fuel. At higher pressures. And the trip is longer. So you need bigger batteries. Or lower power electronics. And so on.
And as complicated as that is, there’s an even harder problem to solve. How do you get the entire system to work together? It takes 1000’s of people years to design, build, test, and fly one of those rockets. As impressive as a Saturn V rocket is (and if you’ve ever been close to one, they are impressive), the management of the process is even more impressive. Getting that many people to work on more or less the right things, at more or less the right time, in more or less the right order. Repeatably.
Software is like that too. Computers are inherently simple. A logic gate is open or closed. 0 or 1. That’s it. Throw in some simple boolean logic. AND, OR, XOR, and NOT. Add a few simple instructions. ADD, SUB, LOAD, and STORE. It’s only when you have billions of them working together, doing all the (relatively) simple things that all the different people have gotten them to do. At the right time. In the right order. With the right feedback loops. That’s when you get a database, a search engine, or a control system that can get a rocket from the Earth to the Moon.
So the next time someone tells you that what you’re doing isn’t rocket science and shouldn’t be that hard, remind them that it’s not the science part that’s hard. It’s the engineering, the turning of science into reality, and doing it with others that’s hard.