ITworld.com
  Search  
ITworld Home Page ITworld Webcasts ITworld White Papers ITworld Newsletters ITworld News ITworld Topics Careers ITworld Voices ITwhirled Changing the way you view IT

Point Solutions Revisited

ITworld.com 07/23/2007

Sean McGrath, 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.

On this topic

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

Sean McGrath is CTO of Propylon. He is an internationally acknowledged authority on XML and related standards. He served as an invited expert to the W3C's Expert Group that defined XML in 1998. He is the author of three books on markup languages published by Prentice Hall. Visit his site at: http://seanmcgrath.blogspot.com.

Read more of Sean McGrath's ITworld.com columns here.




Sponsored Links

IP Networks Boost Secure Health Communications
AT&T provides secure communication to keep health care moving forward.
Multi-Core Test Results In Virtualized Servers
Check Out The Latest Xeon® Performance Results. Virtualized Servers vs. Non-Virtualized Servers.
IMPROVE YOUR SUPPORT EFFICIENCY
WebEx lets you remotely control, configure and install applications and updates more efficiently.
FREE virus, spyware & adware scan
Find the malware your AV missed with the Sophos Threat Detection Test.
Sign up for a Microsoft Dynamics® CRM WEBCAST
Hear globally recognized leaders in customer strategy discuss the importance and evolution of CRM.
» Buy a link now

Advertisements
Sponsored links
Bring harmony to your mix of UNIX-Linux-Windows computing environments
KODAK i1400 Series Scanners stand up to the challenge
Top 5 Reasons to Combine App Performance and Security
Locate Hidden Software on business PCs with this free tool
 Home   IT in the enterprise  Productivity paradox
www.itworld.com    open.itworld.com     security.itworld.com     smallbusiness.itworld.com
storage.itworld.com     utilitycomputing.itworld.com     wireless.itworld.com

 
Contact Us   About Us   Privacy Policy    Terms of Service   Reprints  

CIO   Computerworld   CSO   GamePro   Games.net   Industry Standard   Infoworld   ITworld  
JavaWorld   LinuxWorld  MacUser   Macworld   Network World   PC World   Playlist  

DEMO   IDG Connect   IDG Knowledge Hub   IDG TechNetwork   IDG World Expo  

Copyright © Computerworld, Inc. All rights reserved

Reproduction in whole or in part in any form or medium without express written permission of Computerworld Inc. is prohibited. Computerworld and Computerworld.com and the respective logos are trademarks of International Data Group Inc.