|
|
|
|
|
by dschuler
3018 days ago
|
|
There's a lot of debate about what kind of activity software development is. The camp that doesn't see it as engineering argues that programming is a craft, or that code is "grown". I think one of the key differentiators for engineering is that something engineered should work by design after it has been built (not including regular maintenance of a machine). A defect requires a special process to repair all built instances. In software development, defects are a regular occurrence requiring continuing changes, and requirements change as well. Of course, that's very different from a bridge or a combustion engine for example. Automated testing can help push software development _toward_ an engineering mindset. BTW - you're right that most software devs don't need licensing or formal education, but it comes off as pejorative. While those could help set standards, some of the most talented people I've worked with have neither (and some of my class mates in college don't affirm a benefit for formal training). |
|
Structural engineering is much like calling library functions with certain parameters and then making sure it all works and is safe. You know how what you are constructing differs from existing buildings and use that to decide what to do. You don't (usually) invent new ways of building things or building things that are unlike anything that was built before.Therefore such projects are well-known engineering practice, and your skill and knowledge of those practices can be tested and you can be licensed.
Some software development is like that too but most is not, you are creating new designs all the time because your software is for new purposes, not to replace something existing with perhaps a slightly improved version. It's hard to license anybody in "inventing new things".