The key drivers are as follows:
- Interchanging different areas of concern in your design
- Inconsistent or poorly managed development processes
- Lack of corporation between various LOBs involved in the application lifecycle
- Lack of architecture and coding standards
- Legacy application demands can stop refactoring and advances toward a new framework
- Leveraging many systems to implement similar functions instead of sharing functionality, across multiple entities, or across sub-systems