A Broken Data Model

  • Miles Neale (5/9/2013)


    Steve Jones - SSC Editor (5/9/2013)


    ... We've shoehorned some of those features in there, and that causes issues.

    The bane of developers and their system, shoehorning. I have learned to dislike this process over the years. But a developer cannot stop it from happening. We cannot even slow it down. Many think it is cheap and easy but there is a cost somewhere in the process where others or you yourself will have to pay.

    After years of use and resurfacing or shoehorning, systems start to show the results of the series of compromises that have been made. Like using a pair of pliers as a hammer you are going to get hurt before it is over, and you had best watch out for it will in fact be wrong.

    Thanks Steve! You helped me get off a late afternoon vent 🙂

    M.

    Shoehorning is, unfortunately, not just inevitable, but necessary. Unlike the textbook computer science world where applications are planned, built, and used, and redesigned when new requirements arise, it is simply not possible to rip everything out and rethink stuff when requirements change. Organizations and societies function on continuity and consistency (as much as possible); consider the importance of precedent in the legal world. Existing systems must be preserved, at least until requirements change so much that it is necessary to make changes along with all the disruption they cause are justified.

    When you want a computer to behave in a different way, you simply load new software. When an organization or society has to behave in a different way, it's a much more complex problem

    ...

    -- FORTRAN manual for Xerox Computers --

  • jay-h (5/10/2013)


    Shoehorning is, unfortunately, not just inevitable, but necessary. Unlike the textbook computer science world where applications are planned, built, and used, and redesigned when new requirements arise, it is simply not possible to rip everything out and rethink stuff when requirements change. Organizations and societies function on continuity and consistency (as much as possible); consider the importance of precedent in the legal world. Existing systems must be preserved, at least until requirements change so much that it is necessary to make changes along with all the disruption they cause are justified.

    When you want a computer to behave in a different way, you simply load new software. When an organization or society has to behave in a different way, it's a much more complex problem

    That is true. If the original plan accepts this truth, then it can be incorporated into the design in the first place. A good schema is surprisingly resilient to new features. If real-world objects are modeled correctly (not just normalization, but well-considered objects) then the kinds of things people might request later are typically extensions to the well-considered schema.

    I've spend this week trying to "shoehorn" new features into a schema that was built to solve a very specific problem in a very specific way... and now that new assumptions have been introduced the fragile/brittle process is already crumbling. I've spent more time making new wine fit into old skins than it would take to start over completely.

    ... Unfortunately, management is typically frightened by "new build" and assumes that "we already have 90% done, reuse that investment" and we spend all our time debugging leaks in the design.

  • jay-h (5/10/2013)


    Miles Neale (5/9/2013)


    Steve Jones - SSC Editor (5/9/2013)


    ... We've shoehorned some of those features in there, and that causes issues.

    The bane of developers and their system, shoehorning. I have learned to dislike this process over the years. But a developer cannot stop it from happening. We cannot even slow it down. Many think it is cheap and easy but there is a cost somewhere in the process where others or you yourself will have to pay.

    After years of use and resurfacing or shoehorning, systems start to show the results of the series of compromises that have been made. Like using a pair of pliers as a hammer you are going to get hurt before it is over, and you had best watch out for it will in fact be wrong.

    Thanks Steve! You helped me get off a late afternoon vent 🙂

    M.

    Shoehorning is, unfortunately, not just inevitable, but necessary. Unlike the textbook computer science world where applications are planned, built, and used, and redesigned when new requirements arise, it is simply not possible to rip everything out and rethink stuff when requirements change. Organizations and societies function on continuity and consistency (as much as possible); consider the importance of precedent in the legal world. Existing systems must be preserved, at least until requirements change so much that it is necessary to make changes along with all the disruption they cause are justified.

    When you want a computer to behave in a different way, you simply load new software. When an organization or society has to behave in a different way, it's a much more complex problem

    Jay - I cannot argue with the truth, however a better approach would be to take at least enough time to see if the data model and the system can be altered cheaply without the compromise that shoehorning brings. Once the shoehorning happens and say unedited unstructured text describing something in added to the name or address filed then all control of that data is lost and the data manager or analyst later who has to clean up the at mess finds that it is far more costly and faces the loss of what could have been good data.

    I have seen entire databases corrupted into almost unworkable and unusable collections of data that reduce in value compromise by compromise and finally fail to perform. Management will often then look at the developer and say "Well Ted use to make this work, why can't you???" They do not understand that Ted made the last compromise in the model that brought the entire process to the point of failure and fused the system into a convoluted mess.

    BUt I cannot disagree with the point that it happens and most think it is great because for the bottom line it costs little for this quarter or this year, and it can happen quickly. The unfortunate thing is that there is an end to the compromises a system can bear.

    M.

    Not all gray hairs are Dinosaurs!

Viewing 3 posts - 16 through 17 (of 17 total)

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