DEV Community

Discussion on: Software Engineering VS Civil Engineering

Collapse
 
giorgosk profile image
Giorgos Kontopoulos 👀 • Edited

Civil Engineering builds on top of principles refined and perfected over the course of 2500+ years but it still fails sometimes. Civil engineers in the early years were just called architects I believe.

That is the nature of engineering in general (software as well), we try our best to build on top of all the best known practices but its always a struggle between 3 naturally opposing forces: budget, time and quality.

Any structure in the modern age (at least in the developed countries) has strict laws that are supposed to double and triple check each and every structure before it is built. Those checks and balances are mostly in place because an error can potentially result in the loss of life. No engineer is allowed to start building if the plans don't pass from the required check pipelines (Permits from state and/or national engineering agencies).

State permits to build based on proposed plans are sort of like code reviews in software engineering (but code reviews are not always enforced)

In general most critical structure measurements for dimensions will have a safety factor of 3 included (perhaps more in more sensitive structures). For example a critical steel rod will be made at least 3x bigger than the actual calculated/needed size just to prevent any unforseen factors.

Best practice calculations have come into place after many many years of building structures and doing controlled experiments on materials. Still to this day there is big research done in order to improve materials and adjust practices which is mostly conducted from universities' Civil engineering departments with big grants/budget to back the research. The results are published in scientific journals and are peer reviewed and might take years before they are widely adapted as "best practice".

Software engineering on the other hand is more than ever trying to squeeze budget and time since most software are not life threatining if they fail. Nasa for example probably has more strict checks on when a software is good enough for production.

Software engineering has not been around for as long as Civil has. We are evolving as industry we share are successes and failures by blogging about them and others can learn but there is no need for permits before a company releases a new version thus its OK to have a 97% uptime.