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.
Each scaling factor has a range of complexities associated with it. Each team faces a different combination of factors, and therefore needs a process, team structure, and tooling environment that is tailored to their unique situation.

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.
Another reason for sketching designs with a tool is the ability to integrate sketches with other modeling artifacts. For example, a project can contain sketches, as well as other design elements such as UML models or deployment topologies. If required, you can also convert sketches to UML or topology elements.

Feedback