Software is Like Building a House

  • noeld

    SSC Guru

    Points: 96590

    shepton (10/5/2007)


    Unashamedly pinched from I can't remember where...

    If Architects Had To Work Like Software Designers...

    Dear Mr. Architect:

    Please design and build me a house. I am not quite sure of what I need, so you should use your discretion. My house should have somewhere between two and forty-five 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 will make the final decision of what I want. Also, bring me the cost breakdown for each configuration so that I can arbitrarily pick one.

    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 aluminum, vinyl, or composite siding. (If you choose not to specify aluminum, be prepared to explain your decision in detail.)

    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 kitchen should be designed to accommodate, among other things, my 1952 Gibson refrigerator.

    To insure that you are building the correct house for our entire family, make certain that you contact each of our children, and also 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 that you weigh all of these options carefully and come to the right decision. I, however, retain the right to overrule any choices that you make.

    Please don't bother me with small details right now. Your job is to develop the overall plans for the house: get the big picture. At this time, for example, it is not appropriate to be choosing the color of the carpet. 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 therefore should have appeal to a wide variety of potential buyers. Please make sure before you finalize the plans that there is a consensus of the population in my area that they like the features this house has. I advise you to run up and look at my neighbor's house he constructed last year. We like it a great deal. It has many features that we would also like in our new home, particularly the 75-foot swimming pool. With careful engineering, I believe that you can design this into our new house without impacting the final 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 costs as a result of later design changes.

    You must be thrilled to be working on as an interesting project as this! 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 complete ideas and plans.

    PS: My wife has just told me that she disagrees with many of the instructions I've given you in this letter. As architect, it is your responsibility to resolve these differences. I have tried in the past and have been unable 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..

    Mark

    Now That's FUNNY...


    * Noel

  • webrunner

    SSC-Dedicated

    Points: 30306

    I know I am a terrible estimator; it's definitely something I want to improve. For example, I thought this post would take me one minute to write and it ended up taking me five.

    But in terms of things that don't take longer than expected, in my experience those tend to be situations where someone else stands to make money. I always dread movie lines, then the next thing I know I'm at the front.

    The corollary is that getting a refund or exchange almost always takes longer than expected.

    :w00t:

    webrunner

    -------------------
    A SQL query walks into a bar and sees two tables. He walks up to them and asks, "Can I join you?"
    Ref.: http://tkyte.blogspot.com/2009/02/sql-joke.html

  • Donald E. Weigend

    SSC-Addicted

    Points: 464

    I like to use Bob Vila's rule: Take your estimate and double the units of measure. So if you think something will take one minute to complete, your estimate should be two hours. If you think that a project will take three hours, your estimate should be six days, and so on. Now another good rule of thumb is to use Scotty's (from Star Trek) method for estimating; multiply everything by a factor of four. Something that should take two weeks to complete will actually take eight weeks.

  • Wayne West

    SSC-Insane

    Points: 22586

    Donald E. Weigend (10/5/2007)


    I like to use Bob Vila's rule: Take your estimate and double the units of measure. So if you think something will take one minute to complete, your estimate should be two hours. If you think that a project will take three hours, your estimate should be six days, and so on. Now another good rule of thumb is to use Scotty's (from Star Trek) method for estimating; multiply everything by a factor of four. Something that should take two weeks to complete will actually take eight weeks.

    But you left off the best Scotty/Kirk part!

    Kirk: Mr. Scott, do you always increase your time estimates by a factor of four?

    Scotty: Of course, Captain! How else can I keep my reputation as a miracle worker!

    I've always liked the concept of under-promise and over-deliver. And Mark's piece is absolutely brilliant! Since he doesn't remember from where he unabashedly pinched it, I shall with equal unabashment pinch it from him.

    -----
    [font="Arial"]Knowledge is of two kinds. We know a subject ourselves or we know where we can find information upon it. --Samuel Johnson[/font]

  • jereme.guenther@gmail.com

    SSCarpal Tunnel

    Points: 4259

    Well it is really good to know that even someone who has been involved in making estimates most of his life has trouble with it.

    I have always had trouble giving estimates, partly because I just think it won't take as long as it does. I used to error on the short side because I was afraid the people receiving the estimate wouldn't accept a longer time line. While I think I have gotten over that problem, I still seem to estimate things on the short side.

    Other people are always telling me that all it takes is more practice and I will get better at estimating software projects. It is good to know that others have struggled with the same issues.

  • H-122523

    Hall of Fame

    Points: 3667

    I experienced that working with an 'internal mutiplication factor' works out quite alright for me.

    When estimating how much time a project would take, most of the time I've got a pretty good hunch. And I know it's based on the fact that I believe that all actions to be taken will turn out right first time. Which of course never happens. So I multiply the initial estimate by 2.

    Works most of the time for me; perhaps it's a matter of finding your own personal internal multiplication factor....

  • Steve Jones - SSC Editor

    SSC Guru

    Points: 720447

    Or "H" is better at getting stuff done than the rest of us 😛

  • Bob Hoffman-209065

    Hall of Fame

    Points: 3224

    I think estimating comes with knowledge of what you are going to do and the desire to get it done on time to start with.

    I volunteer a Church camp to take care of all the facilities and projects there. It is 80 miles from my home, a 2 hour drive one way. There is no nearby store for supplies. I have to maintain a 7 mile long "driveway" just to access the property. We generate all own utilities. I have to design the project, plan the work schedule, get materials to the site, line up the workers, feed the crew and anticipate all the problems that will crop up. I've learned to have plans A, B & C ready to go when things go bad and they do.

    My success rate?

    All things considered, not to bad. Some projects are taking longer to completion, others do not. This year a new 44' bridge was put in. Additional parking was added. A roof put on the new bathhouse. Another new cabin completed except for interior furnishings. Two of my 3 generators were hauled out because of mechanical breakdowns. 2500 -3000 gallons of fuel hauled in. Plus all the other normal stuff being done while fighting mosquitoes, bears, white sox's, etc.

    So accurate estimating can be done if you want or really need the project to be done. The bridge took more than a year in planning. Closer to 3 and still required changes when the onsite conditions changed.

    You have to think differently based upon your resources. In Steve's case, when the throw bolts broke, his wife went to the store to get more. If I needed to do that, it would take someone a minimum of 2 hours to get them, if they could quickly find them. I would have to plan on having extra bolts before hand.

    That or have them flown in from town, a 15 minute flight. We get ice cream that way! :w00t:

  • NF Scott Smith

    Right there with Babe

    Points: 773

    It's said that no battle plan survives contact with the enemy.

    -this isn't really the same topic but the last line of any good plan should be "If all else fails, improvise". Among other things, this will save your battle plan from becoming obsolete.

  • Tim Mitchell

    SSCoach

    Points: 15664

    Project schedules are just like everything else, it's easy to account for the big stuff but it's lots of little stuff that eats you to death. It's easy for me to budget around my two mortgage payments, car payments, electricity bills, and student loans. It's the neverending $30 trips to Wal-Mart and Home Depot that keep me broke :w00t:

    Tim Mitchell, Microsoft Data Platform MVP
    Data Warehouse and ETL Consultant
    TimMitchell.net | @Tim_Mitchell | Tyleris.com
    ETL Best Practices

  • Todd Townley

    Ten Centuries

    Points: 1318

    If Architects Had To Work Like Software Designers...

    If you've never seen the movie / read the book, check out "Mr. Blandings Build His Dreamhouse" (movie with Cary Grant and Myrna Loy). Classic example of the above statement!

    The best part is where one small change significantly affects the project cost. (I won't say more.) 😀

  • Bob Hoffman-209065

    Hall of Fame

    Points: 3224

    Re: Mr. Blandings Build His Dreamhouse

    Great movie. :w00t:

    We drag that out every now and then and thoughly enjoy it. It's even funnier when you are not familiar with east coast mentality.

    We had to watch that just before we built our current home. It kept things in perspective.

  • peterzeke

    SSCrazy Eights

    Points: 8998

    About the only thing that goes right when it comes to time is when I heat something in the microwave: 2.41 minutes and the popcorn is ready. i know it, the family knows it. It even says so on the bag.

    But, anything that takes longer than 2.41 minutes has an unmeasurable lag ratio, an aill-defined start time, and a completion estimate that seems unattainable.

    Like Steve Jones, I've come to discover that maintenance around the house is tough to estimate. Of the jobs I've done, I'd say that I was off by 3-to-1: if I thought something would take an hour, it took 3. So, now, when I estimate that kind of work, I nearly consider multiplying my initial estimate by 9: if I think it will take an hour, multiply it by three, and just to be safe, multiply it by 3 again.

    So next time the toilet gets clogged, rather than assume it will take 20 minutes to plunge it out, I put some bigger numbers around the job, say 3 hours. (Whoa! -- It's a hell of a clogg!) 😉

  • Matt Miller (4)

    SSC Guru

    Points: 124208

    peterzeke (10/5/2007)

    So next time the toilet gets clogged, rather than assume it will take 20 minutes to plunge it out, I put some bigger numbers around the job, say 3 hours. (Whoa! -- It's a hell of a clogg!) 😉

    If you approach that problem from a DATABASE application developer's viewpoint, it would take three hours. After all - you don't use the front door (UI) - you'd have to clear the clog from the BACKend....

    [ewwwwwwwwww]:w00t:

    ----------------------------------------------------------------------------------
    Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?

  • Michael Valentine Jones

    SSC Guru

    Points: 64818

    This works well for me

    1. Set delivery date

    2. Do some programming

    3. Test

    4. If test is good, go live, else go live

    5. Define requirements

    6. Repeat 1 through 5 until system is obsolete

Viewing 15 posts - 16 through 30 (of 46 total)

You must be logged in to reply to this topic. Login to reply