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

Flexible software is error-enabling software

ITworld 04/08/2008

Sean McGrath, ITworld.com

Bookmark and Share

The late Arthur C. Clark famously once said that any sufficiently advanced technology is indistinguishable from magic.

On this topic

The term 'magic' is one we ruefully use for IT systems too. Of course we cannot make the system magical but some of the things users ask us to make the machine do automatically? ... Magic. Sorry. Machines don't do magic.

Sit around with a bunch of engineers reading through a set of system requirements documents and sooner or later one of their number will exclaim 'Yeah. Right. And then magic happens!'.

We all have idealized visions of IT systems that are at once totally flexible and totally automated. We want the system to be smart, to know how to do the right thing. Oh, and we want it never to allow users to make mistakes.

Therein lies the problem. To paraphrase Arthur C. Clark: any sufficiently advanced end-user action is indistinguishable from an end-user error.

Let us take a simple example. Imagine a workflow in which three pieces of information are required from the end-user in order to proceed. Let's call them A, B and C and let's imagine that they can be either on or off. That leads to eight combinations. Developers proceed to code for the 8 combinations. That is version 1. Now comes the flexibility question: 'what if we need another on/off variable, D?' or worse 'what if we want A to have three possible values not two?'. Or even worse 'what if we need to be able to add new variables on the fly?'.

Well, we could try to make the variables completely configurable in terms of what they are called, what values they can take and what logic should be triggered based on the combination of values at any given point. Unfortunately, the only way to cover all possible non-magic configurabilty possibilities would be to allow direct change to the source code. Short of that, the best we can do is make some of these things somewhat open ended. Allow some fields to take arbitrary values. Make some actions scriptable by the end-user. That sort of thing.

Sadly, the result of this is invariably the introduction of the possibility for human error. Locking everything down so that the system is foolproof and fast and correct - and all such good things that appear in most requirements specifications - is fundamentally at odds with having a system that is completely flexible - which also appears in most requirements specifications.

Any system that claims to provide all these at once is - unless I have missed something fundamental - not advanced technology at all. It is pure magic.

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

Workflow Enabled Help Desk & IT Service Management
Automate service desk activities and integrate processes across IT. Learn more here.
HelpDesk or Customer Support
Web based IT HelpDesk with Asset Mgmt or Customer support Software with Account & Contact mgmt.
See how EASY REMOTE SUPPORT can be. Try WebEx FREE!
DELIVER SUPPORT MORE EFFICIENTLY. Remotely Control Applications. Leap Securely through Firewalls!
FREE network scan for VoIP, IM, Games & More
What’s on your network? Use the Sophos Application Discovery Tool to find out!
TRY MICROSOFT DYNAMICS® CRM Online FREE
Get Microsoft Dynamics CRM capabilities without the investment in IT infrastructure and staffing.
» Buy a link now

Advertisements
Sponsored links
Locate Hidden Software on business PCs with this free tool
KODAK i1400 Series Scanners stand up to the challenge
Top 5 Reasons to Combine App Performance and Security
Bring harmony to your mix of UNIX-Linux-Windows computing environments
 Home   Application Development
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.