Finally at the end of the meeting after the others left, I asked the project manager at the company what the real reason is that they want to replace that program. The answer was: They want to get rid of dependency of that piece of individual software development and dependency of a particular person. They want to use a standard software.
While this sounds quite reasonable, I want to clear-up potential misunderstandings:
- Even betting on the biggest companies and their products does not save you from the risk of software being discontinued or services shutting down.
For example here is a list of software products discontinued by Microsoft. And this does not seem to be a complete list because from the first look I already miss the Visual Basic Classic which is also dead (and I have A LOT of experience with that which will be dead know-how in a few years).
- Even the largest company-group sends you individuals that do the work and guess what: In most bigger IT projects (even when using standard-software) you usually end up with an individually customized piece of software and often with several project specific extensions. And who knows best your system? - The one who has done it! Change the person and the person needs time to analyse and get into it.
- As time goes by most companies, when they start to buy external know-how or services, they begin to loose control. To reduce dependency you would need the source code, the know-how and the access. One effect of extreme outsourcing often comes with loosing your privacy and security.
For many very tiny companies it might be perfectly ok, accepting the dependency from external services when they don't have to bother about their server-backup etc then. And so privacy is also traded (e.g. free web service for providing your personal data).
It is a matter of your values, your priorities, your time and budget etc. if you better have a server in-house or use some online-service in the web.
So what can you do?
- Be aware of your values
- Be aware of your business focus
- Be aware of your (human) resources
- Remove resolvable dependencies
which means: Prefer forward-looking software products and plattform-agnostic open-source software over more limited alternatives.
- Distribute work and risk (e.g. have an external partner helping you but also have an internal administrator/developer who can do the work).