Thursday, February 14, 2019

SAFe at MAQ Software

Since our inception, we’ve used agile methodologies to deliver software solutions that address our clients’ business needs. These methodologies—in their purest form—work perfectly for small projects. Agile methodologies deliver high business value by ensuring that projects respond to changing business needs. These methodologies result in functional software, delivered early and frequently, with short release cycles.

As the complexity and size of our projects have grown, however, we’ve recognized an increased need to accommodate interdependencies between projects. Agile methodologies work best with small teams (five to nine members). Projects with larger teams—especially interdependent projects—increase the complexity of execution. With larger teams, the benefits of agile methodologies (such as osmotic communication and uniform knowledge within teams) are difficult to achieve. Agile ceremonies (daily scrums, sprint planning, etc.) are also often difficult to manage when team sizes increase.

With the increased size and complexity of our projects, we knew we needed to avoid relying on centralized planning when executing interdependent projects. This would have resulted in a fallback to the waterfall methodology, which would have made any response to change difficult. Businesses provide a high-level roadmap for projects. With the waterfall method, project teams attempt to nail down specific business requirements from the start, but the waterfall methodology is ill-suited for dynamic environments. To efficiently handle increasingly complex projects and avoid waterfall methodologies, we needed to create an optimal level of central planning and coordination that retained the benefits of agile teams.

As we sought a balance between central planning and agile methodologies, we quickly realized that teams need to coordinate at various points during the sprint to eliminate redundancies and better cater to interdependencies among deliverables. With interdependent projects, it is crucial to align with the common business goals of the organization, portfolio, or program they belong to. While team-level autonomy is important, it is equally important to align teams to an organization’s objectives and to deliver projects that are part of a long-term roadmap. We determined that teams must take advantage of common infrastructure, identify common requirements that can be implemented and used by multiple teams, identify dependent requirements so that teams can hand off from the producer to the consumer in a timely manner, and synchronize deployments so that integrated solutions work seamlessly.

Our customers often create 3 to 18-month release roadmaps that broadly define the objectives of their organizations, portfolios, or programs. Our individual agile teams then plan sprints for the next two to four weeks, aiming to incrementally achieve the objectives of the planned roadmap. Project owners collaborate closely with the agile teams during the duration of the sprints to help them achieve broad goals while implementing course corrections as necessary. This close collaboration is the primary distinction between our methodologies and the waterfall model. We encourage collaboration between project owners and agile teams, whereas waterfall planning often occurs at a detailed granularity that minimizes collaboration with stakeholders.

These evolved methodologies closely resemble the Scaled Agile Framework (SAFe) described here. The practices of cross-team cadence and synchronization help multiple agile teams of a portfolio or program advance together. Lean-agile principles minimize waste by avoiding replicated efforts and promote the reusability of capabilities built by any of the teams of the portfolio.

Retaining the characteristics of agile teams ensures that the teams are self-organized and self-managed. They are also able to release software in shorter cycles with continuous customer collaboration.

The SAFe framework retains many benefits of agile methodologies while scaling to accommodate complex, interdependent projects. This is accomplished through the following:

   DataOps practices help deliver valuable software to customers faster and more effectively.
   System demos ensure that the software developed by the constituent agile teams all work together as a system, thereby delivering value to the portfolio.
   Agile release trains ensure that the synchronized release of software across agile teams is smooth and efficient.
Figure 1: A representation of SAFe DataOps practices in our context.
We have found SAFe to be a viable framework for supporting the business needs of our customers in a dynamic business environment. The ability to balance the autonomy of the agile teams while ensuring the alignment of projects with the organizational objectives has been the key differentiator of SAFe. The union of systems thinking, agile principles, and lean principles results in a highly efficient and scalable framework for delivering software at scale for our large enterprise customers.