Is Software Engineering Really Engineering?
Glenn started the Esri DevSummit Keynote asking the question "Is Software Engineering Really Engineering?" He dove into the debate between traditional Engineers, how they define their industry and what they do to establish credibility as Engineers. Glenn presented his argument that Software Development is indeed Engineering by providing the terms background, from when the term was coined during work on the Apollo mission through the development of the Waterfall and Agile method. He presented arguments for it being Development, Engineering, Architecting, and finally as an Art.
Software Engineering is not an Applied Science
He explained how Software Engineering (while it relies on mathematics and organized languages) cannot be classified as an Applied Science like more traditional Engineering fields. He discussed how although humans tend to favor the waterfall method for Software Development that this model (as stated by its creator) is inherently flawed and invites failure. Software development is iterative and as such is more of a creative pursuit than an applied science.
Glen holds the opinion that traditional engineering would be more iterative in nature and more closely reflect that of software engineering however testing is costly which is a major reason that engineers rely on math to test and prove their work. Engineering is driven by practitioners and bound by cost. Creating models of bridges and building and testing their strength until collapse is not a reasonable approach (as much fun as that would be to do!) and as such they tend to rely on math and margins while Software Engineering allows for the interactive approach in development.
So, what’s the difference? Glenn explained it as…
"Structural engineering is the science and art of designing and making with economy and elegance structures so that they can safely resist the forces to which they may be subjected,” said Glenn. “Software engineering is the science and art of designing and making, with economy and elegance, systems so that they can readily adapt to the situations to which they may be subjected.”
He closed his talk trying to make a few points, saying that an academic approach to software engineering is too prescriptive, it must be intellectual. He described how traditional engineers are trained in ethics, software engineers should start having the same training. And finally, software makes a real difference in the world and can powerfully affect real people.
Stay tuned for more updates on Esri #DevSummit2019 on www.gisinc.com/blog.