Point Solutions Revisited

July 23, 2007, 07:27 PM —  ITworld.com — 

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

ITworld.com

I like it!
Post a comment
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
Free books

Build your tech library with our book giveaways.

Windows PowerShell 2.0 Unleashed
By Tyson Kopczynski, Pete Handley, Marco Shaw; Published by Sams

Windows PowerShell Unleashed will not only give you deep mastery over PowerShell but also a greater understanding of the features being introduced in PowerShell 2.0–and show you how to use it to solve your challenges in your production environment. Enter now!

 

Ubuntu Server Administration
By Michael Jang; Published by McGraw-Hill Osborne Media

Realize a dynamic, stable, and secure Ubuntu Server environment with expert guidance, tips, and techniques from a Linux professional. Ubuntu Server Administration covers every facet of system management -- from users and file systems to performance tuning and troubleshooting. Enter now!

Featured Sponsor

AISO founders envisioned a Web hosting company that was environmentally friendly. While the company employed energy-efficient innovations like solar panels, its infrastructure produced unacceptable power and cooling requirements. Find out how AISO leveraged AMD technology to overcome their challenge in this case study white paper.

In this whitepaper, Scalar explores the opportunity to change the landscape with respect to mission critical databases built around Oracle. Leveraging technologies such as Linux, high-end commodity processing power and Oracle RAC technology to architect, design, build and maintain database infrastructure that delivers maximum availability, reliability and performance at a fraction of traditional cost.

On a typical day, weather.com, the Web site for The Weather Channel in Atlanta, serves up between 15 million and 20 million page views. But in September 2004, when back-to-back hurricanes ransacked Florida, the peak traffic on one day more than tripled: over 70 million page views by more than 7 million unique visitors. Read the full success story now.

More Resources