Some years ago, I was working was a Agile Coach. After a couple of years working at this capacity, I was not super happy and felt it was time for a change. This is a short story on how everything started.

I gave this feedback to my manager, which at that time, shared it with his manager which suggested that I created an outline of the activities and responsibilities I'd like to take on.

It was a nice approach I must admit. They didn't say: Well, if you're not happy here, you can just move on. They instead, offered my the opportunity to kind of create my own "job" inside the company, which I really appreciated.

Considering that I've worked before, for some years as well, coordinating and managing teams, I thought a good move would be to return to this position as this would take me out of the Agile Coach role and will put me in a more connected and close to action position.

At that time, I've created the outline of what I'd like to be doing and shared with my manager. After a couple of discussions, I was offered the position I wanted and was able to do the move I was wishing for. It was not an easy transition. This decision didn't pleased everyone, lots of questions were raised, and the entire situation became even more challenging for me.

I was excited and at the same time scared, as I knew that the transition will require much more effort and work from my side than I was expecting. Maybe I'll write more about these challenges and how I tackled them in another article. For now, I'd like to share the outline of the activities/responsibilities I shared with my manager that led me to the transition I wanted.

When it comes to the title, I thought initially in three titles: "Engineering Manager", "Software Development Manager", "Delivery Manager". I think the names vary, but for all these positions share a lot in common when it comes to the set of responsibilities involved. Bellow I'll copy-and-paste what I wrote at that time without any edits, including my perspective, at that time, on the compensation I should be getting for performing those responsibilities (If they paid me that, is another story. The values are in Euros and considering the Berlin's tech scenario).

What was written, not necessarily is how I think today. The great majority is, but some points I'd say I have a different perspective nowadays. Some of them were tailored to the context I was in at that time, so I'd say 95% of the points are generic, and 5% is tailored to fit the context.


The Position In Summary

In  this position you'll have to use management skills to plan and manage the development of solutions, leadership skills to provide guidance, and  coaching to develop and build outcome-oriented teams. You'll not be  required to be a direct producer, that creates code and fix bugs, but  you'll be responsible for overseeing the quality of what's being  produced by teams under your responsibility. You will be part of the  group of people whose mission is to maximize teams' overall impact  usually by developing team's capabilities, detecting and removing  roadblocks and process inefficiencies in order to streamline the  solution delivery flow.

Main Responsibilities

People Development & Management

  • You  care about people and their development and support people to identify  development opportunities during their day-to-day work.
  • You will start with a single team under your responsibility, and move later to a multi-team responsibility.
  • You can use coaching techniques to support people to develop their soft and hard skills.

Production Process Influence

You influence the definition of the software development and delivery processes by:

  • Collaboratively develop with the team the workflow they need to get things done;
  • Tweaking current processes in order to make them more fluid;
  • Use your experience to advising the team on their decisions regarding their way of working;
  • You're responsible to embed quality into the processes by using the best tools and practices of modern software development;

Working Policies Control

  • You  can adjust working policies, within the boundaries of the  organization's general policies, in order to match the needs of the team  and their goals.

Performance & Accountability

  • You  are responsible for defining, tracking, and communicating operational  KPIs - aligned with the business KPIs - for the teams under your  responsibility.
  • You  are responsible for managing, tracking, and communicating the team's  roadmap and milestones based on business' goals and strategy.

Tech Decisions

  • You're  responsible for overseeing and advising decisions that have global  impact such as (architectural changes, language changes, framework  adoptions).
  • You know how to whom delegate different types of decision making.
  • You  know how to empower the team to make their own decisions on topics that  does not have global impact. You let the team make their own decisions  and learn from their success and mistakes  as well as learn how to  become a self-managed team.

Execution & Coordination

  • You coordinate the execution of plans.
  • You use a flow based approach to execute the work.
  • You establish service level agreements between areas that depends on each other so the flow does not get compromised.

Team Building

  • You  are responsible for building teams, that work as a unit and perform  well. You know how teams are created and how they evolve over time. You  know team dynamics and can coach the team through their evolution.
  • You  build teams that are outcome-oriented teams capable of delivering  complete solutions with minimal dependency on other teams. You use  modern processes and practices to achieve that.
  • You  build teams that are responsible for what they build using the  principle of "You build it, you ship it, You Keep it". This includes a  certain level of monitoring, bug fixing, and incident response process.

Requirements For This Position

  • You have a background in tech (computer science or similar).
  • You  developed software for 5+ years and understand the characteristics of  quality software (including how to properly test software).
  • You played the role of Chief Scrum Master. Release Train Engineer, or an Agile Coach for an year or two.
  • You have implemented or collaborated to the implementation of agile/lean at medium/large scale.
  • You had managed at least one software development team with multiple core skills.
  • You had past experience in leadership (coaching, people development, conflict solving, facilitation).
  • You are comfortable mentoring and delivering training to people from individual to larger groups.

Expected benefits

  • Flexible working hours.
  • Autonomy and trust to try and learn from failure.
  • Good working environment (tools, amenities).
  • Budget for training, books, and team events.

Compensation

What  to expect for such position? Not less than what's being paid for senior  level positions (developers, agile coaches, tech leads, etc). 80k+ per  year.

Scrum Masters (responsible for single teams) are being paid up to 60k.

Agile Coaches, that work across many teams, should be paid above that.

A  fair compensation on this case, would be anything above 70k from my perspective. Expert level coaches should be paid 80k and above, and master agile coaches should be paid up to 100k.


Post Cover Photo by Ross Findon on Unsplash