3 ms·
I don't know if I'm making this up, but doesn't overengineering classically refer to the engineering practice of having wide safety margins or "unnecessarily" h
by mbrock 9y ago
I don't know if I'm making this up, but doesn't overengineering classically refer to the engineering practice of having wide safety margins or "unnecessarily" high performance?
Like, making the bridge twice as strong as it should need to be, or making the car faster than it's wise to go.
That's different from typical software overengineering, which usually doesn't make the product measurably better, just more complicated.
- psyc 9y agoI think it does typically mean that in traditional engineering. There's a disconnect because engineering isn't the greatest analogy for software development.
- creatornator 9y agoI think even in software engineering, overengineering can be measurable. For example, let's say an API has an endpoint that responds on average within 10 ms, but it is only called once per hour. Spending resources to decrease that response time, if the latency can be afforded, would be overengineering (or maybe just premature optimization), but you could measure the increase in performance. Also side note, overengineering hardware is often good practice. In the examples you gave (i.e. a bridge), a 2x "factor of safety" could be considered low.
- tobyjsullivan 9y agoThey are fundamentally the same thing. A bridge built to be twice as strong is measurably better in the sense that it is stronger, yet no better in the sense that it doesn’t achieve its purpose any better. Yet, to make it stronger will involve complicating the design (having a bridge that is twice as strong out of coincidence is just luck - not over engineering). Comparatively, reimplementing form fields is better in the sense that the experience is more customizable. However, it is no better in the sense that it doesn’t actually help the user fill out a form any easier. Again, the over engineering adds complexity. In both cases, the added complexity has costs which would have been best avoided altogether.
- jaclaz 9y agoYes and no. Speaking of bridges, you are IMHO a bit too extreme, a "double strength" bridge is definitely bad-engineering. Over-engineering is (as an example) using a modified asphalt to pave the bridge (very good for adherence when raining and on cold, snowy places) in a warm climate country where it rarely rains, and never snows. The good old definition of (construction) engineering norms is (maybe was) revolving around representing the reasonable cost for the society of reasonable levels of "safety" and "convenience" (both rather difficult to establish BTW). When it comes to computing (and similar) the problem is often what I call the "because I can" syndrome, on the web there is an over-complication (maybe more accurate than over-engineering) on an increasing number of sites, which as an example if you have poor connection or not the latest OS and browser, reduce the number of visitors (or the quality of their experience) and this is the "under-engineering", as the site (while possibly offering a superb experience to someone accessing it with a given connection/Os/browser) will be inaccessible or only partially working to a not-so-trifling number of potential customers, so the site does not deliver fully what is supposed to, so maybe more accurately, it is over-complication that makes the result be under-performing.
- tjr 9y agohttps://ileriseviye.wordpress.com/2010/07/12/are-we-engineers-like-john-roebling/ https://ileriseviye.wordpress.com/2010/07/12/are-we-engineer...