Concrete Code

  • Comments posted to this topic are about the item Concrete Code

  • Absolutely. Flexibility comes at a price though, but in my view it's well worth it in the long term.

  • So often, when I have written code with a view to being able to handle possible future expansions or changes in requirements, the life I have saved has been my own.

    I am fortunate in two ways though:

    1.I have a boss who says "Get X done by time T" and leaves me to it

    2.There is actually enough time to do X by time T with a bit of slack which I can use to make things happen better than they did last time around.

    When you build a house, and someone comes along and demands an extra room, it is *so* nice not to have to rebuild the house first!

    Mark Dalley

  • Exactly. Have to draw the line somewhere tho - you could build the house with extra strong foundations just in case you need to put an extra storey on top. Spose it depends how likely that is.

  • I would term the approach adopting a pragmatic approach rather than a "purist" approach.

  • I can't resist pointing out that you make concrete stronger by adding --- REBAR!

    Mike Hinds Lead Database Administrator1st Source BankMCP, MCTS

  • I've never had Red Cross training, but I like to think that I've learned how to apply CPR -- configurability, predictability, resiliancy -- to software systems. Still it's surprisingly hard to teach people that with software, the time to do CPR is before your code has a heart attack.

  • I tried to work in rebar somehow, Mike, but couldn't. That helps with sheer forces, but not with expansions.

  • Still, rebar in concrete won't crumble, unlike its T-SQL counterpart.

    Mike Hinds Lead Database Administrator1st Source BankMCP, MCTS

  • On the other hand...

    One of the rules of extreme programming was "do the simplest thing that could possibly work."

    There is some danger in adding code complexity to anticipate future conditions that may never arise. Like the man said: "it all depends"!

  • Mike Hinds (4/27/2010)


    Still, rebar in concrete won't crumble, unlike its T-SQL counterpart.

    Regrettably, this side of the Atlantic, there have been re-enforced concrete bridges and buildings where the Re-Bars rusted and broke open the Concrete as the volume of the rust is greater than that of the original metal.

  • Jim Russell-390299 (4/27/2010)


    On the other hand...

    One of the rules of extreme programming was "do the simplest thing that could possibly work."

    There is some danger in adding code complexity to anticipate future conditions that may never arise. Like the man said: "it all depends"!

    Extreme programming = extreme maintenance bills!

  • david.wright-948385 (4/27/2010)


    Jim Russell-390299 (4/27/2010)


    On the other hand...

    One of the rules of extreme programming was "do the simplest thing that could possibly work."

    There is some danger in adding code complexity to anticipate future conditions that may never arise. Like the man said: "it all depends"!

    Extreme programming = extreme maintenance bills!

    Only when done incorrectly. "Building to only meet the current spec" doesn't mean "pick the spec that destroys any ability to expand it": it means build with an eye to flexibility, just don't play Kreskin and pretend you can read the future. Build what you need right now, and let full specs show up for the feature when it's needed

    Building features you don't need right now usually means you will have to rip that out and put something new in (bastardizing your code in the process).

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

  • I have to say, it's interesting to see a contrast being made between "flexible" code and "solid" code. In my mind, the MORE "flexible" your code needs to be, the MORE "solid" your code needs to be. Build solid code no matter how fluid your specs are: solid code is a whole lot more liable to adapt to different activity levels than something not built to last.

    The flaw with flexibility is something fowler once took on. His comment was something to the extent of: be as flexible as you like during your design phase, but at some point the design phase will end, so the end result need to be able to work for years on end.

    Develop code as if it's the last version of the code you will ever need for that function. Chances are, at some point it will be. Too much flexibility might unfortunately mean that "point" comes a lot sooner than if you build something solid.....

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

  • I find it interesting that you show a picture of a collapsed concrete structure. I was reminded of the recent earthquake in Haiti. A real tragedy. There is a movement among some architects to use shipping containers as a form of modular housing. They can be welded together, and can create very modular, and ultimately flexible design and very strong housing. I think this has a direct correlation to code. Overall modular design with a bit of thought given to flexibility goes a long way.

    In Haiti, if they had shipping container buildings their foundations would not have mattered, because the buildings were strong enough to withstand the shock. The human cost would have been substantially lower. So, forget about concrete, use steel boxes....in your buildings and your code.

Viewing 15 posts - 1 through 15 (of 23 total)

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