If Bad Software Developers Built Houses...
Richo99 writes "The editor at UI Hall of Shame takes us for a walk through a house designed by bad software developers. It appears Ed is getting a bit tired of really bad software designs in popular shareware titles. It is interesting because how much of a crime these apps perpetrate isn't obvious until you apply the same logic to everyday things, like the design of a house. I especially love the access to the garden. "
The first thing I thought of was how this house is the opposite of Dilberts house, which is designed by good software engineers.
http://www.dilbert.com/comics/dilbert/duh/
A bad clothes designer turns out crap. A bad automobile designer turns out crap. A bad actor turns out crap. A bad software developer turns out crap. And?
It's one of "Murphy's Laws". Specifically, it is "Weinberg's Second Law". I found it on this page. You might have to search the page. I cannot find a direct link via html.
bad comparison. Just because you have a copy of VB.NET does not make you a software developer. A developer does more than just code which is what a lot of these "self-taught MS-fanboy geniuses" fail to hit.
This would be like comparing the typical HomeDepot customer to the architect that designed a nearby well standing skyscraper.
Yes it's fair to say there is a lot of shit software out there. No, it's not fair to say that's the example of a proper software development cycle.
So in otherwords, this is yet another sensational bit meant to get people like me who should be working, typing up lengthy replies on slashdot...
Tom
Someday, I'll have a real sig.
One doesn't have to look far to see bad design manifesting in real life with hilarious effect. The phrase "I'm sure glad I'm already colourblind!" in regards to bad interior design echoes with the sentiment behind "I'm sure glad I never have to work on that project!" in regards to bad software development. In both cases you want to aim the offending subject away from ones' face. However in the case of bad software development not everyone actually walks into the software's spiritual equivalent of the room with the faux fur mauve throw rug in the green-walled room with the gold curtains and the single rusted sink and has a proper around (only to run out screaming).
I recommend buying the book if you like the sampling from lileks.com. I've seen the collection in it's eye-searing completeness and it's a riot.
Starkle, starkle, little twink.
http://www.rha.com/ui_hall_of_shame.htm
http://www.pixelcentric.net/x-shame/
http://www.raizlabs.com/interface/hall-of-shame/de fault.asp
These sites all appear to have similar concepts. Don't worry, folks, I'm sure the Meatloafers will be busy guffawing in mulish fashion as they forward the house/UI anology to your inbox for the next ten years after it's no longer funnny.
No, we don't. Most houses, as they are, are completely braindead. Get thee hence and read "Your Engineered House" by Rex Roberts for some of the ways and reasons.
And computers, how long have we had those?
How long have we had mathematics and physical ways of representing it?
Most software sucks because the people who write it ignore principles that are prefectly well understood and in some cases even provable.
Garbage in, garbage out.
Games might be an exception, but then Ed doesn't deal with games, having come to the conclusion that having a bad UI experience must be part of the game, for some reason or other. Beats me why.
KFG
"Herbert unlocks the door and the damn thing swings OUTWARDS knocking you back a step or two."
Wtf... Where I live, all doors open outwards. It's much more convenient*. Interesting assumption coming from a UI critic, who should know better than to accept what he has been given as the best alternative.
*-The door swings into the yard, instead of creating an obstruction in the foyer.
-You can close the door immediately, instead of having to take off your shoes and get out of the way first.
-If a fire breaks out, and a bunch of panicing morons are pushing you from behind, you can still open it.
My Sig: SEGV
The fastest-built Habitat for Humanity home in the world was raised on Dec.17 2002 in just 3 hours, 26 minutes and 34 seconds.
from habitat for humanity
Wouldn't that place the hinges outside, where anyone who wished to could take your door off the hinges?
It sounds laughable on casual inspection but a chimney doesn't really get that hot past the first few feet. A chimney isn't made to vent fire, after all, but only smoke. And chimneys were not just made of wood but wood and mud.
Yeah, it seems stupid to make a chimney out of wood - but if it is maintained it's not as stupid a notion as it sounds. Wood is easy to locate, move and stack and it was abundant in the area.
I agree with your main point (and that of the GP). On the other hand, software knowledge is evolving faster - at least IMHO.
The reason for this isn't to do with physical vs knowledge work, it's to do with information flow and feedback times and the population growth curve. People learn what other people have done, and wether it worked or not, faster today than ever before (well, unless last week was a low worm week, but you get the idea). And when they get this info, they react to it, and then add it back into the feedback loop. On top of this, there are more people thinking about these problems than ever before.
So developemnt times are shortened, and the field matures faster. Of course, the same feedback loop speeds alnost every area of human endeavour - it's just that some like house building are understood in far more detail that others. In these cases, the law of diminishing returns means the speedup isn't so obvious, but I believe its still there.
As an example, think of electronics, by which I mean wires-and-solder, pre-microchip, non-software electrics. As an industry that's what? A hundred years or so, if we count from Edison who made it a commodity rather than Faraday who doped out the theory anyway. I'd say we understand electrics in a similar sort of depth to house building, but we got there in a far shorter time.
Of course if you consider, say, quantum mechanics then there's still a lot to be learned about electrons. Of course, the same can apply to construction work, say if you consider space elevators.
Don't let THEM immanentize the Eschaton!
"This makes locks on doors absolutely pointless because you can just remove the pins on the hinges and the door will just fall down."
Doors can be designed to avoid that. I'm not sure what the standard way is, but my apartment's front door, for example, has metal rods embedded next to the hinges. They are virtually unnoticeable to the user, and automatically slide into the wall when the door is closed. This is probably more secure anyway.
My Sig: SEGV
We just DID.
and it's NOT!
Hell, pull up a list of invoices on the screen and it ONLY scrolls forward. At least the doors on my house work in both directions i may want to go...
Because engineers in other industries and professions spend orders of magnitude more time estimating than they do actually building. (Once the estimating is done, the building is usually fairly straightforward, relatively speaking). We could probably accurately estimate the time taken to build software... but then they'd ask us to estimate how long the estimate would take... and then how long the estimate of the estimate... Or, we could just take a reasonable guess and just build the damned thing.
And, by the way, no industry or profession can accurately estimate and deliver product. Road construction, satellite design, new home construction, movie production, etc. etc. are always complaining about running over budget. Software is exponentially more complex than any of those.
In summary, bite us.
Proud neuron in the Slashdot hivemind since 2002.
Apropos new house designs ... in the 1950's a Sydney architect called Harry Seidler started building houses with flat rooves, and, because people thought they looked really nifty, other architects and builders started making them too. Most of them leaked, because the design hadn't been debugged before they implemented it.
Oh, and they're really ugly, too (imo).
What a long, strange trip it's been.
Some C library functions that operate on strings with checking lengths should also not be used:
strncpy - does not guarantee the terminating NULL and fills the dest string with zeroes if it is short (bad performance)
strncat - does not guarantee the terminating NULL and the 'n' argument is very confusing and encourages buggy calls.
Use strlcpy/strlcat instead (oh wait, the GNU libc maintainer refuses to put them in...)