People often complain that there is no "science" behind writing software, so therefore it is not an engineering discipline. Articles like this one do a good job showing that the other disciplines aren't nearly as cut and dry as software engineers often think.<p>Mechanical and civil engineers can lean on equations to make sure that the part will handle expected loads - but that is just step 1 of many. It's effectively the equivalent of "will it compile". After that step are many open questions around maintainability, reliability, costs, etc that have even more unknowns than the average software project. Engineering is an art based in science, no matter what the discipline.