HACKER Q&A
📣 cedws

Can software engineering become a hard science?


I like to read and watch about engineering and aviation. I'm often left in awe at the level of precision and thought that appears commonplace in these fields. Things aren't left to guesswork, everything is carefully planned, processes are designed and respected. And I wonder if software engineering can ever be like this.

Sure, those fields make mistakes, but they learn and improve. As a result, barring phobias, you can get on a plane that travels at 1000kph and feel safer than you would in a car.

Could software engineering ever look like aviation? Is it possible to write software with such thought and care that it will live 100 years? Could we ever make it commonplace that a backend service has an uptime of 99.99999%? Does it make sense to have 'margins of safety' for systems to perform beyond expectations? Can we hold ourselves responsible for consequences, and learn together when it goes wrong?

To me, it feels like software right now is as hard of a science as psychology. So practically not at all. Much like psychology, it's different to reproduce results, even in a strictly technical sense. Building software also appears to me to be strongly influenced by sociological effects.

I think many will agree that CS education does very little to aid in the development of software in the real world. I've heard of Software Engineering courses but I don't really know what they involve, or whether they would broadly benefit the industry for developers to have.


  👤 FrankWilhoit Accepted Answer ✓
Hoare and Wirth and Knuth and Dijkstra and many others are with you. But they all also understood the role of creativity; and more importantly, no one will be willing to bear the cost until it is too late.

Someone once said that there are two kinds of software companies: those that can buy their salespeople plane tickets and those that cannot. Many insights follow from pulling that thread.


👤 sfmz
The more consequential the failure, the more rigorous the software engineering. afaik Space/Rocketry/Medicine consists of rigorous engineering, because the failure modes end in death.

👤 Haeuserschlucht
Because mistakes can be easily rectified, IT does not have those strict requirements. Just having to unsolder electronics makes you plan extra tight next time. So the reason for this is that you only get one shot, do not miss your chance to blow, sometimes this opportunity comes once in a lifetime, when it's about life or death in aviation. Mistakes kill people. I like the fact that you can rectify software mistakes easily, it can give it a playfulness that other branches cannot offer.

👤 chrism238
Your final paragraph appears to equate CS degrees (education) and degrees genuinely focused on SE. CS and SE are very different fields.