Slashdot Mirror


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

33 of 578 comments (clear)

  1. And the heating system by gbulmash · · Score: 5, Funny
    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

    1. Re:And the heating system by jellomizer · · Score: 4, Insightful

      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 .

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    2. Re:And the heating system by bigman2003 · · Score: 4, Funny

      Well, obviously if he designed a house...

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

      --
      No reason to lie.
    3. Re:And the heating system by Rei · · Score: 5, Funny

      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.

      --
      Sigur RÃs: I didn't know that Heaven had a rock band.
    4. Re:And the heating system by SiO2 · · Score: 4, Funny

      I want my articles written good.

      You really meant to say that you want your articles written well.

      SiO2

    5. Re:And the heating system by miketo · · Score: 5, Insightful

      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.

    6. Re:And the heating system by SupremeTaco · · Score: 5, Funny

      W H O O S H!

      --
      You have a constitutionally protected right to be wrong, and I the right to ignore you.
    7. Re:And the heating system by computational+super · · Score: 5, Interesting
      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.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    8. Re:And the heating system by Ricdude · · Score: 4, Insightful

      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.

      --
      How's my programming? Call 1-800-DEV-NULL
    9. Re:And the heating system by Peaker · · Score: 4, Interesting

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

    10. Re:And the heating system by Xyrus · · Score: 4, Insightful

      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~

      --
      ~X~
  2. Of course... by Tuxedo+Jack · · Score: 4, Funny

    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!
    1. Re:Of course... by peragrin · · Score: 5, Funny

      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.

      --
      i thought once I was found, but it was only a dream.
  3. Already slow; Full Text of Article: by Anonymous Coward · · Score: 5, Informative

    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

    1. Re:Already slow; Full Text of Article: by saintp · · Score: 4, Funny

      Aaauugh, the typos! Comma splices! Run-ons! My bleeding eyes!

    2. Re:Already slow; Full Text of Article: by quinto2000 · · Score: 4, Insightful

      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.

      --
      Ceci n'est pas un post
    3. Re:Already slow; Full Text of Article: by EvilNTUser · · Score: 4, Interesting

      "Herbert unlocks the door and the damn thing swings OUTWARDS knocking you back a step or two."

      Wtf... Where I live, all doors open outwards. It's much more convenient*. Interesting assumption coming from a UI critic, who should know better than to accept what he has been given as the best alternative.



      *-The door swings into the yard, instead of creating an obstruction in the foyer.
      -You can close the door immediately, instead of having to take off your shoes and get out of the way first.
      -If a fire breaks out, and a bunch of panicing morons are pushing you from behind, you can still open it.

      --
      My Sig: SEGV
  4. The Opposite House by CmdrObvious · · Score: 5, Interesting

    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/

  5. His blog follows a flawed design... by EnronHaliburton2004 · · Score: 5, Insightful

    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!

  6. if slashdot editors built houses by professorhojo · · Score: 4, Funny

    would every room be duplicated 2 or 3 times?

    (LOL.. just kidding! don't troll-rate me please! :))))

  7. Mirror! by caryw · · Score: 4, Informative

    Box responds, just not on port 80... someone has the max apache clients set too low. Anyway, MirrorDot mirror:

    http://mirrordot.org/stories/bd14487390c17a50503ea 63520d2685a/index.html
    --
    NoVA Underground: Loudoun, Arlington, Alexandria, Prince William and Fairfax County forums

  8. You beat me to it. by MisanthropicProgram · · Score: 4, Funny
    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.

  9. The problem in a nutshell is by beforewisdom · · Score: 4, Insightful

    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.

  10. Yeah, but... by DavidNWelton · · Score: 4, Insightful

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

    1. Re:Yeah, but... by wheany · · Score: 4, Insightful

      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?

    2. Re:Yeah, but... by jc42 · · Score: 4, Insightful

      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.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  11. Re:Software is much more complicated by Ralph+Yarro · · Score: 4, Funny

    a software designer or team is likely to have at least one, if not many, problems that have never been solved before.

    Don't call them "problems", the correct name is "users".

    --

    The real Ralph Yarro posts as Anonymous Coward. Anyone else is an impostor.
  12. As someone who builds houses and software by BoomerSooner · · Score: 5, Insightful

    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.

  13. Re:Jef Raskin spoke of such things YEARS ago! by jnik · · Score: 5, Insightful
    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.

  14. YOU ALL FAIL IT!!! by Valdrax · · Score: 4, Funny
    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.
    --
    If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
  15. That's right, pin it on the developers. by Lendrick · · Score: 5, Insightful

    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.

  16. Re:Apples and oranges by aduzik · · Score: 5, Funny
    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.
    --
    If it's not one thing it's your mother.
  17. If Architects Had To Work Like Programmers by JDHawg · · Score: 5, Funny
    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.