Close
  • Latest News
  • Artificial Intelligence
  • Video
  • Big Data and Analytics
  • Cloud
  • Networking
  • Cybersecurity
  • Applications
  • IT Management
  • Storage
  • Sponsored
  • Mobile
  • Small Business
  • Development
  • Database
  • Servers
  • Android
  • Apple
  • Innovation
  • Blogs
  • PC Hardware
  • Reviews
  • Search Engines
  • Virtualization
Read Down
Sign in
Close
Welcome!Log into your account
Forgot your password?
Read Down
Password recovery
Recover your password
Close
Search
Logo
Subscribe
Logo
  • Latest News
  • Artificial Intelligence
  • Video
  • Big Data and Analytics
  • Cloud
  • Networking
  • Cybersecurity
  • Applications
  • IT Management
  • Storage
  • Sponsored
  • Mobile
  • Small Business
  • Development
  • Database
  • Servers
  • Android
  • Apple
  • Innovation
  • Blogs
  • PC Hardware
  • Reviews
  • Search Engines
  • Virtualization
More
    Subscribe
    Home Development
    • Development

    Variations on Three Systems Themes

    Written by

    Peter Coffee
    Published January 3, 2005
    Share
    Facebook
    Twitter
    Linkedin

      eWEEK content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

      My letter of last week, urging that systems be designed to doubt themselves, generated a surprising amount of reader mail for a week when so many offices were closed and so many people were taking time off. Three themes emerged.

      i) Systems cant be designed to be idiot-proof, at least not at any reasonable cost, because society continually develops better idiots.

      ii) Systems shouldnt be designed to be idiot-proof, because people do better work when they stay engaged in the process and because overly complex systems just get in the way.

      iii) Systems will never be idiot-proof as long as people are willing to spend time and money on writing and debugging business logic but cant be bothered to develop business process models or put instrumentation into the business environment.

      The history of the Internet is filled with examples of the first theme. In one notable incident, a message header contained a tab character that didnt keep the message from being delivered but did prevent the proper parsing of the header. This disabled a mechanism for detecting that a newsgroup message had already been delivered to a given site, resulting in an explosion of redundant deliveries that only ended when disk partitions filled and blocked any further traffic from being received. The point here, as made by one observer at the time, is that its pointless to say that a user or a client system should never give bad input to a service. A service must instead be able to handle any input that could conceivably reach it, safely at a minimum and preferably with grace.

      “Most developers tend to write code that expects a particular set of inputs. When that doesnt happen, unpredictable results can and do occur. One really does need to code defensively and not optimistically,” wrote developer Steve Booth in response to last weeks column.

      The second theme has long been explored in settings such as airliner flight decks, industrial plant control rooms and other places where an automatic system might suddenly fail and a human operator might need to retake control. The system needs to be automatic enough to be useful, in terms of reducing operator fatigue and letting the operator have more of a supervisory role, while also keeping the operator sufficiently in the loop to minimize the time required to reorient and resume low-level control when something goes wrong.

      One way to meet both of these goals is to build systems that wait upon the convenience of the user, instead of imposing a strict sequence of operations that treats the user as a component—and a pretty dumb component at that. A note from developer Ted Varga compared the different approaches taken by point-of-sale systems at two different retail chains: at one, he wrote, “The new system is insulting and treats everyone like an idiot. For example, when a credit card is used, the customer must enter whether the card is for credit or debit. Regardless of the choice, the checker must also ask the customer whether the card is credit or debit. Since my card can be used for both, I have occasionally told the checker the wrong selection, which the checker then enters into the cash register. If the customers and checkers input does not match, the entire card entry must be restarted from the beginning.” The system, he said, “requires the customer to enter information and then questions whether or not the customer knows what they are doing.”

      /zimages/1/28571.gifClick here to read Peter Coffees Jan. 3 column on grid computing.

      In contrast, he said, the other system “is the absolute minimum required to complete the transaction. The transaction can be started before checkout is complete and simply completed.” The system stays out of the way.

      The third theme brings to mind a passage that Ive quoted before from Steven Levys 1984 book, “Hackers“: “Why should we limit computers to the lies people tell them through keyboards?” As I said in the July 2003 column hyperlinked from the preceding sentence, that challenge “has been addressed with massive investment in automating or streamlining data entry”—but we still do dumb things even in simple areas like defining a data entry field. “One of the biggest problems we have in building truthful applications is the underlying data storage and the assumptions people make,” observed Dave Berg, executive technology consultant at KAE Software LLC. “For example, its always irked me that database date fields (and most language date datatypes) require Month, Day, and Year. Yet when being asking someone their birthday, many people are reluctant to provide the year. Many times I may know the month and day of someones birthday or anniversary, but not the actual date. And theres no way to record this.”

      Even if we do capture all of the relevant data, with or without costly and error-prone human entry, were still a long way from the kind of systems that we really need. “Just putting some Web services out there and shoving XML down the pipes does not cut it. You have to have a formal business model, collaboration basis, common industry information understanding—so that all participants understand their roles and responsibilities,” asserted David RR Webber, who held out the hope that the forthcoming Version 2 of the Business Process Specification Schema will allow developers “to formalize your business process steps, and associate rules and context with them and store that as XML. This is a pre-requisite for adaptive systems,” he said, adding that “Even if the system itself is dumb as muck, other components can add intelligence downstream, and monitor and track and provide alerts.”

      Even if systems may—OK, will—never get as good as wed like them to be, we can at least do a better job of making it possible to improve them as we get smarter ourselves. That would be a big step.

      Tell me what steps youd like to take at [email protected]

      /zimages/1/28571.gifCheck out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.

      Peter Coffee
      Peter Coffee
      Peter Coffee is Director of Platform Research at salesforce.com, where he serves as a liaison with the developer community to define the opportunity and clarify developers' technical requirements on the company's evolving Apex Platform. Peter previously spent 18 years with eWEEK (formerly PC Week), the national news magazine of enterprise technology practice, where he reviewed software development tools and methods and wrote regular columns on emerging technologies and professional community issues.Before he began writing full-time in 1989, Peter spent eleven years in technical and management positions at Exxon and The Aerospace Corporation, including management of the latter company's first desktop computing planning team and applied research in applications of artificial intelligence techniques. He holds an engineering degree from MIT and an MBA from Pepperdine University, he has held teaching appointments in computer science, business analytics and information systems management at Pepperdine, UCLA, and Chapman College.

      Get the Free Newsletter!

      Subscribe to Daily Tech Insider for top news, trends & analysis

      Get the Free Newsletter!

      Subscribe to Daily Tech Insider for top news, trends & analysis

      MOST POPULAR ARTICLES

      Artificial Intelligence

      9 Best AI 3D Generators You Need...

      Sam Rinko - June 25, 2024 0
      AI 3D Generators are powerful tools for many different industries. Discover the best AI 3D Generators, and learn which is best for your specific use case.
      Read more
      Cloud

      RingCentral Expands Its Collaboration Platform

      Zeus Kerravala - November 22, 2023 0
      RingCentral adds AI-enabled contact center and hybrid event products to its suite of collaboration services.
      Read more
      Artificial Intelligence

      8 Best AI Data Analytics Software &...

      Aminu Abdullahi - January 18, 2024 0
      Learn the top AI data analytics software to use. Compare AI data analytics solutions & features to make the best choice for your business.
      Read more
      Latest News

      Zeus Kerravala on Networking: Multicloud, 5G, and...

      James Maguire - December 16, 2022 0
      I spoke with Zeus Kerravala, industry analyst at ZK Research, about the rapid changes in enterprise networking, as tech advances and digital transformation prompt...
      Read more
      Video

      Datadog President Amit Agarwal on Trends in...

      James Maguire - November 11, 2022 0
      I spoke with Amit Agarwal, President of Datadog, about infrastructure observability, from current trends to key challenges to the future of this rapidly growing...
      Read more
      Logo

      eWeek has the latest technology news and analysis, buying guides, and product reviews for IT professionals and technology buyers. The site’s focus is on innovative solutions and covering in-depth technical content. eWeek stays on the cutting edge of technology news and IT trends through interviews and expert analysis. Gain insight from top innovators and thought leaders in the fields of IT, business, enterprise software, startups, and more.

      Facebook
      Linkedin
      RSS
      Twitter
      Youtube

      Advertisers

      Advertise with TechnologyAdvice on eWeek and our other IT-focused platforms.

      Advertise with Us

      Menu

      • About eWeek
      • Subscribe to our Newsletter
      • Latest News

      Our Brands

      • Privacy Policy
      • Terms
      • About
      • Contact
      • Advertise
      • Sitemap
      • California – Do Not Sell My Information

      Property of TechnologyAdvice.
      © 2024 TechnologyAdvice. All Rights Reserved

      Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.