- Geographical distribution. What happens when the team is distributed, perhaps on floors within the same building, different locations within the same city, or even in different countries? Suddenly effective collaboration becomes more challenging and disconnects are more likely to occur.
- Team size. Mainstream agile processes work very well for smaller teams of ten to fifteen people, but what if the team is much larger? What if it’s fifty people? One hundred people? One thousand people? Paper-based, face-to-face strategies start to fall apart as the team size grows.
- Compliance requirement. What if regulatory issues – such as Sarbanes Oxley, ISO 9000, or FDA CFR 21 – are applicable? These issues bring requirements of their own that may be imposed from outside your organization in addition to the customer-driven product requirements.
- Domain complexity. Some project teams find themselves addressing a very straightforward problem, such as developing a data entry application or an informational web site. Sometimes the problem domain is more intricate, such as a bio-chemical process monitoring or air traffic control or perhaps it is changing quickly, such as financial derivatives trading or electronic security assurance. More complex domains will require greater emphasis on exploration and experimentation, including but not limited to prototyping, modeling, and simulation.
- Organization distribution. Sometimes a project team includes members from different divisions, different partner companies, or from external services firms. This lack of organizational cohesion can greatly increase the risk to your project.
- Technical complexity. Some applications are more complex than others. It’s fairly straightforward to achieve high-levels of quality if you’re building a new system from scratch, but not so easy if you’re working with existing legacy systems and legacy data sources which are less than perfect. It’s straightforward to build a system using a single platform, not so easy if you’re building a system running on several platforms or built using several disparate technologies. Sometimes the nature of the problem that your team is trying to address is very complex in its own right.
- Organizational complexity. Your existing organization structure and culture may reflect traditional values, increasing the complexity of adopting and scaling agile strategies within your organization. To make matters worse different subgroups within your organization may have different visions as to how they should work. Individually the strategies can be quite effective, but as a whole they simply don’t work together effectively.
Enterprise discipline. Most organizations want to leverage common infrastructure platforms to lower cost, reduce time to market, and to improve consistency. To accomplish this they need effective enterprise architecture, enterprise business modeling, strategic reuse, and portfolio management disciplines. These disciplines must work in concert with, and better yet enhance, your disciplined agile delivery processes.
There is arguably a "0th" scaling factor, one of lifecycle scope. As you see with Disciplined Agile Delivery (DAD), the scope of that life cycle is delivery (from starting a project to transitioning the solution into production). Scrum, on the other hand, has a narrower scope, that of Construction, so is a subset of the DAD life cycle and I would argue insufficient on its own for agile teams. Then there's Enterprise Unified Process (EUP), which covers the entire IT lifecycle in scope.
Each factor has a range of complexities, and each team will have a different combination and therefore will need a process, team structure, and tooling environment tailored to meet their unique situation.
- Agile and Geographic Distribution
- Agile and Regulatory Compliance
- Agile and Domain Complexity
- Agile and Technical Complexity
- Agile and Enterprise Architecture
- The Agile Scaling Model: Adapting Agile Methods for Complex Environments paper
- Agile Requirements at Scale
- The Disciplines of Enterprise IT: Beyond Software Development
- Rational's Agile Software Development Home Page (for webcasts, whitepapers, ...)