Close

DevOps for advanced teams

Make observability a key part of your development cycle.

Use advanced tools and techniques to deal with increased complexity


An organization with a high degree of cross-team collaboration and extensive automated processes has a significant advantage over one that struggles in these areas. 

Even highly successful DevOps teams can reach the next level by having a laser focus on observability, both at the organization and system level. 

From the system perspective, observability means deriving an understanding of the internal functions of a complex system by observing its external behaviors. 

At the organization level, observability is developing natural lines of communication and collaboration between the customer and teams  that creates new solutions.

About this guide

As systems and organizations grow more complex, no one person can grasp a model of the entire thing.  

Advanced tooling and techniques tame the cognitive load of increasing complexity, enabling the move from reactive to proactive product development.

This guide will help identify a few key areas of focus for the successful DevOps  team to cross into unicorn territory.

Where you are today


Stopwatch illustration

Indicators

  • Lead time for changes:
    Less than one week
  • Deployment frequency:
    Once per week or more
  • Time to restore service:
    Less than one hour
  • Change failure rate:
    0-15%
Platform illustration

Tech

  • Technology tools stack:
    stream-aligned toolchain
  • Technology platform:
    Function as a Service (FaaS)

How to implement observability


Build a DevOps culture

Culture should be addressed  at every level of an organization’s growth, since it helps companies align people, processes, and tools toward company goals. 

An organization with a DevOps-oriented culture works to produce what sociologist Dr. Ron Westrum calls a “generative (performance-oriented)” structure, compared to “pathological (power-oriented), or “bureaucratic (rule-oriented)” structures. 

A generative culture is based on trust. Trust fosters open communication and prioritizes learning from mistakes over identifying a person or team to blame.

Focus on outcome-driven development

Advanced DevOps teams will embrace outcome-driven development. This model is characterized by a strong relationship with the customer that informs processes from initial development through continuous evolution. 

Another emergent feature from the outcome-driven development approach is improved synchronicity between internal divisions within an organization, such as engineering and product development. When everyone in the organization has a customer-centric focus, that alignment emerges naturally.

Recommended resources

Atlassian’s playbook to build a DevOps culture

Recommended resources

Understand outcome-driven development

Embrace chaos engineering

Chaos engineering can be defined as the facilitation of experiments to uncover systemic weaknesses. Modern software products are exponentially increasing in complexity, which makes it more difficult to anticipate and mitigate system failures.

Chaos engineering is a practice where a team uses exploration and experimentation to uncover emergent connections and dependencies in a complex system. It’s a way to solve for “unknown unknowns” that generate failures in a complex system.

Observe systems as a whole

Increased complexity in modern software applications creates a need for new diagnostic models to replace traditionally segregated logs, traces, and metrics. 

Similar to chaos engineering practices, new tools enable aggregation and analysis of data sources to help programmatically identify the emergent properties of a complex system that cannot be predicted and monitored -- the “unknown unknowns”.


Not quite ready for observability?

Visit our previous guide around automation.

Need a refresher on the basics?

Visit our beginner’s guide around customer-centricity.