Position your team for success
A good position will give you benefits that no effort can produce.
Chess is a perfect example of how the position defines the outcome of the game.
In the loosing position, a professional player has no better chances to win than a layman. Skills, intent, hard work do not matter if a bad position predetermines the outcome. A similar effect exists in managing an organization.
How your team is positioned in the bigger organization will affect many aspects: your ability to hire new people, promotions possibilities for the team members, the support you're getting from the leadership, and so forth.
Being unaware of your position might hamper your career success.
In one company, there was a big turnover. A new CEO took over the company, big transformation of the business had started, they hired new engineers and introduced a new technology stack. Though, the veteran employees engineers resisted. They worked for years in this company, they perceived new changes as risky and harmful for their jobs. Managers from the veteran group were arguing that their teams were doing well, and that new initiatives were about to fail. Very few veterans managed to change their mind, switch to the new ways of working and start contributing to the company's success. Two years after, only a few of them remained in the company.
Fighting vs. Winning
There is a difference between fighting and winning. When someone resists what you're doing, you're in a fight. You take damage, but the chances of getting what you want are low. You're winning when no one is pushing back. There is no party playing against you. In this case, the only thing that defines success is how well you execute.
The veterans from my example were fighting. They were opposing the new management and silently sabotaging initiatives. The moral of this story is that fighting might actually worsen your position. The veterans knew all the issues with existing systems. They knew points of failure, services that won't scale, things that are difficult to do. Instead of leading the transformation and using their knowledge for the good of the company (and probably their careers), they were resistant. Over time, they put themselves into a position where they're unlikely to succeed in the company, and the company would have better chances of succeeding without them.
When you have a difficult situation at work and don't agree with the way things are done. For example, a policy pushed top-down, and you know it will harm your organization. Ask yourself whether you are fighting or how likely you are to win. It doesn't matter whether you're right or wrong, whether that policy is indeed ridiculous or not. What matters is, are you in a position to win? And if not, you don't fight. Fighting will only hurt you and your org. You also don't give up, either. Instead, you work on your position, so you can win. If, of course, the matter is important enough.
Let take another example—A team has a long track of record of delivering complex projects. They’re well played together and highly competent, their reputation is known in the organization. Guess which team will get the next shiny project? This is winning. It’s not only because the team had demonstrated their ability to ship software. They prepared the handover, the amount of maintenance work is low. They’ve made themselves available for the next challenge. This is how good position create opportunities.
Before we go further, I want to be clear what I mean by the word "position". The closest dictionary definition to what I mean is—"relative place, situation, or standing". To make it a bit more specific, it's a relative place of your team and you as a leader in the company. The position includes: the role your team plays in the company, your reputation, skills, and seniority of your team members, projects your team works on, your relationship with peers and your manager, teams with conflicting priorities. All those things that add or remove friction in what you’re trying to achieve.
Understanding your position
Being real about what you can and cannot do is crucial. Committing to a challenging project, presuming that your team should be capable of delivering it, when actually it's impossible with your current setup, will create a lot of pressure on your team members. It might reduce leaderships confidence in your team and hamper career opportunities in your area.
The steps to assess where you stand are simple, but they require an honest analysis of the situation.
Start with the big picture. Understand what your team does for the company and how important it is. What will happen if your team does not exist? Are there other teams that are doing similar work? What are the financial and reputational risks for the company in your team's scope?
Your team might be a crucial part of the company. Maybe your team is doing something that has nothing to do with the business. This is not as scary as it sounds. There are better things your team could work on. Keeping the status quo is a dead end. Flagging proactively the issue will give you extra credits. Many people are afraid to say that their team doesn't do much for the company. They might be scared of being made redundant or losing their face. In practice, it's the opposite. It gives you extra credits when you flag that your team has better ways to help the company and propose a plan to make your team completely free to work on something else. This move demonstrates your business awareness and signals that you make good decisions for the company.
Keep focussing on the company and the bigger picture. Are there company-wide initiatives? Is your team aligned with them? Does the company have a technical strategy? How does it affect your team? Are you fighting it? List the outcomes of your analysis. It might look like:
+ There is an active migration to the new tech stack, and your team is one of the early adopters.
- A large architecture initiative is underway to redefine how business critical services should work. Though your team owns a critical service, you don't know what's happening with this initiative.
Now let's switch to your team and how it operates. Think about your team. Consider as many aspects of their work as possible. What is your team great at? Which skills are they lacking? What does the track record of your team look like? Did they meet their commitments, or do they often miss important deadlines? Is there a high risk of attrition in the team, and what are the ramifications of it?
A few more points to add:
+ A well-coordinated and cohesive team.
- Lacks experience of operating critical services in production.
+ Successfully launched a big company-wide project last year.
- Constantly fighting with upstream service owners about how services interact with each other.
- There are not many opportunities for engineers to be promoted in the team.
Let's expand the list. Think about the product and services the team owns. Are you happy with the quality? Will your services be able to survive in production for the next 3–5 years with the current architecture? How often do you have outages? How long does it take to repair? Are you happy with that? Do you have such data at all?
A few more bullet points to add to your analysis:
- The system is very fragile. The team shipped a proof of concept to production, and made many patches to make it work.
- Services fail in production a few times per month, which requires constant effort from the team to repair services.
- There is yet no plan to improve it.
Let's dig deeper. Think about the team's ability to deliver. How long does it take to deploy a single line of change to production? Is it in the order of minutes, hours, or Days? What are the main bottlenecks? How long does it take for the majority of tasks to be completed? How many things is your team working on simultaneously?
This time I won't mark points with + or -, use your judgement instead.
A significant amount of work can be automated to free up engineers' time.
Most of the services take less than an hour to deploy changes to production. However, some parts, hosted in the old code base, might take days to deploy.
The team operates at maximum capacity. Currently, every team member is working on something independently. There are as many projects in progress as team members.
Note: this exercise is subjective, you won't discover the universal truths of the world. And that's OK, it's your job as a manager to exercise your judgement and make decisions with incomplete information. You can always change your mind if you discover that reality is different from what you thought.
Such analysis will help you identify opportunities and areas where you could focus on. You'll probably find out that there's a lot of work to do to improve your area. Great! You just discovered it.
How you can improve your position
An honest analysis is the first step, but to strengthen your position, you need to act.
There will be situations where you have control over the situation, like prioritizing work automation, educating the team about reliability best practices, or changing the team's processes.
Additionally, you can engage people in your team and reframe obstacles as opportunities. Someone in your team might be working towards a promotion, and they need to have more evidence in their portfolio. Isn't it an opportunity for them to simplify deployments, reduce the amount of operational work, and improve observability of the services the team owns?
Someone might be passionate about testing. You can leverage their enthusiasm to improve quality and up skill other team members. Transforming vaguely defined problems into actionable projects, you make your team more efficient. It is unlikely that someone will step up and solve a vaguely defined problem, such as when we spend a lot of time fixing production. If there were people on the team who could solve the problem at this level, you wouldn't have the problem.
When you change a problem-statement into something more actionable, it's more likely that the issue will be solved. It is much easier to commit to a specific objective such as "build a dashboard with the key metrics and define Service-Level Objectives for the services" than to puzzle with a broad issue like "we spend a lot of time fixing production." You, as a manager, help your team a lot by making problems easier to address. Sometimes, it's just a matter of phrasing things as specific as possible.
In certain situations, you might not have the power to change the things. You might need your peers or your senior managers to make decisions and execute them. This might be tricky. The greatest challenge is to overcome inaction.
Often managers do not act because they believe doing nothing is a safe option. This team has been operating for years, why should we do something now? They will be OK. Also, senior managers get their knowledge indirectly, they talk to their reports, listen to conversations, but they are rarely hands-on. Their picture of the reality might be inaccurate, and this is your opportunity for action.
Let’s imagine your team is overloaded and pressured to keep launching things on time. If you complain to a senior manager about this, they can point to the previous successes and say that your team is doing a great job and should keep going. It's an entirely different conversation when you bring the data about how much time the team spends on maintenance.
It's way more difficult to say "I don't think so" against the data.
If you collect specific data points and show that doing nothing is not an option, you're more likely to get the support that you need.
It's not that the leaders are ignorant, they believe that things are going well, unless they’re told otherwise. In the end, you would rather not be micromanaged, wouldn’t you?
To get support from leadership, you need to take several steps:
Build evidence on why the current state is bad. It could be data about outages, the amount of maintenance work in the team, how long it takes to deliver a feature, the number of bugs, or whatever it is that you're unhappy about. Make sure your data is correct and that you know the subject better than the person you're going to talk to.
Propose an action plan. What do you think needs to be done to improve things. Make sure it's realistic and that you can connect actions with results.
Formulate a specific ask. This step is crucial, and you need to be very clear about what you're asking for. You also must be clear that without this ask things are unlikely to change.
With these steps, you create conditions where you're more likely to get a commitment from a senior colleague to support you with specific steps.
Conclusion
You can't change your position overnight, but you can change your direction and start taking steps to improve the things in your team. Making consistent, however small steps towards better position, will make a huge difference in your area on a scale of 3–6 months. You don’t turn your team great by doing one single thing. You do many little things that accumulate and put your team into a better position.