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.
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.
- 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.
- 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.
- Flexible working hours.
- Autonomy and trust to try and learn from failure.
- Good working environment (tools, amenities).
- Budget for training, books, and team events.
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.