Most of the software that we write today never functions as the only entity on the machine. They have to be a good citizen in the ecosystem of the operating system. But they also expect others citizens to follow the same. SAP CRM Mobile is a complicated piece of software, at least, from the installation’s perspective. It has dependencies like JRE, JDK, SQL Server, and Microsoft Office to name a few. Each subset of functionality depends on a different prerequisite or integrates to some other software. Managing all these dependencies and still having a straight face is complicated. As a SAP CRM Mobile installation developer, I am flooded with questions from various users both internal and external. Most of the time the complaints are as follows:
- The installation fails. Can you figure out why?
- It worked with yesterday’s package. I can’t figure out why it does not work today.
- It worked until I installed XXX package.
- It works on a fresh installation but fails with an upgrade.
- My coffee is not hot anymore. (after the conversation with me on the phone.)
And most of the time, the problem is with the environment and not with the software itself. Some of the prerequisites may be missing. Some settings might be misconfigured. Or may be some of the hotfixes applied on the environment have not been tracked properly. May be the resources are not upgraded in a consistent manner. This is not a problem just with installation but extends even into application domains. The problems with environment are pretty hard to track especially if they manifest when the application goes into production. This gives rise to the following questions.
- How do we know if the environment that we are in is consistent?
- How do we if one hot fix is compatible with another?
- How do we know if all my settings are configured properly?
Sure, MSI gives me repair. It can repair stuff when files or registry entries are missing. But there are lot of instances when installation authoring tools do not fully use such features. Sometimes it is simply not enough. MSI can deal only with file versions and registry entries. How about the consistency of configuration in the XML file? How about the correctness of the default database collation?
Shouldn’t there be a tool to ensure such consistency. A tool, that is lightweight and easy to install. A tool, that is extensible and that can accommodate the ever-growing list of stuff that should be verified. A tool, that itself is free from the shackles of dependencies and mismatched hotfixes.
I would like to hear more from you on what you would expect of such a tool. Or if you are already using tools to verify such consistencies, do let me know. You can post them or comments or send me by email.