POWER > Business Strategy > Modernization

Three Laws of Softwaristics


In 1942, Isaac Asimov introduced the sci-fi literature world to the Three Laws of Robotics:

  1. A robot may not injure a human being or, through inaction, allow a human being to come to harm.
  2. A robot must obey the orders given to it by human beings, except where such orders would conflict with the First Law.
  3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law. 

The Three Laws of Softwaristics

Thinking about software application development, debugging, maintenance, deployment and overall application evolution, I propose that the same law structure be applied to software:

  1. Software may only use open standards or, if nonexistent, use interoperable formats.
  2. Software must use a multitier architecture, except where such architecture would conflict with the First Law.
  3. Software must centralize its logic, as long as such centralization does not conflict with the First or Second Law.

Law 1: Open Standards

This law applies to software languages as well as data formats. If the technical specification for the language or the format is public, then it’s open.

Ruby and PHP are open-standard programming languages, XML and HTML are open-standard formats, and HTTP is an open-standard protocol. And while not truly open, Java* and RPG follow standards as well, rather than introducing cost and risk by reinventing the wheel. This also introduces risk for the sustainability of the software, as whoever uses it after you may not be able to maintain it. However, when standards are followed, you don’t have to think about it anymore, as the standard secures the sustainability of the software as technology evolves. The technological evolution will either change the standard and provide a means of conversion from the old version to a new one or offer new products that will integrate the existing standard.

A good example of this would be Open Office. To make it widely used by the community, the developers created a converter from Microsoft* Word. The new RPG IV standard is similar, with the command CVTRPGSRC to convert RPG III to RPG IV.

In the absence of open standards, you may use interoperable formats—not so much for programing languages, but for data storage and exchange. Programing languages can be platform- or device-specific or cross-platform or -device, and that doesn’t mean you have to choose between integration and deployment capacity. What is determinant is mainly the purpose of your app. If it’s destined for the cloud, you may look for a multitenant back-end system and options to also enable offline syncing from your front-end device. In any case, even if you choose platform- and device-specific languages, you may use a suitable file format for data preservation and sharing. Therefore, deployment won’t be an issue now or later.

Pascal Polverini works at looksoftware and is part of the IBM i ISV Advisory Council.

comments powered by Disqus



2019 Solutions Edition

A Comprehensive Online Buyer's Guide to Solutions, Services and Education.


5 Lessons from 25 Years on IBM i


5 Modernization Steps to Maximize Value and Reduce Risk


7 Keys to Future-Proofing Your RPG Applications

IBM Systems Magazine Subscribe Box Read Now Link Subscribe Now Link iPad App Google Play Store