Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

If Bad Software Developers Built Houses...

Posted by CmdrTaco on Thu Jun 09, 2005 01:23 PM
from the stuff-to-read dept.
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. "
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by gbulmash (688770) * <<semi_famous> <at> <yahoo.com>> on Thursday June 09 2005, @01:24PM (#12771777) Homepage Journal
    And if you want to heat the house, you have to light a fire in a firebox outside and then manually pump a bellows to force heated air into the house. The spec had an automated heating system with natural gas, a pilot light, and fans, all controlled by a thermostat, but management only assigned the developers to your project for three weeks and the only way to get the project "finished" in the allotted time was this kludge. But don't worry, it will be fixed in v2.0, which is currently calendared for 2007 by management... unless something they consider more important comes along.

    - Greg

    • I'm sure the guy will have no problems heating his house with the flames that are shooting from his web server right now.
    • by jellomizer (103300) * on Thursday June 09 2005, @01:30PM (#12771885)
      While moderated funny. I think I see the real point. A lot of the time of software failure is basicly management going to the development team and tells them to cut corners to get it done. So you could be the best interface developer on the planet. But if they tell you that it needs to be done now. when you are halfway threw. You end up breaking rules because it is quiker to program .
      • by MisanthropicProgram (763655) on Thursday June 09 2005, @01:36PM (#12771956)
        I was about to say something similar.

        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.

        • by miketo (461816) <miketoNO@SPAMnwlink.com> on Thursday June 09 2005, @02:13PM (#12772472)
          You are right in several respects: non-development management has screwed over more projects than it's ever helped. I've seen it and had my projects fscked many a time. One classic was the VP who wanted the acronym "API" removed from the help files for a developer kit. Reason? "We make solutions, not programming software."

          But I *will* point fingers at developers for bad design, too. In the same company I have worked with developers who code up something that neither does what it should, is usable by anyone but them, or can be gracefully fit into the existing programming model. Too often they were called a "temporary fix" for the current release, to be fixed in a future release. It never was, it just became more encrusted with shims, helper libraries, and other complexification / bogger-downers.

          Same goes for UI designed by developers. *UNLESS* you have spent time with the end users seeing what it is they are trying to do, you are not going to hit the mark by coding UI in your cubicle on the mistaken assumption that you know the best way to do something.

          I have seen this happen so many times. I take a developer to a customer site to help diagnose a problem. After only ten minutes, the light comes on in the developer's head and a new solution is created that works, works well, and does what the customer wants and expects. Yet most development happens in reverse: cook up an idea, code it, then see if anyone likes it.

          There's a lot of bad software project management out there, and there is enough blame to go around.
              • by computational super (740265) on Thursday June 09 2005, @04:14PM (#12773886)
                If other industries and professions can accurately estimate and deliver product, why can't software?

                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.

    • Yeah, but... (Score:5, Insightful)

      by DavidNWelton (142216) on Thursday June 09 2005, @01:43PM (#12772065) Homepage
      ... 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.
      • Re:Yeah, but... (Score:4, Insightful)

        by CosmeticLobotamy (155360) on Thursday June 09 2005, @02:04PM (#12772337)
        It's not so bad that the article guy pissed on stuff, the problem is he pissed on stuff without being even remotely funny.
      • Re:Yeah, but... (Score:5, Insightful)

        by wheany (460585) <wheany+sd@iki.fi> on Thursday June 09 2005, @02:08PM (#12772410) Homepage Journal
        The teacher of our software testing course said that because software engineering is such a young business, people expect the impossible.

        If you were building a house, no-one would come and say that you need to add one more floor that is twice as wide between floors 2 and 3 when you are already making the roof. Oh and it's done in two weeks, right?
      • Re:Yeah, but... (Score:4, Insightful)

        by pete6677 (681676) on Thursday June 09 2005, @02:38PM (#12772815)
        Most houses are not some completely new design that has never been tried before. Sure, there may be different combinations of features, but chances are it's not something incredibly unique. If it is unique, the house will likely be slow and expensive to build with many problems discovered later.

        Software on the other hand, is much more likely to be unique. Nobody requests a word processor to be made for them, they just go out and buy (or "borrow") a copy of Word. Most software development is largely unique, so there are naturally going to be more problems, delays and cost overruns. This is just one reason why software projects tend to be much harder to manage than other projects such as buildings.
        • Re:Yeah, but... (Score:5, Insightful)

          by jc42 (318812) on Thursday June 09 2005, @02:37PM (#12772810) Homepage Journal
          it actually took friggin long for them to come up with the idea for a chimney.

          Here in Boston, one of the fun bits of history is that in 1631, what may have been the first fire ordinance was passed. Among other things, it outlawed wooden chimneys.

          Think about it. There was a reason that they decided to ban wooden chimneys. It wasn't done out of silliness.

          Sometimes I think of this when I see an especially goofy mis-design in some software. I'm also reminded of it by a lot of the anti-regulation rhetoric in this and other forums.

      • by bigman2003 (671309) on Thursday June 09 2005, @01:42PM (#12772050) Homepage
        Well, obviously if he designed a house...

        The roof would cave in when more than 30 people knocked on the front door.

          • by Ricdude (4163) on Thursday June 09 2005, @04:50PM (#12774266) Homepage
            This is why building codes state unambiguously how thick joist must be, and how far you are allowed between them, how thick posts must be to hold up a deck of size WxD, how to anchor posts to foundation, what to use for foundation, how deep cement anchors must be embedded in the ground, etc.

            "Standards", as far as software construction, are non-existent. Well, there are some style guides out there, but most of them conflict with most others. "Style" guides usually focus on inane issues like indentation and variable naming, instead of including insightful issues like, "C library functions that operate on strings without checking lengths should not be used: (list of functions to avoid)." Classifications of error conditions and how to recover or adequately respond to them are also usually lacking (what's a warning? what's an error?)

            When issues like this are developed for software, and people actually follow them, you'll see greater consistency in software.
            • by Peaker (72084) <gnupeaker@@@yahoo...com> on Thursday June 09 2005, @06:42PM (#12775289) Homepage
              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...)
            • by Xyrus (755017) on Thursday June 09 2005, @08:36PM (#12776203) Journal
              But let's turn the tables here. Let's give the home builders the usual specs that a software developer is given.

              You estimate it will take you 18 months to build the house. The "owner" comes back and says you have eight.

              You say you need specific pieces of wood and nails to build the house with, however the owner tells you to use new unproven materials that don't even have effective methods of working with.

              You say you need specific types of hammers, saws, cement mixers, etc. The owner says you can only use a rusty hammer with a broken claw, a dull saw, and you'll have to mix the cement by hand in a bucket to pur the foundation.

              Your allowed to look at the location your going to build at, but you are not given the resources or time research the ground stability.

              After you have rushed together a blue print, you're told to start. Halfway through, the owner changes the building materials, tells you that the utilities won't be there for another year, and change the complete layout of the house in the process.

              In the last two weeks of frantic work, the town code person changes all the building codes.

              So what kind of house do you get after this?

              You don't.

              And that's how a lot of software comes out.

              ~X~
      • by Rei (128717) on Thursday June 09 2005, @01:50PM (#12772158) Homepage
        I'm wondering when there will be a bugfix for the author's writing style.

        I havent seen so many runon sentances and bad capitalization/punctuation and mispelings since Third Grade, theyre really anoying and distracting from the Article, I want my articles written good.
          • by Valdrax (32670) on Thursday June 09 2005, @02:37PM (#12772807)
            I want mine written well, but that's just me. :)

            Yeah, that's cute and all, but maybe you failed to notice the following:
            1. The word "havent" is missing an apostrophe.
            2. The word "runon" is missing a hyphen.
            3. The list of three things that bother him is linked together like "X and Y and Z" instead of "X, Y, and Z."
            4. The word "mispelings" is mispelled.
            5. "Third Grade" is capitalized for no good reason.
            6. The whole latter paragraph is a single run-on sentence. "Third Grade" should end the first sentence, and "theyre" should begin the second.
            7. The word "theyre" is missing an apostrophe.
            8. The word "anoying" is mispelled.
            9. The word "Article" is capitalized for no good reason.
            10. "Article" should end the second sentence, and "I" should start the third.

            Oh, but you'll correct "good" instead of "well" because YOU FAILED TO DETECT IRONY.
  • by Tuxedo Jack (648130) on Thursday June 09 2005, @01:26PM (#12771812) Homepage
    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.
      • by peragrin (659227) on Thursday June 09 2005, @03:33PM (#12773486)
        Get it right

        Apple would be quietly getting by on sales of high-end earthen homes.(think hobbit hole) They would include their own wind and solar power supply as well, but need regular line power to work at 100%.

        I also imagine Gentoo would be more like here's an axe, a saw, a hammer, and here is a sample floor plan. There are some good sized trees over there have fun.
  • by Anonymous Coward on Thursday June 09 2005, @01:28PM (#12771836)
    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
    • Aaauugh, the typos! Comma splices! Run-ons! My bleeding eyes!
    • by quinto2000 (211211) on Thursday June 09 2005, @02:16PM (#12772504) Homepage Journal
      He forgot to add the price that they paid for this imaginary house: $2,000 with all of the appliances included. You can't complain about commmodity software development not being up to the standards of house building. You need to go to 5 years of school + an internship and then be licensed to build a house, you're paid hundreds of dollars an hour, and you generally are expected to go over budget and over schedule.
    • by EvilNTUser (573674) on Thursday June 09 2005, @03:02PM (#12773129)

      "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.

      • by apankrat (314147) on Thursday June 09 2005, @03:50PM (#12773680) Homepage
        It is really hard to open outwards-swining door with a mighty foot kick :)
        • by EvilNTUser (573674) on Thursday June 09 2005, @03:54PM (#12773707)

          "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.

  • by Timesprout (579035) on Thursday June 09 2005, @01:28PM (#12771839)
    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
  • The Opposite House (Score:5, Interesting)

    by CmdrObvious (680619) on Thursday June 09 2005, @01:28PM (#12771847)
    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/ [dilbert.com]

  • by EnronHaliburton2004 (815366) * on Thursday June 09 2005, @01:28PM (#12771854) Homepage Journal
    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!
  • by professorhojo (686761) * on Thursday June 09 2005, @01:29PM (#12771859)
    would every room be duplicated 2 or 3 times?

    (LOL.. just kidding! don't troll-rate me please! :))))
  • by thewiz (24994) * on Thursday June 09 2005, @01:29PM (#12771870)
    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.
  • by CyricZ (887944) on Thursday June 09 2005, @01:30PM (#12771882)
    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.
    • by jnik (1733) on Thursday June 09 2005, @01:56PM (#12772225)
      GUIs are supposed to be intuitive

      Easy to say. The only truly intuitive interface is the nipple.

      Convention leads to consistency leads to familiarity, which is not not the same thing as intuitiveness. Apple understood this--that's really why the platform works, not because it taps some Jungian archetype of computerness.

      It also leads to stagnation, inertia, inefficiencies writ in stone, and claims of mindless copying.

      There are more intuitive and less intuitive interfaces. There are ways to design so as to stay out of the way of the user, or hinder it. But nothing is flat-out, absolute, nonrelative, intuitive.

  • Availability? (Score:3, Insightful)

    by scovetta (632629) on Thursday June 09 2005, @01:32PM (#12771910) Homepage
    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.
  • by Canonymous Howard (325660) on Thursday June 09 2005, @01:35PM (#12771944)
    it would collapse the first time 50,000 geeks tried to visit it.
  • by beforewisdom (729725) on Thursday June 09 2005, @01:38PM (#12772006)
    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.
  • as usual (Score:3, Interesting)

    by tomstdenis (446163) <{tomstdenis} {at} {gmail.com}> on Thursday June 09 2005, @01:39PM (#12772011) Homepage
    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
  • by Locke2005 (849178) on Thursday June 09 2005, @01:40PM (#12772023)
    What is the architectural equivalent of doing everything in flash? Las Vegas?
  • by ScentCone (795499) on Thursday June 09 2005, @01:55PM (#12772221)
    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.
  • Apples and oranges (Score:4, Insightful)

    by Pedrito (94783) on Thursday June 09 2005, @02:31PM (#12772743) Homepage
    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.
    • by aduzik (705453) on Thursday June 09 2005, @03:24PM (#12773364) Homepage
      Who builds shareware houses?

      Hey, I build shareware houses.

      • The front door won't unlock for sixty seconds while you stand outside in the rain staring at a nag screen telling you about the terrible plight of the builder (me).
      • The garage has two stalls, but only access to one is allowed.
      • The second floor is "disabled"
      • The bathroom has "limited functionality" (whatever that means)
      • Every thirty minutes, the house kicks you out and makes you reenter.
  • by Lendrick (314723) on Thursday June 09 2005, @02:41PM (#12772836) Homepage Journal
    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.
  • by cfalcon (779563) on Thursday June 09 2005, @03:25PM (#12773390)
    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.

    ---
  • by JDHawg (800829) on Thursday June 09 2005, @03:44PM (#12773623)
    This is from an old Air Force Software Acquisition Guide. Enjoy.

    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.

    • by BoomerSooner (308737) on Thursday June 09 2005, @01:51PM (#12772166) Homepage Journal
      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.