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. "
- Greg
Start a happiness pandemic
If Microsoft programmers built houses, the walls would be blue with white trim, and the garage would have to have CHKCAR run on every instance of the door opening.
On top of that, there's also the whole "backdoor left wide open" stigma that comes with the Windows house.
Striking fear in the authors of godawful fanfiction, I am here, appearing in darkness, Tuxedo Jack!
I wonder where dead links stack up... ;)
wow, one comment and it's already /..ed
that's like a 2mph wind knocking over the house, right?
Only two replies, but the site is dead already. I wonder, what his analogy would be to that...
In Soviet Washington the swamp drains you.
Slow news month? Slow news year? Whatever it is, I'm sick of "here is an amusing blog post!" news articles. This was neither news nor stuff that matters.
I think what we are seeing instead of what happens when poor software designs are applied to building houses is what happens when poor webserver configuration is applied to a website.. It's slashdotted with 1 post!
--
http://unk1911.blogspot.com/
Lets take a walk through a house built by our illustrious legion of very ordinary Software Developers we've seen over the last few posts..
You arrive at a friends new house and step up to the front door.. well, you do after finding it around the side of the house..
You press the door bell but dont hear the reassuring ding dong sound coming from inside the house, you ponder if you missed hearing it and wait a few moments before politely pressing it again, this time you're SURE, there was NO doorbell sound coming from inside. You peer at the doorbell, its a button, how much more complicated can it be? You DOUBLE CLICK it and hear a loud DINGDONG coming from inside..
Your Friend, Herbert's footsteps approach the door from inside and you straighten your tie ready for the door to open. Herbert unlocks the door and the damn thing swings OUTWARDS knocking you back a step or two. Apologetically the owner explains that's how it was when they bought the house "it fools everyone and it'll be a great source of converation at our Dinner Parties".
You politely chuckle and hope they get the damn thing fixed.
Herbert invites you into the house, you step unsurely into the hallway and peer around.
The ceiling has a sort of mauvy pink color, not dissamilar to your Grandmother's slippers, the walls are mostly red.
Herbert offers you the grand tour of his new home and gestures towards what you assume is the Lounge room thru a doorway off the hallway. You wander in suprised to find that you're in the toilet.. nervously Herbert chuckles and explains that to get to the Lounge you have to pass through the 2 Way Toilet.
You emerge on the other side of the toilet into a long narrow room that stretches the length of the house, its about 5 feet wide and 45 feet long. At the far end of this poorly lit room you can see a Television. The only light coming into the room is from a small window at about knee height.
Herbert explains the Lounge Room is really an extension that wasn't planned very well, he invites you into the kitchen through a revolving door. You step into a large circular room after missing the first few exits of the rapidly revolving entrance. In the middle of the room is a large Island Bench, its working surface is about 5 foot high. there's no other furniture in the room, but there's 9 doors evenly spaced around the room. Herbert explains that through each door is an appliance, there's the Fridge Room, the Oven Room, the Freezer Room, the Dishwasher Room, the Food Room, the Microwave room etc.. Its a pain Herbert says, taking things from one to the next, but you get used to it he says... you feel doubtful.
Herbet is keen to show you the Master Bedroom, but he's not sure which door its through, he tries three then finds the right one.
As usual, the damn thing opens outwards.. You dutifully but somewhat hesitantly follow Herbert through the Master Bedroom, you wonder what bizarre idea you're going to be introduced to next.
Herbet gestures around what appears to be an empty room with a self-satisfied smirk on his face. You peer around trying to work out what bizarre idea the builder has foisted upon the house now. "Where's the BED, Herbert?" Herbert theatrically claps his hands together twice and stamps his foot.. the bed silently descends from an opening that appeared in the ceiling, you jump
out of the way just in time and the bed neatly touches down in the centre of the room. "Neat hey!" Herbert prompts you.. "Ah yeah, thats great Herbert".. You gingerly sit on the bed, it promptly collapses.. "Ah, yeah that happens a bit, you get used to it."..
"Come and see the Garden!" Herbert excitedly exclaims. Herbet opens a small trap door hidden under a rug and descends a small ladder.. you follow him down. The Garden has a concrete floor and fake concrete trees. There's a wall around it and it has fake grass glued to it.
You run screaming from the house.
So, what did we get.. a house built by a moron. Nothing looks, feels
Just look at the beautiful design and layout of their site.
Error establishing a database connection! This probably means that the connection information in your wp-config.php file is incorrect. Double check it and try again. * Are you sure you have the correct user/password? * Are you sure that you have typed the correct hostname? * Are you sure that the database server is running? WordPress Support Forums
Beautifully crisp, clean, clear and consise
Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
What truth?
There is no dupe
Wow, that's gotta be a new record. Only 3 comments and the site is down...
Jeremy http://alucinari.net
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/
kg/am
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?
Oh the irony.
Perhaps this gentleman should present us with a GOOD DESIGN isntead of just complaining about BAD DESIGN.
His blog is poorly designed.
I had a nice eloquent post all written. I hit the "Say It!" button (There is no 'Preview'), and I get to the next page. The next page complains that I forgot to add my email address, so I click 'back', and I'm presented with a BLANK FORM. Everything I wrote was lost, probably because of some wacky Javascript used in his blog form.
I feel like I entered a bathroom that's 5 feet wide and 100 feet long with a TV at the end.
I love his design!
94% of Repubs and 21% of Dems voted to renew the Patriot Act
Wow, everyone must be RTFAing before posting. When did you lot get conscientious?
would every room be duplicated 2 or 3 times?
:))))
(LOL.. just kidding! don't troll-rate me please!
the way programmers wrote programs, the first woodpecker to come along would destroy civilization.
Soory, I can't remember who said that, but it is so apropos.
If "disco" means "I learn" in Latin, does "discothèque" mean "I learn technology"?
It looks like maybe he got bad general contractors to build his web server...
Error establishing a database connection! This probably means that the connection information in your wp-config.php file is incorrect. Double check it and try again. * Are you sure you have the correct user/password? .....NO
* Are you sure that you have typed the correct hostname?.....NO
* Are you sure that the database server is running?.....NO
...This thing would be slashdotted before even 1 comment went up!
Geeky modern art T-shirts
Jef Raskin was well-known for pointing out the many flaws of contemporary software GUIs. For those who do not know, Jef Raskin was the man who designed the GUIs for several different Apple operating systems. By the fact that Microsoft borrowed such concepts from Apple, his innovation has also highly influenced the Microsoft Windows platform.
But anyways, he always stated that GUIs are there for the user, not the developer. GUIs are supposed to be intuitive, so as to allow the user to be far more productive, rather than hindered. Such ideas are not new. Mr. Raskin spoke of such things decades ago.
Cyric Zndovzny at your service.
Error establishing a database connection! This probably means that the connection information in your wp-config.php file is incorrect. Double check it and try again.
Are you sure you have the correct user/password?
Are you sure that you have typed the correct hostname?
Are you sure that the database server is running?
The architect of the house couldn't be joined,
The foundations aren't ready yet,
The site is slashdotted already.
I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
Will the progammer version of Mike Holmes come and fix the bad work?
But if all the quirks are well documented and distributed to all members of the team, well by gosh this is quality work!!! And better yet, if you can trace all the requirements through to the test cases, we can even slap a CMM Level 5 on it!!!
"Well..here I am..." - Jubal Early
Perhaps part of a good user interface would be availability?
If the owners of this site built a house, it would only allow one person in at a time. The door would remain locked until they left.
Wer mit Ungeheuern kämpft, mag zusehn, dass er nicht dabei zum Ungeheuer wird. --Nietzsche
it would collapse the first time 50,000 geeks tried to visit it.
Box responds, just not on port 80... someone has the max apache clients set too low. Anyway, MirrorDot mirror:
a 63520d2685a/index.html
http://mirrordot.org/stories/bd14487390c17a50503e
--
NoVA Underground: Loudoun, Arlington, Alexandria, Prince William and Fairfax County forums
I once asked a management type why was the dealine chosen even the specs weren't even done yet! Their reponse was "that's how we'd meet the ROI (Return on Investment) requirement for the project. I said "Maybe the project isn't worth doing and the VP is an idiot!" , but it came out of my mouth as "Oh I see! I learn something new everyday!" Of course, we missed the deadline and the ROI target too.
Building software is NOT like designing a house.
The problem of designing a house is, by and large, a solved problem. Sure, there are requirements like soil structures, energy efficiency, and building codes, but by and large a given house has few if any "new" problems, and the combination of problems to solve isn't huge.
Designing software is much more complex and a software designer or team is likely to have at least one, if not many, problems that have never been solved before.
A better comparison would be designing a city, or perhaps a high-rise office building or manufacturing plant, and even that only compares with modest-sized software projects.
After all, most houses have only one architect for the overall design and a handful of specialists designing subsystems like the electrical layout. Most modern good-sized software projects have a lot more people contributing to the overall design.
Since the link was dead due to poor design.
Ned decides now to go into his house. He has a little trouble getting
through the door but manages to get in. The crowd cheers. Homer
takes Ned into his living room.
Ned: [gets sweater caught in a nail] Ooh, looks like a loose nail.
Homer: Yeah, one out of twenty five ain't bad! [hammers in a nail]
Homer shows Ned his kitchen, which is "just as you remember it" --
except for one tiny modification: a toilet next to the refrigerator.
Ned: Was that, uh, was that toilet always next to the refrigerator?
Wiggum: Uh, Ned, you ever try lugging a toilet up a flight of stairs?
Rod and Todd's room were designed by Bart and Lisa, replete with a
carpet that doesn't completely cover the floor, a crack in a wall, a
slanted door frame and a "Krusty the Clown" poster.
Rod: [taking down poster] I don't like this clown!
Bart: Ah, I wouldn't take it down if I were you. It's a load-bearing poster. [a crack ripples through the upper wall and up to the ceiling]
Homer, Apu and Ned walk alongside the uneven walls and five to six sided doorways. Static makes Ned's hair stand up and his moustache hair stick out. The static is coming from the room filled with electricity.
Apu: This is the room with electricity. But it has too much electricity. So, I don't know, you might want to wear a hat.
Ned: Uh-huh. [walks further down the hallway]
Floor feels a little gritty here.
Moe: Yeah we ran out of floorboards there, so we painted the dirt. Pretty clever!
The hallway starts to become extremely narrow and small.
Ned: Oh, something is definitely wrong with this hallway.
[opens a 4-inch-tall door]
Barney: Come on in! It's your master bedroom!
[Ned shuts the dollhouse-sized door]
Ow! My nose!
Ned: Well, I've seen about enough.
Outside, Homer concludes the tour: "So, Flanders, what do you think of
the house that love built?" He pats the front door, which falls
inside the house, causing the second story to cave in. Finally, the
top story collapses, and the house is back to where it started from.
"Aw shoot!" is his response, scratching his head to find out what went
wrong.
The problem in a nutshell, going with the analogy is that programmers are not architects.
They are brick layers and the guys who put in the pipes.
Imagine a house, built without a design as brick layers and guys who lay piples making it up as they go along.
Some guy doesn't like user interfaces and craps out a laundry list of unfunny house/software analogies to finally arrive at the conclusion which might as well have been the whole article.
Is any real news going to be posted today?
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.
a person who probably has never attempted writing a single line of code in his/her life. This person does not understand that good code takes time to write and implement and if you want it done right you can't rush it. Who knows, this awkward house could have been built in a rush due to an contractor's wierd and tight schedule. He mentioned that several rooms had to be added on afterwords, well if the house was rushed in the first place, it probably wasnt built to allow upgrades and 'patches' (extension) so adding modules would be a hack at best.
Also who knows, the original owner of the house might have wanted it that way (some people have wierd tastes), and the constructors built it to suit his/her needs. Just because the functionality of something or the reason behind the placement of a room/object may not be apparent to you, it doesnt mean that it is there without reason.
What is the architectural equivalent of doing everything in flash? Las Vegas?
I've abandoned my search for truth; now I'm just looking for some useful delusions.
Let's see now...
Error establishing a database connection! This probably means that the connection information in your wp-config.php file is incorrect. Double check it and try again.
Error establishing a database connection!
You catch enchiladas by picking them up behind the head and holding them underwater until they don't kick anymore -VeGas
I couldn't help but think of X11 copy/paste. I'd try and grab a trash bag to replace with a new one and each time I grabbed it, it'd make two!
We wouldn't have to worry about RTFA because we already know what the damn thing is going to be anyway.
Intolerance for ambiguity is the mark of the authoritarian personality.
because its already been slashdotted :-P
... people have been doing houses for several thousand years. We've got the basic idea down pretty well. We've been doing graphical computer systems for how long? 30 years, maybe? And computers, how long have we had those?
Not to excuse poor design, but sometime's it's easier to piss on stuff than figure out how to fix it.
http://www.welton.it/davidw/
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.
Here I sit with 5 freshly minted moderator points and was all ready to moderate on this story. But as with every story except for the ones from Roland Pique (whatever his name is) the thing was unreachable. No offense, but what the hell is the point Slashdot. Maybe 5 people get to read the article, everyone else either goes off-topic or makes jokes about how they didn't RTFA. By deduction then, moderation must therefore be a joke also. They only true moderation points would be awarded to the person who posts a mirror, or pastes the article. My moderation points will now be fruitlessly given away to the posters, who like me did not get to RTFA. It is just cyclical and pointless. Now I have to get back to work before someone busts me for reading Slashdot.
Whatever you do, DO NOT try to validate that page...
Yeah, right.
(Almost) always here. Specific article link here.
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
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.
In one place he had a triangular room with two doors going into it (was supposed to be his office).
In the other place he had bathroom on the second floor right above his new kitchen. The problem was that the drainage pipe from the toilet would have to go right through the center of his kitchen table (building code doesn't allow bending the toilet drain too much).
Some things are better left to professionals...
Error establishing a database connection! This probably means that the connection information in your wp-config.php file is incorrect. Double check it and try again.
Are you sure you have the correct user/password?
Are you sure that you have typed the correct hostname?
Are you sure that the database server is running?
WordPress Support Forums
what if the "house" crashed? how do you reboot a house? I'd love it if my house had a handy button around back that when pushed, recovered the house from the most recent disaster (flood, fire, termites, in-laws, etc...) that struck it.
Maybe he should start with that lousy son of a bitch that wrote the php for his site!
Error establishing a database connection!
Doh!!!!!!!!
Your wish is our command. :)
Pretty Pictures!
what just happened to it is the equivalent of a wrecking ball going through it.
I have a bit of knowledge in this area.
Building houses: Very detailed specifications with standards that have been honed over 30-40 years (family business).
Software dev: Requirements that are never actually pinned down.
Building houses: Sub-contractors that get paid based on the job, if they fuck up they fix it for free (or lose a valuable account).
Software dev: If it's broke/bug ridden fees are still paid to develop fixes (unless support built into contract which means you're paying more up front in case there are mistakes).
Building houses: Customers understand that if they change their mind when the home is in development the cost gets exponentially bigger as the house nears completion. We get bids for change orders and they sign ammendments to their contract approving changes and paying in advance for said changes.
Software dev: Frequently missed requirements necessitate changes in whole sections of code or UI design.
If software development weren't so fluid/dynamic it would probably be much like building houses. However a house hasn't changed that much since the 1950's for the most part where computers & software development were happy to be using punch cards. Plus I wouldn't wish city inspectors on anyone in the software industry. Those who can do, those who can't work for the city and are pissed off about it. I love watching city implemented projects with these so called "experienced engineers" who fuck up and have cost overruns on every project they do. It's a good thing city engineers don't have to make a profit or they'd be out on their asses.
Article is down, but just the /. caption brings up a pet peeve of mine.
.02
A lot of software developers don't know the first thing about human factors and/or good design.
Is it because the industry is saturated by people without training in the field? The benefit of the dot com boom?
I don't think so. When I took compsci, human factors was an optional course. It was the only course that covered information theory, and looked at aesthetics and functionality as units of work. I loved it.
But so few people even with training know about good design. I work with a lot of "engineers" and they have attitude "This software is great because I wrote it."
So ego plays a big part! But this also illustrates bad development process. Anyone who doesn't put the UI through a review ringer and or get people to test, use, and suggest is asking for crapware.
My
/\/\icro/\/\uncher
That is why being an architect or engineer is a profession and you must get certified to do these public works type of thigs. Software engineering is a joke by comparison.
ELOI, ELOI, LAMA SABACHTHANI!?
Reading that article wasnt worth the time it took for the page to load.
"Give someone a program, frustrate them for a day... Teach someone to program, frustrate them for a lifetime."
Error establishing a database connection! This probably means that the connection information in your wp-config.php file is incorrect. Double check it and try again.
* Are you sure you have the correct user/password?
* Are you sure that you have typed the correct hostname?
* Are you sure that the database server is running?
* Are you sure your site is not slashdotted?
I've never liked these silly "if race car drivers designed shower curtains" type comparisons and conjectures. They don't take reality into account. There's no analogy to hitting "control-shift" in the way you walk down a hall, and 3-D tactile interfaces (like doors, lightswitches) don't have a meaningful representation on the desktop or cell phone.
Navigating back a couple of pages with your browser (alt-left-arrow) just is not the same as walking backwards out your front door so that you can come into the garage from the side. It's a couple of finger twitches!
I've come across plenty of crappy interfaces (um, some of which I built myself), and plenty of crappy house designs, too. It comes down to cost. Genius-hatched code, countless hours of user focus groups, and endless release cycles don't jive with reality most of the time. Just like we can't all have dream houses built on the same size lot. A lot of what I've loathed about some software, though, has evolved away nicely over the years through upgrades. Retooling a house to the same degree isn't even something most people can contemplate, and that's reflected in the design and/or the price.
And: houses have been built for thousands of years. Desktop software for 20-ish. That may seem like an eternity to some Nerd Younglings (meh!) but it's an immature practice/culture in the middle of constant upheaval. The two don't lend themselves to anything other than flame-oriented comparisons, and I'm not talking about sprinkler systems.
Don't disappoint your bird dog. Go to the range.
Those who can, do. Those who can't, blog.
Ryosen
One man's "Troll, +1" is another man's "Insightful, +1".
So if you typed, "I want to type a letter." Eventually, the machine would figure out that you wanted a word processor. Yes, it would take a while for the machine to get used to you, but the UI would work (eventually) perfectly for you....
I'm trying to remember who he was talking about.
By the way, I think typing "pr0n" or "Porn" would be cecome universal -:)))
The house is meant to be a metaphor for bad software design. But if you really did look at a software house from the perspective of an end-user, the only thing you would see is the GUI. Visitors of a real home can immediately see the building's architecture, but in the software world, end-users of software can only see the exposed interfaces (like his doorbell you have to double-press). I feel like his description of the house is mixing bad architecture and design with bad GUI, when a more accurate analogy would really be that all of those bugs are inside the walls and you only occasionally see the bugs on the walls or get a broken light switch from wires that the bugs chewed through.
If some Software Developers built houses?
Lets take a walk through a house built by our illustrious legion of very ordinary Software Developers we've seen over the last few posts..
You arrive at a friends new house and step up to the front door.. well, you do after finding it around the side of the house..
You press the door bell but dont hear the reassuring ding dong sound coming from inside the house, you ponder if you missed hearing it and wait a few moments before politely pressing it again, this time you're SURE, there was NO doorbell sound coming from inside. You peer at the doorbell, its a button, how much more complicated can it be? You DOUBLE CLICK it and hear a loud DINGDONG coming from inside..
Your Friend, Herbert's footsteps approach the door from inside and you straighten your tie ready for the door to open. Herbert unlocks the door and the damn thing swings OUTWARDS knocking you back a step or two. Apologetically the owner explains that's how it was when they bought the house "it fools everyone and it'll be a great source of converation at our Dinner Parties".
You politely chuckle and hope they get the damn thing fixed.
Herbert invites you into the house, you step unsurely into the hallway and peer around.
The ceiling has a sort of mauvy pink color, not dissamilar to your Grandmother's slippers, the walls are mostly red.
Herbert offers you the grand tour of his new home and gestures towards what you assume is the Lounge room thru a doorway off the hallway. You wander in suprised to find that you're in the toilet.. nervously Herbert chuckles and explains that to get to the Lounge you have to pass through the 2 Way Toilet.
You emerge on the other side of the toilet into a long narrow room that stretches the length of the house, its about 5 feet wide and 45 feet long. At the far end of this poorly lit room you can see a Television. The only light coming into the room is from a small window at about knee height.
Herbert explains the Lounge Room is really an extension that wasn't planned very well, he invites you into the kitchen through a revolving door. You step into a large circular room after missing the first few exits of the rapidly revolving entrance. In the middle of the room is a large Island Bench, its working surface is about 5 foot high. there's no other furniture in the room, but there's 9 doors evenly spaced around the room. Herbert explains that through each door is an appliance, there's the Fridge Room, the Oven Room, the Freezer Room, the Dishwasher Room, the Food Room, the Microwave room etc.. Its a pain Herbert says, taking things from one to the next, but you get used to it he says... you feel doubtful.
Herbet is keen to show you the Master Bedroom, but he's not sure which door its through, he tries three then finds the right one.
As usual, the damn thing opens outwards.. You dutifully but somewhat hesitantly follow Herbert through the Master Bedroom, you wonder what bizarre idea you're going to be introduced to next.
Herbet gestures around what appears to be an empty room with a self-satisfied smirk on his face. You peer around trying to work out what bizarre idea the builder has foisted upon the house now. "Where's the BED, Herbert?" Herbert theatrically claps his hands together twice and stamps his foot.. the bed silently descends from an opening that appeared in the ceiling, you jump out of the way just in time and the bed neatly touches down in the centre of the room. "Neat hey!" Herbert prompts you.. "Ah yeah, thats great Herbert".. You gingerly sit on the bed, it promptly collapses.. "Ah, yeah that happens a bit, you get used to it."..
"Come and see the Garden!" Herbert excitedly exclaims. Herbet opens a small trap door hidden under a rug and descends a small ladder.. you follow him down. The Garden has a concrete floor and
I am concerned about any program, any piece of hardware, any treaty, any law that treats me as a consumer, not a citizen
Try this as a excercise, go around your house with a plumb line and a level and check the windows, doors and floors. Is everything perfectly in level? No? big suprise there. Windows and doors get hung using shims to balance out the imperfections, allowing builders to have signifigant tolerances when doing construction.
Houses burn down because of bad wiring, roofs collapse, wood rots, foundation crack. Everything has it's problems and we deal with them. When a $20 toaster breaks most people buy a new one without a second thought. Why would you expect $20 in shareware to be flawless?
Save a life, sign your organ donor card.
This is like asking what would happen if a model airplane painter made emergency life saving equipment "It looks nice from the outside, the shock pads being painting quite nicely, but when the paramedic goes to defibrillate the heart, nothing happens. The paramedic wonders how complicated the machine can be and notices there is no wiring or parts at all inside the machine... just a shell... therefore, model airplane painters suck." Next week What would happen if cheerleaders were president... hehehe.
Why do you need bad software developers to build a bad building? Unless the building is completely computer-automated, you only need a bad contractor to build a bad building. There are plenty of bad contractors who will accept money from the government while cutting corners at the same time.
Maybe I just went to a bad school (I wouldn't be too surprised), but it seems like Universities, Colleges, and technical schools seem far more interested in teaching the syntax of good code but never focus on the semantics of good code. I seriously think that most bad programs in the world are actually caused because, in school, their is a greater focus on the solution to the problem you're given rather than the method to get to the solution.
That's one way to make sure your site validates as clean, if the referrer is w3.org, give them a page that's guarenteed to be clean. Or just don't give it to them in the first place, if you're not sneaky enough.
Now *there's* a UI worth complaining about
I fail to see the error of having doors open outwards. They do around here.
Let me explain:
Doors are meant to keep people out, yes? Now, what would be safest against someone busting the door in - one that opens in or out?
Of course you could could turn it around and say that doors are not made to keep people out, but rather keep them in until the cops arrive..
You forget to put one nail in anywhere in the house and the whole thing comes crashing down.
What if making movies were like writing software? Someone hold their glass in the wrong hand and that causes the film to catch fire during a screening which grows into an inferno that burns the whole city down.
Forbidden /index.php on this server.
You don't have permission to access
that we rarely design anything.
What's cobbled together rarely does the job except it can usualy be faked into something that looks adequate, right until a changed requirement when the whole thing gets tossed into the trash (it was collapsing into it anyway.)
I find most (hell, almost all,) 'soit-disant' design is missing the basics of software construction principles.
That we seem unable to do any better, regardless of how often we get burnt, is just WRONG!
What ever happened to post-implementation reviews? No wonder we seem to be unable to learn anything.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
Well, in most parts of Europe the front door does swing outwards. The joke I've heard is that the reason for the US standard is to make it easier for the police to kick in the door.
I do think that it makes more sense that the front door opens outwards than inwards, since that allows for better use of the space inside. Oh well, I guess I'm pretty biased since I'm a Swede and all our front doors swing outwards.
Real programmers never comment their code. If it's hard to write, it should be hard to read!
I might have been more impressed with the article had the author been more careful with his spelling and grammar. Or perhaps that was the point: society as a whole has embraced mediocrity.
And going to http://www.userinterfacehallofshame.com/> results in a 403 error. Nice. He must have designed the door of the house.
You don't have permission to access /index.php on this server.
San Francisco Photographers
Denizens of San Jose area can check out a real example of bad programming at the Winchester Mystery House - example: "These stairs that lead to the ceiling are just one of the many bizarre features that Mrs. Winchester designed and had built."
Back to building my own bizarre house...uh, gui.
try { do() || do_not(); } catch (JediException err) { yoda(err); }
Is that you? When did you get back from Microsoft Certification?
I can understand the whole is for fun. However, you have to comment on everything that is posted on slashdot irrespective of whether you are moded fairly or not. This is my take: construction particularly, house construction techniques and architecture have evolved over millions of year. Programming is something that perhaps was not even born until early 20th century. It makes sense to take ideas from construction than vice-versa. Moreover, programming is different from designing. The desing philosophy for software can be analgous to design philosophy in cosntructions. "Desing of everyday things" by Donald Norman will give a better idea as to how we can identify patterns from the desings that already exists and use them in software engineering. I will certainly be moded 1 or even less than that for not being funny. Let me try, this is like asking "MS to desing cars for GM"
On top of that, there's also the whole "backdoor left wide open" stigma that comes with the Windows house.
Considering that my house (along with many of my neighbors) has a 3 foot wide, 4 foot high bay window that opens right onto a deck, I would say that MS has had their hooks in houses for over 20 years.
Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
Bad software developers have built houses
My next sig will be ready soon, but subscribers can beat the rush
Boy, that was an unfunny article!
The only sentence that caught my attention was:
explains that to get to the Lounge you have to pass through the 2 Way Toilet.
If you have a bi-directional toilet, the design of the house is probably not your biggest problem.
No sig
If you think about it, houses like that *could* be built but then anyone buying such a house will sue and (almost certainly) win. Consumers have a certain level of expectation and it is backed by law as well as market force; so architects and builders meet that expection.
Software can be built that shoddy way, but we (the techies of the world) also know how to build software better. It is just that the current expection of software is different. Consumers get the level of quality they demand.
Until either the law, or the market, or both changes to a new expectation, the quality will not go up.
First of all, I'll be the first to say, UI design in a lot of software, free, shareware, or otherwise, is atrocious. But, comparing it to building a house... That's just stupid.
Who builds shareware houses? You want to compare, at least compare commercial software, and in that case, commercial software that's not cheap. Otherwise, think about shanty towns for your homes and then start doing the comparison.
You get stuff cheap, you should expect to get what you pay for.
On top of which, Software Engineering is a misnomer. It's not engineering. It's not even a science. It's more an art at this point with some aspects of engineering and science.
Once we have automated tools that can verify a program as bug free (doubt that'll happen in my lifetime), then maybe it can become an engineering discipline.
With the assumption that your materials are within tolerances (and this can be determined for many), most engineering disciplines have very verifiable results. You can verify with mathematics that a bridge or building won't collapse, assuming your materials are verifiable. You can't do the equivalent with software.
The same goes for most other engineering disciplines. So the comparisons are invalid for a few reasons. But hey, I'm behind him on what he wants: Better UI design all around.
My manager was telling me yesterday about an resume he received from a UI designer. The resume was in 7pt type and my manager could barely read it.
There are plenty of houses which are nightmares of design and construction. Just watch Holmes on Homes for many examples of crappyness. One difference - you can drywall over most problems in a house and you won't see it for 10 years until it fails. Software problems are harder to hide for any length of time.
Yeah, that's cute and all, but maybe you failed to notice the following:
Oh, but you'll correct "good" instead of "well" because YOU FAILED TO DETECT IRONY.
If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
When someone builds a house, they're given a blueprint, which lists the exact specifications for building said house.
If houses were built like programs are written, it would be a bit more like this...
Client: Build me a house.
Developer: What kind of house do you want?
Client: Oh, the usual. Bedroom, bathroom, kitchen, living room, that sort of thing.
Developer: Can you be a bit more specific than that?
Client: More specific? I gave you all the information you need.
Developer: *shrug* Okay, we'll see what we can do.
Some months later, a small, nondescript, sturdy house is built. It has a kitchen, a bedroom, a bathroom, and a living room. It lacks certain conveniences like air conditioning and a laundry chute, but the client didn't ask for them and didn't pay for them.
Client: Looks okay so far, but where's the laundry chute?
Developer: You didn't ask for one, and we assumed you wanted to keep things simple so you could save money.
Client: You should have anticipated our needs and put one in anyway. Either way, we need you to add one. Oh, and we'd like you to put on a second story. Some more bedrooms, another bathroom, the usual.
Developer: A second floor? The foundation wasn't built to handle that. We may have to change the layout a bit so we can add some addition support to the house. Oh, and there's nowhere to put the laundry chute, so we'll have to maybe bring it down through a closet or something. It'll waste some space, but that's the only way we can do it.
Client: That's fine.
A couple months pass. A second floor is added onto the house, and support beams are put up all over the place, making the place kind of difficult to navigate. A laundry chute is run down through the front closet, using up about half the space inside it and rendering it basically useless.
Client: Well... it's okay so far, but now that we think about it, we'd like to *live* in the basement and do our laundry upstairs. Can you possibly make it so the laundry chute will suck the clothes up through it into the upstairs laundry room? Oh, we'd also like you to put another bedroom on the second floor!
Developer: But there's nothing underneath where the bedroom would go! We'd have to--
Client: Do it! Why wasn't this done months ago? Also, this whole place looks horrible, and I can't even walk around downstairs without running into a support beam. And what kind of idiot assumes [yada yada yada etc]
So, whiny clients, if you can't give us *exact specifications*, then you have to learn to deal with messy software, or be understanding when things have to be restarted from scratch. We can build you the house you want, but that's no help unless we know what it is you want.
It's not the only way to get bad software, but in my experience the best way to end up with bad software is to have a PM that doesn't understand how - sometimes even why - he should gather requirements. ...) then failures are likely to occur.
So, if the equivenlent of a PM - a general contractor doesn't even know why he should ask the customer what the main building material should be (wood, brick, stone,
Generally, the dumbass PM's I've been around (about 75% of them) want to start painting the cornflowerblue walls before the wall is built.
this may only apply to businesses, but, isn't it a fire code regulation that exterior doors open outward making it easier for people to leave a building in case of emergency?
the history of the world
"The only truly intuitive interface is the nipple."
Babies need to be taugght how to use a nipple. Something expecting mothers should be told every week until they give birth. It would help with the following depression.
"Convention leads to consistency leads to familiarity, which is not not the same thing as intuitiveness."
actually it is becasue te next generation picks it up 'intuitivly'. which really mean, seen it so many times as a child it has become an ingrained habbit.
"It also leads to stagnation, inertia, inefficiencies writ in stone, and claims of mindless copying."
assuming no one ever creats a new need, but someone will and the first generation will learn, and it will be intuitive for the next.
"But nothing is flat-out, absolute, nonrelative, intuitive."
including the nipple.
The Kruger Dunning explains most post on
no master bedroom.
The Kruger Dunning explains most post on
"Troll, +1" is a rating that I'd like to give, sometimes.
Unfortunately, "Troll, -1" is the only option available :-(
Wikileaks, no DNS
If customers bought houses like they would software:
The customer hangs around neighborhoods peering into peoples' houses jotting down interior designs because the customers figure if they pay for the work of architects they will be paying for the architect's evil bosses. Besides, floorplans want to be free! Copying floorplans is all a part of sharing and free advertisement for the architect.
The customer insists on paying $40,000 dollars for a house instead of $100,000. Then they bitch and moan about how this house doesn't fit their needs. The home builders tell the customer they are willing to fine tune the house for comfortable living-- for a fee, but the customer turns them down and continues living in it anyway.
The customer buys a house but has absolutely no idea how to work the doors! They call the homebuilder for support and ask for instructions on how to put keys into the doorknobs and turn the keys clockwise. The customer doesn't follow instructions and tells the customer service rep that the instructions didn't work. When the service rep tells the customer to call a house technician to do it for them, the customer fumes.
The customer buys an inexpensive house, but the house, to their dissatisfaction, lacks an escalator. They moan and groan hoping there is some way they could get to the top of their house without walking up stairs, they just want a one-step(tm) solution. In fact, they know it is possible to have a one-step(tm) solution because they saw an escalator in the mall at one time and it was fantastic. Unfortunately, they aren't willing to pony up the extra bucks for the automation. They just expect to have everything work instantly and automatically tailored just for them.
I've seen all the above scenarios and more. Don't blame the programmer for everything. Blame the customer!
Oh well... good article, but in sweden I would be surprised if I found a single door that opened inward. His "house" analogy is true, but deeper than he thinks it is: There are several "paths" in programming that one can follow, and a few reference designs that are slightly different.
//Havenwar
Just think of programs minimizing to tray with the close button, for instance. Felt weird at first, but now there are a lot of them. Or think of anything programmed first for a mac and then converted...
Just as doors in one country does not necessarily swing the same way as doors in another, one UI does not necesarily work exactly the same way as another.
Of course, let's be fair and scale the world correctly...
Though the visitor thinks that the lounge should be broad and nice, his hostforgets to tell him that he routinely runs horses through at high speeds, and the designer had only the one out to deal with the viscious user having somewhat odd requirements that they insist upon and think are normal.
The doors swing outwards because there are literally THOUSANDS of travelling salesmen per day, and if it swung inwards they would either force their way in to try to help you refinance your home, sell you vaccuum cleaner enhancements, or have an indecent proposal for your horses... and that's assuming they don't secretly drop self replicating robots inside that use your phones to call up a bunch of misguided teenagers across the world to give them orders like "tear up carpet" and "read house owner's diary to me".
The garden is plastic because the owner doesn't understand the basics of garden maintenance and anything else would die, and is underground because the sun gives off nova intensity light at random intervals for unforseen amounts of time.
---
hey, i am that guy you are writing about. : ) and to tell you the truth.. the best example of what REALLY happens can be seen in the movie with cary grant (the title escapes me), in wich they build a house, and it ends up costing incredible amounts of money.... anyway... the reason that house looks like it did is because the people that hired the programmer said "we are paying you, do it the way we want it done"... and so withouth zoning laws and fines and building codes, the 'archetect' has no choice but to build a house he knows doesnt work. a case in point in my career... as the author lamented there are rules we follow from experience... many are not coded... so you dont have to tell them to put a light switch 4 feet high, just inside the door... its done so much, its now a standard. everywhere things work like this... so i write the code to use one of these unwritten standards for someone that is not all that computer literate. they want to sell the software, and we have an argument for a long time because they want the F1 button to do (A), and i want it to call up the help information. my reasoning, is that every other program does it this way and you dont want to make the learning curve for your software to be steeper for no reason. her reasoning... "We will do it differently, break the mold, and set the new standard"! who do you think won that battle? so her software had a ton of things that were no intuitive.. i agree there are a lot of bad progerammers out there (because they bloated and simplified things to get dummber people to be able to produce so as to lower costs... do most cant do anything unless proscribed in detail, and real skills are lacking - now businesses are going elsewhere to get the programmers we used to have before they whined they needed cheaper ones)... if you hire me to program for you i will do a great job, if you focus on what you need and not how that need is fulfilled in detail. however, the punishment structure is in reverse. if i stick to my guns to build nothing but quality, you will hire someone else, and so i dont eat. if i build what you want, but cant live in, i get paid, i get to eat, and you will recommend me to other people!!! which would you do? i make unlivable houses and eat while complaining under my breath and smiling to the bosses... by the way.. the worste people that are most responsible for this thing are marketing people.. even more so than bosses and managers they get to dick with things for no reason, and get too much power to have it their way (its a dilbert constant!!!).... the next worst group is the salesmen.. who would rather close a deal on something that is impossible than miss a deal... period!
You obviously live in an area with no crime. If doors swing outward, that means that their hinges are accessible to removal. This makes locks on doors absolutely pointless because you can just remove the pins on the hinges and the door will just fall down.
Not that Microsoft wouldn't design doors that way...
Wake up - the future is arriving faster than you think.
Did anyone else try to post a comment to the site's blog??? It didn't work for me!
The self apointed user expert who will never use what he designs.
I work for someone who designed an input screen that is light grey in color with field labels that are variously colored: bright yellow; bright red; black (blinking!) and dark grey.
This same person also cannot understand my consernation that data is entered into the same data table in two completely different formats (informix, shudder...) depending on where you enter the information from. He himself didn't design this last part, but he did pay the software vendor to do it.
Please note that this individual designs or writes the specifications for this crap system, but never has to use it himself.
This doesn't even compare to my last supervisor. I was taking zoloft before I got the hell away from that nut job.
>Not to excuse poor design, but sometime's it's easier to piss on stuff than figure out how to fix it. :P
What about for Jellish stings
The sort of thinking that even leads to such a comparison is simply inexcusable: it fails to factor in the scarsity of resources. If you bought a house and a piece of software for the same price, you could always expect a higher standard of quality (and utility) from the software.
It would be far more reasonable to compare the quality of, say, software versus kitchen appliances.
"With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea...."
RFC 1925
Dear Mr. Architect:
Please design and build me a house. I am not quite sure what I need, so let's get started. My house should have between two and 45 bedrooms. Just make sure the plans are such that the bedrooms can be easily added or deleted. When you bring the blueprints to me, I'll make the final decision about what I want. Also, bring me the cost breakdowns for each configuration so I can arbitrarily pick one at a later time.
Keep in mind that the house I ultimately choose must cost less than the one I am currently living in. Make sure, however, that you correct all the deficiencies that exist in my current house (the floor of my kitchen vibrates when I walk across it, and the walls don't have nearly enough insulation in them).
As you design, also keep in mind that I want to keep yearly maintenance costs as low as possible. This should mean the incorporation of extra-cost features like insulated windows or composite siding. (If you choose not to use Anderson insulated windows, be prepared to explain you decision.)
Please take care that modern design practices and the latest materials are used in construction of the house, as I want it to be a showplace for the most up-to-date ideas and methods. Be alerted, however, that the kitchen should accommodate (among other things) my 1952 Gibson refrigerator. To assure that you are building the correct house for our entire family, you will need to contact each of my children and our in-laws. My mother-in-law will have very strong feelings about how the house should be designed, since she visits us at least once a year. Make sure you weigh all these options carefully and make recommendations. However, I retain the right to overrule any recommendation you make.
Please don't bother me with small details right now. Your job is to develop the overall plans for the house and get the big picture. At this time, for example, it is not appropriate to be choosing the color of the carpeting; however, keep in mind that my wife likes blue.
Also, do not worry at this time about acquiring the resources to build the house itself. Your first priority is to develop detailed plans and specifications. Once I approve these plans, however, I would expect the house to be under roof within 48 hours.
While you are designing this house specifically for me, keep in mind that sooner or later I will have to sell it to someone else. It should -- therefore appeal to a wide variety of potential buyers. Please make sure, before you finalize the plans, that there is a consensus of the potential home buyers in my area that they like the features of this house.
I advise you to run up and look at the house my neighbor built last year, as we like it a great deal. It has many things that we feel we need in our new home, particularly the 75-foot swimming pool. With careful engineering, I believe you can design this into our new house without impacting the construction cost.
Please prepare a complete set of blueprints. It is not necessary at this time to do the real design, since they will be used only for construction bids. Be advised, however, that you will be held accountable for any increase of construction cost as a result of later design changes.
You must be thrilled to be working on such an interesting project! To be able to use the latest techniques and materials and to be given such freedom in your designs is something that can't happen very often. Contact me as soon as possible with your ideas and completed plans.
Sincerely,
The Client
PS: My wife just told me she disagrees with many of the instructions I have given you in this letter. As the architect, it is your responsibility to resolve these differences. I have tried in the past and have failed to accomplish this. If you can't handle this responsibility, I will have to find another architect.
PPS: Perhaps what I need is not a house at all, but a travel trailer. Please advise me as soon as possible if this is the case.
It is really hard to open outwards-swining door with a mighty foot kick :)
3.243F6A8885A308D313
Most ironic of all. Sentences like "I'm doing good" rather than "I'm doing well" are correct. (for example, in response to "How are you doing?")
In fact, using the word "well" implies an improved state from a past less ideal state, originally only being used as an opposite for the word 'ill.'
So the one error that everyone picked on was in fact not an error at all. Granted, this really only applied if you're an old fart who lives in England. English is evolving.
Going by the number of design failings I've seen in office buildings, I've always wondered whether architects should be required to work as janitors first. In that way, they could learn from the mistakes made by previous architects.
Examples that I have seen:
1. Access roads that are too narrow for more than one car at a time. A single parked car then blocks a fire engine or ambulance.
2. The architect decides that the hill in front of the building should be reshaped into steps leading to the street. A disabled access ramp is provided on one side. However, every Spring, the steps are taped out of bounds, as the cold weather causes water to turn to ice and consequently work the bricks loose from the cement, but the disabled ramp remains solid as the water runs off. If the architect had built everything as a slope, there wouldn't be any problem with frost damage.
3. The architect has the really bright idea that there shouldn't be any outside trash cans, but instead the flat owners have a little square alcove where they can leave a small bag of rubbish before 7am each day. However, some residents leave after this time, giving time for discarded spicy meals to burn through the plastic bags and stain the paintwork.
4. Failing to anticipate that apartment residents might own more than one car, leading to parking wars.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
It started out promising with the double clicking of the doorbell, but then went awry. Ok, lots of times software isn't properly designed. There's feature-creep and communication problems can often result in a product that is unuseable. Talk about stating the obvious in a completely half assed way. And even look at the article's point that there have been 5000 years of architectural evolution. They ommit that 5000 years is orders of magnitude more time to evolve than software has had. Ugh...
Depends, there are bad software developers out there, but if Management comes up to you and says:
"Build us a simple, basic box, cardboard, that we can put stuff in" but what they REALLY wanted was a house, and they tell you brick by brick how to build it and what they want, and then go by the original deadline for the cardboard box, it's gonna be a crappy house.
Gathering requirements is one of the most important parts in a software project, and you need a prepared person to do it (the skills needed to do it are not the same than the ones needed to build the software). Sometimes even prototypes are written and thrown away just to clarify the requisites. If requirements are not properly engineered you can't just blame the client. The builder in your example could have drawn plans of the house and shown and explained them to the client before starting building (in fact this is what is actually done). Anyway, as you have pointed out, clients think that you can change a half-done software project as easyly as an architect redraws a blueprint, and this must change, but we software people are the ones that must work for this change to happen.
Awful! The least the author could do is spell and punctuate the article correctly.
I get the point that the house is ridiculous, but I don't understand the analogy with the specific failings of software design. My guess is because there is no analogy beyond "they are both bad." How did this get slashdotted?
Do you even LIVE in a house?
Muwahahaha!! That's hands down the funniest AC post I've ever seen.
I never noticed the whole doors-opening-inward thing front doors, until reading this article. And suddenly I thought to myself, hey, that's the way doors ARE, sure, but they should be the other way around. Consider: an outward-opening door is harder to kick down from the outside, and easier to get past in case of a fire. Doors SHOULD open that way.
Then I considered for a few more moments, and realized that outward-opening doors would also have hinges on the outside, so kicking down wouldn't be necessary; just pry up the hinges. Oh, and an outward-facing door wouldn't seal nearly as well against the elements.
So a case can be made for both ways -- which, moving back to the actual topic at hand, suggests that the problem lay with swapping an existing, agreed-upon compromise of an interface with another that may actually be better in some ways, but is likely worse in others.
Wouldn't the house be made of Macromedia Flash?
He said the room only had one window, about knee high. That's obviously wrong, as the house is MADE of windows(tm)!
or else!
"You're in a relativly large room with two portcullis....."
Knightmare for teh win!
I find it extremely ironic that, on a rant on software usability, there is a link at bottom labelled '>>', which does not take you to next page, but instead to the comments.
It appears Ed is getting a bit tired of really bad software designs in popular shareware titles.
The blog entry doesn't mention shareware.
This is how some houses would look if someone like Bill Gates were able to copyright the "Look and Feel" of the house design most of us are used to.
:)
You'd have Steve Jobs with his "alternate" house design layout accounting for a small percentage of the market, but his houses would have an even higher "design fee" than the one Gates charges for his.
People who either hated Gates or didn't want to spend the surcharge would end up living like this, but they'd like it just fine cause they are rebels
If they build a house, ya, it would probably kill U :P The amount of programs that don't empty, (Null), variables after they have finished with them, talk about gobble up memory.
Come on fellow programmers, clean up after yourselves.
Using the wacky house to represent software user interfaces is an erroneous analogy. Houses are three dimensional entities that the user can literally walk through. It contains objects and interfaces that the user can actually manipulate with his/her hands. Houses are conceptually simple, even at the brick and nail level. Software, on the other hand, particularly *desktop* software, has to present a series of fake metaphors to the user. Has there EVER been anything in the real world that has a pointing interface? No! yet somehow all the pundits want software to be completely intuitive to untrained users. Looking at the few "intuitive" software interfaces available, like your ATM machine, one finds that the inteface has become so simplified, and the functionality so restricted, that they cannot possible scale up to general purpose computing devices. And you STILL see people getting confused by them.
The first example in the article was the doorbell, which the user had to double push before it worked. As if somehow that was an analogy to an icon on the desktop. Huh? Has the author been smoking crack? A doorbell is an ACTUAL BUTTON. You can ACTUALLY push it! It goes in and out. If it exists, it's ALWAYS in the same location on EVERY door. There is no similarity to an application icon. Those who think otherwise have been befuddled by the same bad metaphors they insist are intuitive. An icon is not an aluminum, copper and plastic button attached to a buzzer. It's a tiny picture on a flat non-manipulable video surface. It's never in the same place on two different desktops. It has multiple functions (try dragging the doorbell to galvanized steel trashcan in the back yard). The doorbell and doorknob (and optional mailslot) are the only "controls" on or immediately near a door. A computer desktop on the other hand, has dozens if not hundreds of controls.
There is one area where software has a better interface than a house though. And that's in the area of error reporting. Even the dumbest of error messages, like "non-existant state handle", is far superior to the error messages a house provides. A broken doorbell won't tell you that a rat chewed through the wires, it will intead silently not work. The floor won't tell you that termites have made it unsafe to walk on, but instead will ungracefully collapse underneath you with not even the barest hint of an assert() message.
People need to stop treating computers like the should/ought/must be simple appliances. Computers are not simple, they are complex systems. Every time you install software, even if it's something as trivial as a screensaver, you're admitting you want a more complicated system. People also need to stop thinking that the desktop metaphor is in any way accurate, and that it in no way corresponds to real world desktops.
People have to spend considerable time learning how to drive a car. In nearly every locale they have to licensed as well. But a car is so much simpler than a computer they might as well exist in two different universes.
Don't blame me, I didn't vote for either of them!
I remember reading or hearing somewhere that new houses in tornado alley (in the US) have the house entrance doors built so that they swing outward. This is for when the tornados hit so that the pressure in the house can blow the doors open instead of the windows to equalize the pressure.
I'm surprised that nobody posted this one yet: This is a 12-story block combining classical neo-Georgian features with the efficiency of modern techniques. The tenants arrive here and are carried along the corridor on a conveyor belt in extreme comfort, past murals depicting Mediterranean scenes, towards the rotating knives. The last twenty feet of the corridor are heavily soundproofed. The blood pours down these chutes and the mangled flesh slurps into these... Excuse me. Yes? Did you say 'knives'? Rotating knives, yes. Do I take it that you are proposing to slaughter our tenants? Does that not fit in with your plans? Not really. We asked for a simple block of flats. Oh. I hadn't fully divined your attitude towards the tenants. You see I mainly design slaughterhouses.
But, I wanted socialized health insurance!
"The ceiling has a sort of mauvy pink color, not dissamilar to your Grandmother's slippers, the walls are mostly red." That programmer was probably taking his cue from Proxomitron. http://tempalternatif.free.fr/proxomitron/conf.jpg
...and what's that button marked "Preview" for anyway?
But, I wanted socialized health insurance!
If you dont believe me measure the squareness of your rooms. Measure the level on windows, plumbness on corners. Houses since the 80's are built with no more quality that software is.
I'm afraid I don't see how this poorly-designed house relates to poorly-designed software. It just sounds like they've described a bad house design, and said,"See? And houses aren't the only thing that can be designed badly. Software can be, too." Aside from the fact that some software is designed badly, and some houses are designed badly, I don't see much of a parallel here.
Although I'll admit I'm guilty of throwing out years of UI refinement because I'm certain it can be done better.
For instance, I recently searched high and low for a better icon to signify "edit." Think about it. What icon, besides one having the word "edit" on it, can be seen to mean "edit?" Normally, it's a pencil icon, sometimes a pen, but it always refers to standard writing implements.
Anybody got any ideas?
I eventually settled on a spanner. But I think the pencil is better.
Mod me offtopic.
You can run but you can't hide, except, apparently, along the Afghan-Pakistani border.
Because it's research. Those other professions are paid basically for the labour of duplicating or slightly adapting an existing design. Software _is_ a design: that's what you're paid/paying for, not to type a copy of an existing program.
Making software isn't like "see, here's a finished plan of a house, you just have to lay the bricks mechanically". That's what the _compiler_ and _libraries_ do.
What you do in software is more like designing a new car from scratch. Mistakes happen. And yes, even after more than a century of designing cars, you still need to test it extensively and fix the "bugs".
Think "bugs" and "debugging" and screw-ups happen in software? Tell that to the UK government in WW2, who ended up with a "buggy" tank. The engine cooling didn't work at all. Or to the Germans, otherwise noted for good tank doctrines and engineering, who still ended up with monstrosities like the Ferdinand without MGs: an easy prey for infantry. The desperate crews ended up firing a SMG or squad MG through the barrel to have _any_ protection.
And not even only tanks.
Aircraft? Yeah, the BF-109 had massive drag because of the paint used. It also needed massively different force between turning left and turning right. The Me-163 Komet? That was the aircraft that was more dangerous to the pilot than to the enemy. It tended to explode violently when landing.
Or (to also illustrate a management/client screw-up) the French engineers had designed some awesome aircraft for that age... but the client (government) demanded the engine power cut to almost half to save money. Bet they felt stupid when the BF-109 wiped them from the skies.
Infantry weaponry? Take the Japanese 6.5mm squad machinegun from WW2... which jammed unless you manually oiled each round.
Etc.
Ah, but maybe that only happened because they had to stay on the bleeding edge and design completely new things in a limited time? Well, that's the whole point of taking WW2 as an example, because that's the whole problem in software too. Noone pays you to re-type an exact copy of your last program. They'd use that one, if that's what they wanted.
If it was any other engineering profession, one time you have to design a car, one time it's a tree-rotor helicopter, and one time management wants a submarine on robot legs so it can go on land too.
A polar bear is a cartesian bear after a coordinate transform.
After 5000 years of software development I'm sure we will have worked out what works and what doesn't. Right now we're still in our infancy as a discipline. And yes, "discipline" is an optimistic choice of term.
Sorry, the "working like a charm of their own" is definitely _not_ what remember about the last time I installed Gentoo on a new machine. (Admittedly, it was about an year ago, so things might have changed by now. Hopefully.)
Au contraire, I was supposed to follow a script via reading a web page in a text mode browser, and the type the commands listed there. It apparently never dawned upon the Gentoo folks that the rest of the world, when/if it needs to run an exact sequence of instructions, would just use a script instead.
I was supposed to make some choices (e.g., which cron daemon to install) via "if you want this one, enter these commands, if you want that other one, enter those commands". Again, the rest of the world, having already exitted the stone age, would have used such advanced stuff as "radio buttons" and "if-then-else blocks" instead. (Or, if they're _really_ advanced, switch statements.)
At the end of the ordeal, I had to configure some stuff (e.g., the DSL connection) _again_, because obviously Gentoo never got taught the arcane art of _saving_ those options the first time.
Oh yeah, and I love "emerge".
Have you tried emerging, say, Open Office on a 64 bit system? No? It just spits out a cryptic message that it was disabled by some other option. Doesn't even try to do a half-way civilized or user-friendly thing, like, dunno, offering to build or download the 32 bit version instead.
If you happen to be a "normal" user -- and I mean Joe Average kinda normal, not Alpha-Geek kinda normal -- you're left scratching your head as to WTH next. Does that mean I can't run OOo at all? Draw a pentagram around the computer and sacrifice a black chicken to the elder gods at midnight to get it? Or what?
So, no, I don't think they "will start working like a charm on their own once you call them." That's not how it went for me, at least. The "here's an axe, saw and hammer, and there are some nice sized trees, now build your own house" has got to be _the_ most apt metaphor I've seen for Gentoo yet.
A polar bear is a cartesian bear after a coordinate transform.
I remember a story back in the day about how many NT boxes it took to run the house (something like 90 IIRC). A quick google turned up this article describing dinner at Bill's house.
WTF? Over?
Even programmers tend to forget that programming is high-tech science and involves a lot of thinking, inovation and extremely complex logical structures.
Management thinks that since they don't understand it, it has to be easy.
Imagine an architect that have to talk to a client that have never seen a house or even furniture, but comes staight out of a cave.
You have to explain everything in baby-language, which simply isn't always possible.
Also, no-one expects an architect to also buy the materials, build the house, paint it, do all kinds of fire and security tests, install electricity and water, buy table cloths and so on.
And, all this in 2 weeks.
Still wondering why there are bugs in programs?
It's a wonder that developers get the time to make anything work at all...
I think Time To Market is more of the cause of poorly designed software.
But I got a crayon collord drawing on a coffe stained napkin as the request and had 1 week to build it.
And I am color blind!
Considering Design Patterns arguably originated with Charles Alexanders work in architecture (for house, communities, etc.) I find the use of a badly built house to describe badly written software appropriate. Without specifically mentioning design patterns the author derides the use of doors that don't behave like normal doors (although I think European outside doors open outward, my Ukraine apartment door did), and other features that don't share the normal characteristics of the items they are supposed to be. Exactly the areas were design patterns solve problems.
Pretty cool commentary to push people toward design patterns if only they would have pushed people toward design patterns in that commentary!
- Tjp
I am in wallow with my inner money grubbing capitalistic pig. ... Oink!
Common practice is to embed steel pins into side of the door (where the hinges are) so that they would enter the door frame when the door is closed. Removal of hinges' pins wont do much in this case as the door can be opened by swinging only.
3.243F6A8885A308D313
Two issues:
1.I keep running into systems that have been built with next to no architectural ideas. I'm not discussing standards here, but plans.
In traditional building you'd never see a contractor claming to be an architect because he'd been doing it long enough, while in the development world, an architect is often a fancy title with amorphous responsibilities.
Not that I think it's clear where the line between a developer and an architect is, and what makes an architect, but I keep finding myself working on immense systems that are put together with horrible or nonexistant architectures. These tend to be due either to a reasonably good developer with no sense for larger issues, or the dreaded "Big ball of mud" pattern you get on systems that have been in constant developement for years with a rotating set of developers.
In software you can often pretty much get away with bad architecture, at least in the short run. Which brings me to
2. In bad software the pain doesn't get inflicted until a year later, when someone has to edit/change the system. A bad house gets noticed at once.
I am of the opinion that, in general, software's quality is inversely proportional to its cost.
This is largely because a piece of software's userbase is also inversely proportional to its cost. A $1 million software suite may only have a few hundred users. The chances that you, as a user, are the first one to try something, and have it fail to work like you expected, are quite high. With a popular consumer-level commercial software package or a popular open source application, you are walking the beaten path.
You really want to know the difference between building houses and building software?
With software, the blueprint actually compiles and runs. The clay models kind of work.A ND it costs about the same to make the blueprint or clay models as it does to make the real thing.
So Sales and Management naturally sell the blueprint (v1.0), and the clay models (v2.0). The real thing is version 3.0. And after some renovations to make the place decent it's version 3.1.
That IMO is why most software sucks.
I think one problem with poor software is the lack of thinking, planning, and really digging into requirements.
For example, I was once consulted on a bid that my company was working on. One "requirement" related to master and slave databases. Data was entered on a remote site, for subsequent inclusion within the master database. The person responsible for the bid said it would be "nice" if changes could be propagated easily from one database to another, either from slave to master, or vice versa. I tried to dissuade them from this, because I foresaw many many potential problems of synchronisation. Suppose changes conflict? Which one would be right?
A better solution would be where the remote site prepared data, which was submitted for processing by the central business unit, whereupon it was incorporated in the master database, and then released to remote locations. I tried to explain that their original idea was so frought with complications that it would be best if they really tried to hash out what the client needed to do, and make a solution based on that, rather than go for some magical feature-rich application that would probably come out hopelessly buggy and over-budget. But management just didn't get it. No. Generalised synchronisation is neat, so that's what we'll offer.
And whilst my dander is up, permit me to vent my spleen in the direction of Microsoft; and, just for balance, projects like Open Office and Java. Bloated overblown software might be what passes for "engineering" these days, but I think it's a fairly warped perception of engineering. Real engineers tend to look for an economical solution to a problem. They "design" things, which meaning planning, experimenting, adjusting, and keep going back to the drawing board until they get it right.
Really, it's not so much that software "engineering" is an immature profession that's the problem, the problem is that software engineers don't follow established engineering principles.
But what if a house is designed by GOOD software developers? There are lots of advantages, including the bathroom Class, the fridge that uses hashcoding and compression, and the ability to resize and move your windows. Check it out here.
Have we stumbled back to 1993 while I was not looking?