Module 14 - 2: Sketching for large-scale agile development
Agile development is a collaborative, incremental, and
iterative approach to software development that can produce high-quality
software in a cost-effective and timely manner. Agile practices were
initially designed for small co-located teams, but you can adapt them
to fit a more complex environment.
Agile scaling factors
The first step to scaling agile strategies is to adopt a disciplined agile delivery lifecycle that scales mainstream agile construction strategies to address the full delivery process from project initiation, to deployment, into production.
Scaling the agile process is about explicitly
addressing the complexities that disciplined agile delivery teams
face in the real world. The agile scaling factors are as follows:
- Geographical distribution: What happens when a team is distributed in a building or across continents?
- Team size: Mainstream agile processes work well for small teams (10 - 15 members), but what if the team is 50 people or more?
- Compliance requirements: What if regulations apply, such as Sarbanes-Oxley, ISO 9000, or FDA Title 21?
- Domain complexity: What if the problem domain is intricate? More complex domains require greater 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.
- Technical complexity: Working with legacy systems, multiple platforms, or blending disparate technologies can add layers of technical complexity to a solution.
- Organizational complexity: The existing organizational structure and culture might reflect traditional values, which increase the complexity of adopting and scaling agile strategies.
- Enterprise discipline: Organizations want to leverage common infrastructure platforms to lower costs, reduce the time to market, and improve consistency. These organizations need effective enterprise architecture, enterprise business modeling, strategic reuse, and portfolio management disciplines.
Reasons for sketching designs with a tool
Traditionally,
agile teams use paper or whiteboards for their sketching activities.
However, some scaling factors might support the adoption of a tool
to create and manage sketches. A sketching tool has the following
benefits:
- Facilitates the integration of remote participants into the design sessions. You can share your model in real time over the network, which is critical for geographically distributed teams.
- Creates technical documentation that might be required for regulatory compliance.