Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Optimizing an Agile DevOps Organization (Part 2)

DZone's Guide to

Optimizing an Agile DevOps Organization (Part 2)

In this part of the series, we review the organizational aspects in greater detail. How do we introduce operations activities into Agile Release Trains? Where should they be performed: sprint, program, or portfolio (or value stream)? How can we use 4F analysis to determine where we should assign each operational task?

· DevOps Zone
Free Resource

The DevOps Zone is brought to you in partnership with Sonatype Nexus. The Nexus Suite helps scale your DevOps delivery with continuous component intelligence integrated into development tools, including Eclipse, IntelliJ, Jenkins, Bamboo, SonarQube and more. Schedule a demo today

An effective Agile model must incorporate operational agility. Operational agility requires a DevOps culture and mindset. Modern DevOps tools and technologies, which are essential for facilitating this culture need to be supported by an optimal Ops organization. In the first part of the series, we examined the common operations pool that works in an Agile development environment. Then, we went on to understand the general structure of a Scalable Agile delivery model.

In this part of the series, we review the organizational aspects in greater detail. How do we introduce operations activities into Agile Release Trains? Where should they be performed: sprint, program, or portfolio (or value stream)?

A Granular Look at the Role of Operations

To examine the organizational aspects of DevOps, we need to look at the roles operations personnel play in software delivery at a more granular level. They say that software is a developer’s game (just as some say that baseball is a pitcher’s game). That’s, of course, more perception than reality. Nevertheless, one of the manifestations of this viewpoint is the way in which operations personnel are often painted with one broad brush—as '‘operations staff.'  One forgets the fact that operations is a vast and complex field with specialized skills required in networking, hardware, software, management, and analysis. Just like developers can be of all kinds—Unix, Windows, C++, and so on—operations personnel are also of diverse competencies.

Most of us will agree that it is convenient to decompose operations into the following broad areas:

  • Network and communication
  • Servers, desktops, and devices
  • Software
  • Analysis, business support, and management

Each of these categories is comprised of various activities as listed below:

1. Network Management

  • Setting up and maintaining voice and data communication lines
  • Installing network equipment
  • Configuring network equipment
  • Troubleshooting network equipment
  • Planning, implementing, and monitoring system security features
  • Controlling user access to networked resources
  • Network storage management

2. Server and Device Management

  • Provisioning and installing physical servers
  • Configuring physical servers (including patches and updates)
  • Provisioning, setting up, configuring, and decommissioning virtual servers
  • Troubleshooting servers
  • Managing email
  • Deploying desktops and mobile devices
  • Provisioning and configuring desktops and mobile devices
  • Troubleshooting desktops and mobile devices
  • Integrating special equipment
  • Managing software licenses

3. Application Management

  • Installing software
  • Managing databases
  • Troubleshooting applications
  • Scheduling jobs
  • Analyzing ‘non-functional’ application requirements
  • Estimating hardware and networking resource requirements
  • Commissioning production, and other stable environments
  • Commissioning and decommissioning development and test environments

4. Other Activities

  • Managing data centers
  • Providing L1 support
  • System auditing
  • Managing disaster recovery and backup
  • Reporting
  • Managing vendors and contracts

Four-Factor Framework (4F)

Breaking down the broad operations portfolio into these granular activities makes it easier to answer the question about how operations should be integrated into the SAFe cadence.

This article proposes a four-factor framework (4F) to answer this question. The four factors are, briefly:

  • Staffing cost: the marginal cost of hiring new resources
  • Skill availability: how easy is it to find the required skill
  • Requirement frequency: how frequent (and how regular is the demand for a resource)
  • Opportunity cost of response time: the monetary value of the penalty incurred in terms of project goals such as quality and customer satisfaction that might be sacrificed by delaying staffing

Experience and literature suggest a host of factors that determine the organizational impact of an Agile model. I find it convenient to classify them into the four mentioned above because most other organizational and project characteristics such as size, geographical dispersion, project criticality, customer satisfaction, and financial position (to name a few) can be mapped to these factors.

Image title

The above diagram represents the four factors with each factor depicted by an arrow that indicates the direction of its organizational impact. For instance, increasing staffing costs result in consolidation at the portfolio or even corporate levels. An operations task performed by highly paid staff may, therefore, need to be performed by a central pool of resources managed at the corporate level. On the other hand, activities that need skills that are commonly available are likely to be performed by staff that are part of sprint teams. A similar logic applies to tasks that are in frequent demand and those where the cost of delay is significant (high opportunity cost).

