More and more industries must interoperate in real time just to do business. Banks, airlines, and telephone companies cannot operate without massive information exchange among all the players in the field. Real-time issues are no longer the domain of a specialized few, but the concerns of everyone. The new e-world brings a lot of power, but that power comes at a high development cost. Concurrent, distributed systems have extremely complex interactions that can be hard to understand, let alone predict.
Vague specifications are a major problem.
In the past, the specifications for a monolithic system only affected the single system, and if it didn't work exactly as specified, nobody really cared. A failure to follow specifications can introduce errors that propagate around the world. You can't take a snapshot of a distributed system for backup or reboot it if part of it fails. The entire system must keep going in spite of failures, errors, or data corruption of some of its parts. Most systems are now real-time systems.