I’ve worked with some amazing teams in my tenure and delivered multiple products. And I was recently asked by multiple folks, ‘how do you do this magic’? I really did not think I did any magic, but I realized the secret behind is really the years of experience I have gained in this agile and fast paced growing company. Here are a few examples:
In 2017, one of my infrastructure teams not only delivered the metrics we had defined in the V2MOM, but a platform as a service, optimizing 80% the operational cost in spite of working on Sev0 issue remediation that added work on the backlog. We also gave a number of Tech Talks on a small to bigger scale.
We were also the first team to earn the SOMM(Service Ownership Maturity Model) certification in the cloud.
In 2013, one of my products team turned from top 10 red teams to nowhere into that top 10 red teams in just a year.
…Wait, I just mentioned a lot of keywords here, ‘team’, ‘delivered’, ‘metrics’, ‘V2MOM’, ‘platform’, ‘service’, ‘red’, ‘backlog’?
With this blog, I will share how I empower the team’s success as an Engineering leader and a Product owner.
Know your one metric you want to move the needle on!
We always come up with a number of metrics we want to achieve as a team in the year. But how many teams know what is their one metric, that they will be moving the needle on? Often it is hard because teams are struggling to do many things at the same time and chances are they forget what their goal really is. In Salesforce, we follow the Vision Values Methods Obstacles and Measure, aka V2MOM model. It gives a really good structure to create smart goals and define overall Vision with values. It makes it transparent to teams, partners, stakeholders and ultimately leadership on how we will make an impact. I have found it very effective to focus on one metric as a goal for the year. All the efforts you will be focusing on should ultimately make an impact on that one metric.
For my team, we had to automate the runlist steps, build monitoring for better visibility, and optimize the processes. From this list, engineers understand the problem space but may get confused what is our measurable goal for the year. I came up with one metric: 50% Automation of the Milestones, given we had 10 different milestones, which is measurable. Once I defined that, it made the expectations clear for the team. When you automate 50% milestones, you no longer think about just automating the steps, but optimizing the whole. To come up with it, think about the problem you want to solve and, figure out what is the solution and the answer is there. This makes team empowered to come up with various ideas enabling innovation to make that needle move. With our Goal of 50% milestones automation, the team came up with solutions to all the problems and innovative ways to automate and optimize them.
Customer First — Deliver “as-a-service”!
When the team knows their metrics, it’s time to deliver the product or a solution to the problem. When you think about that solution, think about all the aspects of making it an as-a-service! Ask these questions:
- how do we make sure the latest technology is thought about for solving this problems
- who is the customer?
- are there alternate solutions in the market or in-house?
- how are you going to maintain it, after the service is pushed to production?
- what will be the availability, if there are problems?
- what does the recovery look like?
- is it resilient, does it need to be resilient?
- does it have monitoring?
- are we creating any single point of failures,
All of these questions help you come up with a service which meets the service maturity and ownership expectations.
For my team, our one metric was to automate 50% milestones. What does it have to do with making it as a Service? Asking the above questions, we not only automated steps, we built an automation platform where we can easily add more milestones later so our journey to 100% automation becomes easy. We also built our own Refocus monitoring tool leveraging the Refocus & Argus like tooling in Salesforce. This helped us save hours of troubleshooting time during the actual production cycles. Building this tooling right made it easier to maintain and troubleshoot any automation gaps. We made sure there is enough test coverage both UI and Unit tests to boost not only the coverage but confidence in building new features on top of the code incrementally. Well, with the customer in mind, we saved time and efforts by providing them visibility and reliable data on the status of the efforts.
Again ultimately, how do you measure if it is moving that needle you would like to? When you enable the team with the questions, as a leader I try to provide a space where people discuss these problems as a team and come up with solutions. For every new innovation work, we create a spike story. This spike should cover the various ways to solve a problem, pros and cons in every aspect, from cost to build to maintain and ultimately benefits, whether it’s an in house solution, third party solution or internal tooling. This doesn’t come naturally for the team if the team members are not participating and learning about all the technology solutions around their space.
It’s a chain effect, team members should be making time to explore various solutions around, team environment should allow them to find time for that and leader has to facilitate the journey!
“You don’t learn to walk by following rules. You learn by doing and by falling over”Richard Branson
We got our Goal and we got the right approach. Now, how do we efficiently execute it?
Being Agile is my way to go! Being a technology team, we run into so many problems on a daily basis. We assess every problem we run into, basically root cause analysis for every problem. Find out how painful it is to live with that problem, what are the better ways to solve that problem. Obviously, if it is worth it, we fix the problem and improve our productivity, then why not prioritize it over other planned work? So, we end up prioritizing the work every day. Does it mean anyone can just pull problems and keep fixing them? No! As a team, we evaluate if there is value doing some work ahead of another. This is real Agile! What’s important here is to keep us on our goals and improving the productivity is the key. Again, one team can not move the needle alone, the partners need to help collaborate on the solution. Dependencies help us keep others accountable for their deliveries.
The agile principles are wisely outlined :
- Respect People, Eliminate Waste, Deliver Fast, Just in Time Decisions, Optimize the Whole, Create Knowledge, Build Quality
We follow these principles, and they guide us towards successful delivery on our metrics.
Teamwork is a dreamwork!
Talent wins games, but teamwork wins championships.Michael Jordan
Very well said!
When you have Goals, strategy, you need a team of talented engineers who can achieve those goals.
As a leader, I believe, you coach them to be successful as a team. You make sure every individual uses their strengths and you also motivate them to work on their weaknesses. Give them ongoing feedback, adjust your style to work with their style and build a relationship by resolving conflicts if any. Recognize them for going above and beyond and the value they bring on the table.
I know there are a lot of types of trainings for it, and each one of you teaches you everything. I have experienced a lot of value bringing a diverse team together and making them believe how they can perform better together. To give an example, my current team has people with different experience levels and different backgrounds. They all have their strengths and interests and they complement each other. This allows everyone to learn what everyone else is doing but also grow them in their own space. Set a culture and see the magic! Guide them initially and let it glide! Because they know how to do their job, give them that freedom and environment where they can learn and tell them it is ok to fail. When they fail, ask them to assess how can you avoid making the same mistake. It’s all part of the job!
As a leader for the team, my job is to make sure I build transparency in the processes, build Trust and rest is taken care by the team!