filzfreunde.com

# Guide for Managers on Building Effective Software Teams

Written on

Creating High-Performing Teams

Dear Manager, this letter is a dialogue from one manager to another. Throughout my career at some of Finland's largest organizations, I’ve developed insights on establishing essential teams like Platform, DevOps, Developer Experience, and CloudOps. I hope this message finds you well.

"Things you wouldn’t believe" — a nod to Rutger Hauer's iconic line in Blade Runner. This article serves as a companion piece to "Team Needs From Your Development Teams," which delves into team capabilities and lifecycle management. Here, we will outline strategies to further empower your teams.

The Importance of Diverse Teams

Each team serves a distinct purpose, with specific goals and structures. The teams I mentioned are often recognized as platform teams, designed to enhance the effectiveness of stream-aligned teams by providing reusable and customizable platforms through plugins. This adaptability ensures resilience in the face of changing requirements. The concept of Platform Teams has gained popularity through literature like Team Topologies.

These teams can offer their platforms either as products (PaaP) or services (PaaS). Platform Engineering teams focus on creating products with a customer-centric approach, unlike the more generalized concept of Platform as a Service, which often requires users to make compromises.

In the current era, every organization is reliant on software systems, evolving into software companies themselves. Having been part of this transformative journey has been immensely rewarding.

My experience spans product and stream-aligned teams, but my true passion lies in supporting the latter. Our main goal has been to enhance developer productivity by providing tools, governance frameworks, and guardrails for autonomy. Importantly, I collaborate with developers to foster a supportive community, in contrast to traditional approaches that often prioritize hiring additional developers to boost productivity.

Understanding DevOps

The term "DevOps" carries a multitude of meanings, often tied to concepts like team autonomy and end-to-end responsibility. While these ideas promote teamwork and efficiency, they can also create unrealistic expectations. How often do we evaluate the demands we impose on teams?

Autonomy can significantly enhance a team's ability to fulfill its responsibilities. At the organizational level, it’s crucial to balance the fairness of actions required from teams, as every action influences the ultimate outcome.

Understanding Systems Thinking

DevOps encapsulates a holistic approach, encompassing the entire product lifecycle, including operations and continuous improvement of delivery processes. If you're uncertain where to begin, focus on the following areas: Responsibility, Time, Trust, Flow, and Value.

  1. Responsibility

    Assign ownership where it belongs. Your organization expects teams to manage application incidents, which is a positive step. Teams need dedicated time to establish monitoring systems, alerts, and necessary tooling. Centralizing certain functions can also help minimize duplication of efforts.

  2. Time

    Support your team’s time management. Allow them the freedom to develop and maintain applications as they see fit. Time for experimentation and improvement is essential for long-term productivity.

  3. Trust

    Gaining leadership trust is vital. Sustainable growth depends on proper capabilities being in place. Instead of top-down directives, empower teams to make decisions while providing guidance and resources.

  4. Flow

    As Gene Kim states in The Phoenix Project, “Improving daily work is even more important than doing daily work.” Help your teams streamline their work processes and minimize friction.

  5. Value

    Focus on enhancing the developer experience. Retaining top talent in a competitive market requires directing their efforts toward meaningful work rather than repetitive tasks.

Addressing Team Needs

As organizations adopt agile methodologies, it's crucial to construct platforms that allow teams to choose their own tools and architectures. This flexibility, however, comes with increased risks. Educating teams about these risks can mitigate the need for rigid review processes.

Psychological Safety and Onboarding

Building effective teams often starts with fostering psychological safety and providing time for members to collaborate. Culture cannot be bought or manufactured; it must develop organically.

Rapid team expansion can lead to cultural drift, undermining cohesion. As organizations grow, effective onboarding and communication become paramount to maintaining consistent culture.

If developers were to voice their needs, they would likely prioritize tools, practices, and clearer objectives over merely increasing headcount. Alleviating operational burdens within the Software Development Life Cycle (SDLC) can significantly enhance their experience.

Encouraging Healthy Failure

Failure is often seen negatively, but it is essential for growth. Thomas Edison’s many failed attempts led to groundbreaking inventions. If teams are not experiencing failures, are they truly pushing their boundaries?

Promoting a culture that embraces failure allows teams to learn and innovate. Use Blameless Post-Mortems to facilitate learning from mistakes, fostering an environment where teams can explore new ideas without fear.

Utilizing Contextual Metrics

Effective measurement is not the ultimate goal; rather, it serves as a tool for improvement. Metrics should be utilized to foster learning and development rather than merely tracking performance.

Metrics can be classified into leading and lagging indicators. While lagging indicators might reflect past performance, leading indicators can provide insights into what can be improved.

In summary, team autonomy should not exist in isolation. Teams must be empowered to solve business challenges effectively, supported by a framework of responsibility, time management, trust, flow, and value.

To conclude, focus on:

  • Responsibility
  • Time
  • Flow
  • Value

Followed by:

  • Psychological Safety
  • Excellent Onboarding
  • Reduced Cognitive Load

Finally, remember to encourage learning through:

  • Blameless Post-Mortems
  • Improved Guardrails with Freedom
  • Contextual Metrics

If these strategies resonate, I would love to hear your thoughts. I’m confident your teams will thrive as a result.

Share the page:

Twitter Facebook Reddit LinkIn

-----------------------

Recent Post:

Eclipses and the Enigmatic Ring of Fire: A Celestial Journey

Explore the awe of solar eclipses, including personal anecdotes and stunning visuals of the

Exploring Indirect Reasoning in LLMs: A New Approach to Answers

This article discusses the potential of indirect reasoning in large language models (LLMs) to enhance problem-solving capabilities.

Unlocking Extraordinary Productivity: 5 Essential Rules

Discover five essential productivity rules that top achievers use to reach extraordinary results and enhance their effectiveness.

Navigating the Signs: When to Consider Ending Your Relationship

Explore 12 critical warning signs indicating it may be time to reconsider your relationship.

Exploring the Anterior Cingulate Cortex and Its Influence on Behavior

This article delves into the role of the Anterior Cingulate Cortex in shaping human behavior and cognition through recent studies.

Optimizing the Traveling Salesman Problem with Parallel Computing

This report explores the use of MPI in parallel computing to solve the Traveling Salesman Problem efficiently.

Kindness Chronicles: Day Two Reflections on Unexpected Connections

On Day Two of my kindness journey, I share a heartwarming story about a newfound friendship and my next act of kindness.

Exploring the Impact of NFT Royalties on Budgeting Strategies

An analysis of how NFT teams can budget for royalties given the current voluntary nature of NFT royalties.