After computers being omni-present for almost 30 years one could assume that there was software available for everything and everybody. However, due to the rapid development of IT technologies new possibilities appear regularly. Problems that seemed impossible or would require a super computer are now easily solved.
Old software which evolved over many years is often more expensive to maintain than costs of re-engineering the whole system with modern technologies. Even more so when the original software design was based on now long out-dated assumptions about requirements and boundary conditions.