4 ms·
Software Engineering is an oxymoron. If it weren't, professionals in the field would be held accountable when projects go belly up, and they would be required t
by ThomaszKrueger 11y ago
Software Engineering is an oxymoron. If it weren't, professionals in the field would be held accountable when projects go belly up, and they would be required to be licensed to practice. Since there is no real understanding of what that "engineering" is, there can't be a body of standards to which qualify and license. Software Engineering is the only profession I know of that requires no formal training, no license, and has pretty much zero liability.
- tjr 11y agoThere are areas of software development that do operate more like traditional engineering, such as in avionics software development. For example, software developed for commercial avionics systems in the United States follows the guidelines in DO-178C: https://en.wikipedia.org/wiki/DO-178C https://en.wikipedia.org/wiki/DO-178C Every stage of development from writing requirements to coding to verification to selection and usage of tools (including compilers and operating systems) is reviewed across a mixture of internal reviews and external audits. There's an extensive paper trail with each subsystem (i.e., software + hardware unit) being tested and enduring a certification process before being released to the public. So while the engineers on these projects aren't licensed, the development processes and the resulting software are examined and signed off on. Does that count for software engineering? I think it does. The next interesting question, in my opinion, is, if that counts as software engineering, then what aspect could we take away or relax, and still have software engineering? Is there a graduated spectrum of software engineering? Or is there a hard cut-off point, where we can say, "yes, this is engineering, but that isn't"?
- ThomaszKrueger 11y agoThat seems to be the exception. Practically everywhere you look it is like someone else pointed out "mf* programming".
- tjr 11y agoIt is indeed an exception. But it demonstrates that software engineering does exist, and it suggests that more software could be "engineered", if we chose to do so. I suspect that reason that such engineering process isn't applied to more software is that we don't really care that much. Are we willing to accept a 10x, or 100x, increase in development time and cost in order to have a more robust iPhone game? Word processor? To-do list? Which is why I'm interested in the question, what can we take away or relax from avionics-style software development to bring better "engineering" practices to other areas of software? Maybe a 2x increase in time and cost would be acceptable...
- lfowles 11y agoIn the US, there is a software engineering PE test (although I'm sure it's next to impossible to get licensed at this point though).
- sigmar 11y ago>Since there is no real understanding of what that "engineering" is, there can't be a body of standards to which qualify and license. The definition of engineer is NOT someone licensed and liable. I'm not sure where you got that idea. The definition of engineering is the application of science and mathematics to solving everyday problems.
- ThomaszKrueger 11y agoFor a Civil Engineer to build a bridge that collapses, he has to be licensed and will be liable because there are standards to follow (strength of materials, calculus, etc). No such thing exists for software.
- tjr 11y agoNo such thing exists for software. Could you be more specific then about what part of following DO-178C guidelines and FAA certification process you find inadequate, such that, "no such thing exists for software"? I do not mean to belabor the point, but am genuinely curious what you might find to be an acceptable level of rigor for software. [EDIT: or perhaps you literally mean that no such level could possibly exist?]
- ThomaszKrueger 11y agoIt could, but it would require a compatible budget. Now how many companies that develop software (so I include the myriad of financial, healthcare, etc companies that create their own enterprise software) would do that? For example, take Bloomberg that develops the famous Terminal. How much software engineering is in that product (I can't tell, I never worked for them) but I would guess it is much less than DO-178C. So "acceptable" can mean one thing for the academic community and quite another for the real life companies.