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

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

    3. 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.
    4. 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.
  2. 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

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

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

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

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

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

  8. 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.
  9. 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.
  10. 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.