Create modular applications

If you design a system with a single main application, none of the application logic can run until the entire application is loaded into memory. The larger the application, the more of a problem this becomes. Consequently, it often makes sense to break your software system into several logical modules that run as separate processes. Those processes can communicate via any number of interprocess communication (IPC) mechanisms. Having separate processes also gives you more flexibility in load order, provided they're not fully dependent on one another. As a side benefit, you gain protection from memory isolation between those processes.