4 ms·
It seems to me that it's a fundamental failure of software engineering culture. The number one rule for engineering domain applications is to understand the do
by movpasd 2y ago
It seems to me that it's a fundamental failure of software engineering culture.
The number one rule for engineering domain applications is to understand the domain.
I would blame the perennial neophilia and lack of (or inadequate adoption of/respect for) standardized texts in the industry. Though, to be fair, a lot of this does come down to the rapid changes in the technology.
Iterative development is necessary for software, of course, but this should be understood as a necessity due to the medium, not as an excuse for skipping research and design. A lot of these domains (especially something as critical as accounting) should be solved problems.
- arethuza 2y agoFrom what I can see "software engineering" for the most part isn't really "engineering" in the sense that a PE or CEng would recognise?
- pjmlp 2y agoIt is partially on the countries where one cannot just slap engineering on their job title as they feel like. Where signing off contracts does have some implications beyond "it works on my computer".
- BartjeD 2y agoEngineering is a professional activity, a legal title is just a moat, it doesn't mean that it is Engineering, just a protected profession of some sort. In al seriousness, Engineering is about verifying systems to make sure their lifespans and failure modes are known, up front. This has a legal dimension and a practical one. Legally you can make people liable for unreliable systems. But you can also be liable for failure to maintain properly, or failure to warn about impending calamity. Because it's all documented and verified. Practical you can live worry free in earthquake and flooding proof buildings, trusting in the diligence of Engineers, and maintenance workers, because they and others have liability imposed on them. For software this is only the case in a few sectors. For buildings in all cases. Not comparable.
- pjmlp 2y agoWhen society depends on software is more than comparable. Any life can be absurdly destroyed via malware, security exploits, accounting gone wrong, a database deleted in production,.... People also don't put up with faulty products, why should computing be an exception, shitty ship now fix later culture? And above all, calling oneself "engineer" out of a bootcamp, has nothing to do with Engineering.
- cedws 2y agoThis is not a story of a failure in software engineering. Shit happens, no system is 100% reliable. The failure lies in how management handled it (pretend there’s no issue, don’t launch an internal investigation, blame others). No doubt management also oversaw the development of the system and rushed it to production. A healthy culture should accept failure as inevitable and learn from it when it occurs. It should also listen to the people who know best: the engineers who built the thing. You know, like the aerospace industry. The damage that morons in suits do in pursuit of their bonus cannot be overstated.
- nuc1e0n 2y agoThere's also the issue where public software engineering related projects are too broad in scope and poorly defined. Rather than making small projects that are useful and then expanding upon them the trend is to specify massive nationwide databases and then just throw money at them, often using 'Big bang' deployments. These are so called because you deploy them and then there's a large explosion ;)
- bobnamob 2y agoI'm not sure I entirely agree in this circumstance. Normally I'd give the developers the benefit of the doubt. But the sheer number of issues, and how fundamental some of them ~were~ are[1] leave me little room for sympathy. https://en.wikipedia.org/wiki/British_Post_Office_scandal#Problems_with_the_software https://en.wikipedia.org/wiki/British_Post_Office_scandal#Pr... Transaction idempotency is such a basic property for a financial system that I struggle to believe that Horizon was tested in any meaningful way. "the engineers who built the thing" (Gareth Jenkins) are also under investigation for perjury. [1] Horizon is still in use, in its buggy state, with replacement scheduled for 2030....
- cedws 2y ago>Normally I'd give the developers the benefit of the doubt. But the sheer number of issues, and how fundamental some of them ~were~ are[1] leave me little room for sympathy. The developers were just doing their job. It's management's responsibility to construct a functioning system of checks and balances and understand the limitations of their systems, both of which they failed to do. If it weren't for their hubris the fundamental issues with Horizon could have come to light much earlier. Let's also not forget that the reason executives are compensated well is for them to take accountability in situations like this.
- pera 2y agoSoftware engineering culture is still in a very primitive phase: just take a look at the comments of the category theory submission currently in the front-page https://news.ycombinator.com/item?id=42291141 https://news.ycombinator.com/item?id=42291141 Try suggesting to use a tool like TLA+ to validate some complex design and the most likely scenario is that people will laugh at you, even if it's a critical component for the business. Most decisions in the industry are based on weak anecdotes and unfounded opinions of underserved "authorities".