Should Programmers Be Called Engineers? (theatlantic.com)
New submitter nervouscat writes: Game designer Ian Bogost argues that programmers shouldn't use the term "engineer" to describe themselves. He says the tech industry has "cheapened" the title, and that it's more aspirational than anything else. Quoting: "Traditional engineers are regulated, certified, and subject to apprenticeship and continuing education. Engineering claims an explicit responsibility to public safety and reliability, even if it doesn’t always deliver. ... Today’s computer systems pose individual and communal dangers that we’d never accept in more concrete structures like bridges, skyscrapers, power plants, and missile-defense systems. Apple’s iOS 9 update reportedly “bricked” certain phones, making them unusable. Services like Google Docs go down for mysterious reasons, leaving those whose work depends on them in a lurch. ... When it comes to skyscrapers and bridges and power plants and elevators and the like, engineering has been, and will continue to be, managed partly by professional standards, and partly by regulation around the expertise and duties of engineers. But fifty years’ worth of attempts to turn software development into a legitimate engineering practice have failed."
I get the point, but the definition of Engineering makes no mention of "regulated, certified, and subject to apprenticeship".
Engineering:
1.the art or science of making practical application of the knowledge of pure sciences, as physics or chemistry, as in the construction of engines, bridges, buildings, mines, ships, and chemical plants.
2.the action, work, or profession of an engineer.
3.Digital Technology. the art or process of designing and programming computer systems: computer engineering;
software engineering.
Engineer:
1.a person trained and skilled in the design, construction, and use of engines or machines, or in any of various branches of engineering :
a mechanical engineer; a civil engineer.
5.Digital Technology. a person skilled in the design and programming of computer systems: a software engineer;
a web engineer.
Not all programmes should be called engineers. Only some of them should.
When a building gets built, or a dam, or a pipeline, there's engineers, architects, brick layers, welders, and all sorts of other people involved.
When you do software, "programmers" is just a catch name all that could fit several of those archetypes -- the only thing you have to do to be a programmer is to actually code. But there certainly ARE software "Engineers" -- people whose job it is to make sure that everything the designers and programmers are individually putting together should _work_, and not fall apart, and survive in the actual ecosystem the code is released in.
Just like a good mechanical engineer shouldn't be above picking up a shovel or an acetylene torch now and again, if needed, even if it isn't still their forté, a good software engineer should probably be able to code, but that's not really their core purpose.
And as for "Engineering claims an explicit responsibility to public safety and reliability, even if it doesn’t always deliver"... next time someone fails to steal your identity on the internet, thank a programmer, a software engineer, and probably a computer scientist among others. Next time I don't die driving over a bridge I'll thank a few mechanical and civil engineers, as well as the workers that did their job putting it together.