The combined effect of these four factors on each operations task determines where it should be staffed: sprint, program, or higher levels. As you would expect, the relative magnitude of each factor varies from tasks to task. Therefore, it is important to analyze and grade each task based on the value of each factor. This is called a 4F analysis.

The quartet of grades or numbers that we get for each task through this 4F analysis will determine the effective distribution of operations staff. For instance, in most organizations, staff performing routine configuration and deployment tasks will have more common skills and be less expensive than more experienced (or skilled) staff performing problem resolution or analytical activities. They are likely to have higher 4F quartet values and consequently be more likely to be part of sprint teams than the latter.

4F Analysis Methodology

In general, we can surmise the following basic principles of 4F analysis:

  • The higher the ‘staffing cost’ of an activity, the closer it will be to the center.
  • The lesser the ‘skill availability’, the closer the task will be to the center.
  • The lesser the ‘requirement frequency’ of a task, the closer it will be to the center.
  • The lesser the opportunity cost of a task, the closer it will be to the center.

Given these basic principles, we can analyze every operations activity and determine where in the organization it would lie.  The following are the basic steps:

  • Decompose all operations activities into a reasonably granular level
  • Create a 4F quartet for every activity by rating it on a suitable scale (e.g. 4, 3, 2, 1 or High, Medium, Low) on the four factors.
  • Based on the basic principles just mentioned, examine each activity and arrive at the optimal level (sprint, program, or higher level) at which it should be staffed.

An Example

The table below is an example of how activities could be organized between the various levels in an organization employing Agile delivery practices (SAFe 3.0) using this framework. It is based on a 4F analysis.

Activity

Sprint level

Program level

Higher level

Regional or enterprise level

Network management





Setting up and maintaining voice and data communication lines




***

Installing network equipment




***

Configuring network equipment




***

Troubleshooting network equipment




***

Planning, implementing, and monitoring system security features




***

Controlling user access to networked resources




***

Network storage management




***

Server and device management





Provisioning and installing physical servers



***

***

Configuring physical servers (including patches and updates)



***

***

Provisioning, setting up, configuring, and decommissioning virtual servers


***

***

***

Troubleshooting servers



***

***

Managing email




***

Deploying desktops and mobile devices



***

***

Provisioning and configuring desktops and mobile devices


***

***

***

Troubleshooting desktops and mobile devices


***

***

***

Integrating special equipment


***



Managing software licenses




***

Application management





Installing OTS software



***

***

Managing databases

***

***

***

***

Troubleshooting applications

***

***

***


Scheduling jobs

***

***



Analyzing ‘non-functional’ application requirements



***


Estimating hardware and networking resource requirements



***


Commissioning production (and other ‘stable’ environments)



***

***

Commissioning and decommissioning development and test environments

***

***

***

***

Other activities





Managing data centers




***

Providing L1 support



***

***

System auditing



***

***

Managing disaster recovery and backup



***

***

Reporting



***

***

Managing vendors and contracts



***

***

*** indicates staffing


In the example, we see that the tasks of provisioning, configuration, deployment, and decommissioning need to shift to personnel at the sprint and program level. Environment configuration and related activities are soon likely to become essential skills of sprint team members.

Similarly, we observe that operations staff at the portfolio and corporate levels must focus on value-adding activities like problem resolution, help desk support, analyzing NFRs, and estimating resource requirements.

Conclusion

Significant optimality can be achieved by placing operations staff at the right level: sprint, program, or higher. Since the entire gamut of operations is vast and complex, and no one resource can have skills required to perform all operations tasks, a granular look at the operations discipline is required to answer this question.

In the article, I postulate that the complex factors that affect organizational structure can be coalesced into four conveniently analyzable factors: staffing cost, skill availability, requirement frequency, and opportunity cost. By performing a four factor (4F) analysis on each granular task we can determine where (sprint, program, or higher levels) each task should be staffed. This optimization of a DevOps organization will help dismantle the human and organizational walls that are often bottlenecks in the smooth implementation of Agile models. Click here to learn more about IBM’s support for SAFe.

The DevOps Zone is brought to you in partnership with Sonatype Nexus. Use the Nexus Suite to automate your software supply chain and ensure you're using the highest quality open source components at every step of the development lifecycle. Get Nexus today

Topics:
devops ,ibm rational ,agile adoption ,software development

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}