Thursday, February 14, 2019

Deliver Software Faster with SAFe Practices

We use agile methodologies to deliver software solutions that address our clients’ business needs. Agile methodologies work perfectly for small projects. Agile methodologies deliver high business value and ensure projects respond to changing business needs. Agile methodologies result in functional software, delivered early and frequently, with short release cycles.

As projects increase in size and complexity, teams must accommodate interdependencies between projects. Projects with larger teams—especially interdependent projects—increase complexity during execution. With larger teams, the benefits of agile methodologies (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.

When executing interdependent projects, we avoid centralized planning. Centralized planning results in a fallback to the waterfall methodology, which limits responses to change. When project teams use the waterfall method, project teams attempt to immediately isolate specific business requirements. The waterfall methodology is ill-suited for dynamic environments. To handle increasingly complex projects, we use an optimal level of central planning and coordination that retains the benefits of agile teams.

As we balance central planning and agile methodologies, we identify when teams need to coordinate. Effective coordination eliminates redundancies and aligns interdependencies among deliverables. Teams must use common infrastructure, identify requirements used by multiple teams, and identify dependent requirements.

Our customers often create 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. Project owners collaborate closely with the agile teams during sprints to achieve broad goals while implementing course corrections as necessary. Close collaboration is the primary distinction between our methodologies and the waterfall model. We encourage collaboration between project owners and agile teams. Waterfall planning often occurs at a detailed granularity that minimizes collaboration with stakeholders.

Our 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. Lean-agile principles disdain replicated efforts and promote the reusability of capabilities.

Retaining the characteristics of agile teams ensures teams are self-organized and self-managed. Teams also 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. Benefits are retained by observing the following practices:

   DataOps practices deliver valuable software to customers faster and more effectively.
   System demos ensure the software developed by the constituent agile teams works as a system.
   Agile release trains ensure the synchronized release of software across agile teams.
Figure 1: SAFe DataOps practices at MAQ Software
SAFe is a viable framework for supporting the business needs of customers in a dynamic business environment. SAFe practices balance the autonomy of agile teams with organizational objectives. The union of systems thinking, agile principles, and lean principles results in a highly efficient and scalable framework.