Anatomy of an Enterprise Software Delivery Project
2.1. Introduction
To provide the context for this book, it is important to have a clear view of the current challenges faced in enterprise software delivery. To enable this view, I take a specific enterprise software delivery organization and describe how it executed a particular enterprise software delivery project. After discussing the project’s critical elements, I analyze where and how improvements to that project are possible.
While many facets of this real-world enterprise software delivery project are of interest, I choose to highlight four areas that amplify key themes I will address in detail throughout the book:
- Collaboration across distributed teams, particularly when those teams span geographic, organizational, and company boundaries. In such projects, we frequently find that inefficiencies and misunderstandings are a major source of errors, frustration, and waste. Clear approaches to communication and coordination greatly improve the team’s performance.
- Agility in the enterprise delivery team’s means of organization and operation, which enables effective delivery, and in its interaction with the business. A project’s progress and delivery rhythm is based on how it reacts to changes in its goals, context, and delivery environment.
- Continuous quality assurance, which provides superior solutions using efficient, predictable techniques. Late software breakages are often a result of misunderstood requirements, unstable architectures, and poor communication across the team. They prove very costly and highly disruptive to the project’s success. Early and continuous attention to quality is essential.
- Governance and metrics to provide insight into a project’s status and ensure the project stays on track. Lack of governance can lead to chaotic behaviors. Furthermore, good governance approaches based on poorly defined metrics schemes can result in suboptimal decision making. Visibility and traceability across the project are essential to manage the project complexity.
In this chapter, I establish the context for this enterprise software delivery project, and I then explore these key themes within this real-world example. I conclude with a number of observations about what we can learn from this study.