Point Solutions Revisited

By Sean McGrath, ITworld.com |  Development Add a new comment

I have just corrected an egregious filing system algorithm error in my head. By that, I mean that I have fixed the filing system I carry around in my head. I don't mean that I have mentally fixed a filing system problem and will later fix it in the real world. The problem that needed fixing was in my head, not in the real world. I treat my head as the normative copy of my filing system algorithm. The real world is just the place I keep the physical files: not the filing algorithm itself.

Oh and yes, before you ask, I have thought of capturing the filing system algorithm itself on paper and filing it under "F". That would be appropriate on a number of levels. I don't intend to go there, however. Sometimes self-referential systems are best handled by steadfast avoidance rather than full on embrace. I think this is one of them.

One good reason for avoiding writing it down, is that I cannot write my algorithm down no matter how hard I try. It is a living, moving, breathing thing. It is me, myself and I, all rolled into 1. It ain't no piece of paper. I think the same is true of all people. Hence my endless amusement and bemusement at the sort of automated filing often associated with document management systems. But I digress. Actually, I have digressed on my original digression. Time to pop the stack[1] here.

My mental filing system used to have a rule in it that said something like this: "If a system design is a point solution based on a limited subset of the overall problem or 'wired' to particular volatile technologies, then file this under 'bad design'".

I have come across a number of scenarios recently where, it seems to me such "point solutions" have been entirely appropriate. The first example is in the mobile devices space. The design in question is "wired" to the specific capabilities of a number of today's mobile devices. The second example is related to a new business model related to virtual worlds.

My old filing system would have resulted in me approaching the designs thinking negative thoughts like this: "what if the capabilities of the devices change?" (in the case of the first point solution) and "what if the details of the business model changes significantly?" (in the case of the second point solution).

My old filing system would have resulted in effort being expended to generalize the problem; to anticipate changes in the constraints; to "soft code" rather than "hard code" judiciously...

Under my new filing system I still do this sometimes but not always. I have learned the hard way that prediction is very hard: especially about the future. If the future looks very volatile and very unpredictable, then there are times when "point solutions" to a currently known set of parameters is a reasonable thing to do.

I have learned the hard way to ask myself questions like this.

- How much longer will the design cycle be if I try to anticipate the future?

- If I can produce a design for a point solution quickly, perhaps a continual iteration of point solutions makes more sense than using a crystal ball?

The latter in particular goes against essentially everything I was taught about system design. But then again, when I was being trained to do this kind of work, nobody told me that the world would turn on its head every few years either.

The volatility of IT - especially front-end IT - is such that some problems do not stand still long enough to facilitate "design" in the classic sense. When that happens, build point solutions. Ship the prototype and keep shipping iterations of the prototype.

That may be as good as it gets.

[1] http://www.freepatentsonline.com/4628477.html

    Add a comment

    Post a comment using one of these accounts
    Or join now
    At least 6 characters

    Note: Comment will appear soon after you have activated your account.
    Obscene/spam comments will be removed and accounts suspended.
    The information you submit is subject to our Privacy Policy and Terms of Service.

    ITworld LIVE

    DevelopmentWhite Papers & Webcasts

    White Paper

    HP NonStop SQL Fundamentals whitepaper

    This whitepaper offers a detailed look into the fundamentals of HP NonStop SQL solutions. See how this system delivers unprecedented levels of application availability with fail-safe data integrity and meets the needs of enterprises with large-scale business critical applications.

    White Paper

    Nebraska Medical Center case study

    See how the Nebraska Medical Center implemented a SQL solution to make information more readily available to streamline operations, improve patient care and facilitate medical research with an enterprise solution running on HP NonStop servers.

    White Paper

    Concepts of NonStop SQL/MX

    For DBAs and developers who are familiar with Oracle solutions and want to learn about NonStop SQL/MX, this whitepaper provides an overview of the similarities and differences between the two products-with a specific focus on implementation.

    White Paper

    6 Things Your CIO Needs to Know About Requirements

    If your organization is not predictably successful on technology projects, there is likely an issue in requirements. CIOs must take action and own requirements maturity improvement. There are 6 main things a CIO must know about requirements.

    Webcast On Demand

    User Experience Monitoring

    In this webinar, you will learn hints & tips for improving end-user response times from Forrester Research analyst, Jean-Pierre Garbani.

    Sponsor: Nimsoft

    See more White Papers | Webcasts

    Ask a question

    Ask a Question