The Bug in the Physical Building
two-wrongs.com
two-wrongs.com
This has been on YC before: https://news.ycombinator.com/item?id=7605993
Source: http://www.onlineethics.org/cms/24528.aspx (via the Citigroup Center Wikipedia article)
https://en.wikipedia.org/wiki/Hyatt_Regency_walkway_collapse
[1] https://www.amazon.co.uk/Why-Buildings-Fall-Down-Structures/...
[1]https://www.amazon.co.uk/Forgive-Design-Understanding-Failur...
I recently did a major remodel of my home and many of the decisions made were ultimately directed by things outside my control (e.g. physics, availability of materials, environmental conditions, etc.), which resulted in me getting not exactly what I originally wanted, but yielding a result better than my original imagining.
A pain, but worth it.
Yes, incidental complexity makes us skip tests that might have been good, but it is the inherent complexity that explodes in our face when totaly apparently unrelated issues causes emergent behaviour.
It has nothing to do with that it's a young field, it's just that we can create complexity that is not bound by laws of physics.
I usually show 'business people' Conway's game of life, and they are always fascinated, and then I ask them how many rules WE have.
https://en.wikipedia.org/wiki/Citigroup_Center#Engineering_c...
http://www.slate.com/blogs/the_eye/2014/04/17/the_citicorp_t...
1. Design
2. Implementation
3. Configuration
4. Deployment
I'm sure other people might think of some more.But one of my favorite tricky ones was an apparently very clearly written Requirement. It passed all the Requirements reviews, design passed design review, code passed, etc. Then the original writer of the requirement went to use the product and said "but that's not what I meant" Sure, I implemented exactly what he very clearly said (wrote) but that turned out to be very different from what he meant to say.
It's all the squishy human-worded requirements that cause the problems.
A site that's falling over or won't load is obviously broken. One whose design subtly invites bad behavior may not be immediately evidently broken. But it's broken all the same.
A website failing due to too many users is not a bug, it's a design issue.
And remembering we both build buildings and programs acknowledging they can catastrophically fail under certain possible real world conditions, but we only minimise it.
Here they accidentally didn't minimise the failure rate enough.
Plus if it never failed in testing or real life, was it even a bug?
There's no proof they were right and it would have failed. Lots of other fails safes might have come into play.
Definitely not a bug.
Yes. I have proven that we shipped software with a bug that can crash the system given a very likely set of inputs. The fact that we never saw that particular combination of inputs was sheer dumb luck due to how it was most commonly configured.
I still call that a bug: if a user does X, where X is a reasonable thing to do, I guarantee the system will crash. That no user has done X yet does not mean it's not a bug.
> The reason I call this engineering fault a "bug" is that it arises the same way other bugs do.
The two taken together hit a corner (heh) case and give rise to a bug.