增加一个团队是错误的战略决策。
Adding a team was the wrong strategic decision

原始链接: https://learnings.aleixmorgadas.dev/p/adding-a-team-was-the-wrong-strategic

## 应对团队错位与优先考虑影响 在组织变革期间,一个新的客户体验 (CX) 团队被引入到一个由四个工程团队组成的部落,事先没有进行沟通。虽然目标——改善 CX——是有效的,但该团队的创建源于一个过时的运营模式,侧重于技术组件而非端到端的产品所有权。 工程经理没有挑战这一决定,而是专注于理解团队的任务:构建一个仪表盘以缩短工单解决时间。然而,CX 团队孤立运作,缺乏必要的账户信息访问权限,并且严重依赖工程团队的支持——重现了他们试图解决的问题。 为了实现业务目标,采取了一种务实的方法:构建更简单、团队特定的仪表盘,赋能 CX 自助服务,并通过培训和文档优先考虑自主权。这绕过了集中开发的仪表盘,由于团队内部的技能差距,该仪表盘难以实施。 虽然最初受到对新团队有投入的领导层的抵制,但这种方法迅速改善了关键指标。最终,CX 团队在成立五个月后解散,证明了赋能现有团队在新运营模式下拥有 CX 的有效性。这次经历强调了将团队结构与当前需求对齐,以及优先考虑有影响力的解决方案而非严格遵守过时计划的重要性。

一个黑客新闻的讨论围绕着一篇博客文章,该文章认为增加一个新的团队是一个糟糕的战略举措。评论者farazbabar强烈不同意对这一决定的潜在负面反应。 他认为,即使不同意领导层的选择,积极地去破坏新团队的工作也是适得其反的。相反,他提倡专注于与整体业务目标保持一致——产品成功、客户满意度和公司增长——而不是保护个人“部落”或首选方法(“康威定律”)。他强调理解*为什么*做出这个决定,并在不同意时积极贡献。
相关文章

原文

I still remember that quarterly leadership meeting, which I was Engineering Manager of a tribe of 4 teams, 3 product teams, 1 platform tribe team.

All of a sudden, in the slides there were a new team.

We have decided to improve the experience for our customers for this tribe products, that’s why we have opened 3 new positions for the new team CX Tribe.

I had a new team that nobody asked me for my input, nor informed me before that decision was made. It just appeared out of nowhere.

This is that kind of situations that sucks are unfortunate.

In that situation, I could have focused on:

  1. Why I wasn’t included in the decision-making, or

  2. Understand the reasons of that team, and how can we leverage it for the challenges we had.

I went for the second.

Simplified conversation.

- Aleix: Which is the mission of that team? How will we work together?

- Product leader: The goal is to improve our Customer Experience. We take a lot of time to resolve tickets, and our CX team needs better tooling to support our clients. This team will be in charge of a new dashboard.

Conversations are unstructured, therefore, we always need to extract the intentions from the noise.

There were things we were aware of, I just found that the operation model that the decision was made was based on a previous sociotechnical structure.

On the old operating model, the company founded teams based on technology components. A mobile team, a backend team, a web team, and, in this case, a CX team doing a dashboard.

The product had a broken experience due to the handovers between teams, no single team owned the product E2E.

So, we moved towards a team owns the full experience. You can see the full journey to reach this point here.

The new operating model worked well, we had fewer bugs, fewer incidents, we were going in the right direction.

Yet, that decision was made. My main opinion of why that happened is:

  • Information flows slowly to decision makers. This was due to the new approach was bottom-up, and it didn’t happen in the closed leadership meetings.

  • Investing in new teams, during 2020, when the budget is easier, and you need less negotiation between parties.

  • Having a single team to own the CX at the tribe makes a clear focus, clear ownership of the metrics, and makes the reporting faster to the specific leader that’s responsible for that.

The first odd decision was that the team didn’t report to any of the tribe leaders. They reported directly to our product business vertical product leader. And that created a flawed communication, even though we included the team on all the tribe meetings and ceremonies.

The new team was created without the support to succeed.

Regardless of how that team was created, we knew that CX metric had to be improved. We were driven by two:

  • Fewer tickets per month. We succeeded on this.

  • ⚠️ Reduce time to resolve a ticket. We still had to improve this by a lot. And, indeed, that’s what the new CX team was funded for. 👈

During the quarterly planning, they presented their approach.

CX team will develop a new dashboard for the whole Payments Tribe using microfrontends with React that will connect with existing authentication tools.

Once that’s finished, each team will have to develop their own microfrontend for CX support.

That didn’t make sense at first, since the team approach and leadership expectations weren’t aligned.

We managed up the miss alignment on expectations. The approach wouldn’t meet the leadership expectations, which impacts our customers and the product experience.

CX team didn’t have the proper tooling to understand the state of the accounts for them to resolve the tickets autonomously. Each new ticket required a developer to dig into the state for:

  1. Understand what’s not working.

  2. Apply a fix, usually implying API calls or DB changes due to out of sync systems. We weren’t fully consistent due to the high distributed system we poorly designed. We were improving this at good rate.

So, CX had two problems:

  1. They couldn’t answer the customer with we understand what’s your problem, and we are resolving it. They couldn’t have a predictable way to know when things will be resolved.

  2. They had a strong dependency on developers’ availability to look into those issues. Which means, outside working hours, they would have to wait until next day to get the answers and fix.

This caused another issue into the teams.

CX tribe team was added without understanding the current tribes challenges and structure. The team had to understand the full picture, and start creating human connections to succeed in their mission.

They weren’t autonomous to accomplish their goals, yet they didn’t collaborate with teams to be sure they accomplish it. Instead, they were focusing on the technical challenge of a new greenfield architecture.

At this point, I had to decide how to accomplish the business goals in this new scenario. And I decided to go with the next approach.

We will develop an internal dashboard per team, they won’t be connected, but they will serve the main CX use cases.

We will train the CX team on this new messy dashboard.

This direction had several implications:

  • Product teams will develop their own dashboards, protected, but not having a good overall UX for the CX team, but good enough.

  • The dashboard will only contain the use cases that CX need.

    • When a CX opens a ticket into the team, we don’t resolve it manually but create a new dashboard feature to help the CX to do it by themselves.

    • We dedicate the right amount of time to be sure they are autonomous. This means pairing with them, documentation, and so on.

  • We will ignore CX tribe team work until it is the right time.

    • I would focus on containing the noise from the team when leadership asks why we’re not using the dashboard they are investing it.

    • The internal Dashboard will have the basics that later could be reused for the new dashboard when it is available.

During the execution I faced a very strange challenge. The dashboard wasn’t being developed within the teams, it was taking A LOT.

The dashboard wasn’t that complex: View information, perform some API calls. Replicate what we were doing in the DB and API manually but in a web page.

After sometime asking the team to prioritize that, I realized which was the problem.

People weren’t comfortable with frontend development. Indeed, some shared that they were backend developers, and they wouldn’t do any HTML work.

This delayed everything. Starting from 0 were preventing people to develop the dashboard. I didn’t realize this was happening until very late.

You can see how we moved from per stack developer to full stack developer here

So, I adapted to this reality, and I did a hard push to create the backbone of the dashboard using only spring boot templates. Instead of aiming for a React frontend, we just needed a simple HTML template, to call certain endpoints, and ensuring the security.

When the team had some basic structure in place, extending it was a matter of copying the existing structure.

The dashboard wasn’t beautiful but useful.

We did the dashboard, it was resolving the tickets, it wasn’t being used by the CX team but by our product manager.

The product manager, she is a lovely person, preferred to take all the burden by herself over passing the tickets into the developers.

We succeeded on freeing the developers from unplanned repetitive work, but now our PM was super busy, and probably burning herself out.

We asked why she was doing that, and how can we help her.

The problem was that CX was used to passing the tickets to our team. Now the tickets were resolving faster (since the dashboard made something super trivial), so, the business objectives were accomplished.

But in the wrong way.

This usually happens, OKRs looks good, but the approach creates the wrong culture.

We had to intervene to accomplish the same OKRs but with a better approach.

CX resolving the issues by themselves, not by our team members, regardless if they are devs, product, or design.

So, we started pairing with CX team, do proper training, and documentation. We showed them that it was less painful to make it using a messy dashboard that resolved their issues fast, rather than opening tickets into our Jira board.

The key area was to kind of use Jira during the process, because that’s the system they used to report their progress. We adapted a little the process to help them show their progress and impact. That boosted the adoption by a lot.

Once that was done, almost all the tickets were solved at CX team level, reducing by a lot the unplanned work for our team.

Within a month, we achieved the OKR of “Reduce time to resolve a ticket” to within hours compared to days.

Two main things went wrong here.

  1. We invested into a team to create a dashboard that nobody used. We wasted human time and system resources.

  2. Created a dashboard outside the common legacy CX tooling increased adoption friction.

Leadership invested into a new team because that was the operating model we had back then. Each leader had a budget, and they used it to create their own teams they had clear ownership of.

Instead, I would have had added dedicated team members into each team in order to understand the whole product domain, and adapting it to the CX needs instead of creating more communication and managing structure.

I knew that by ignoring the CX tribe team creating their own tooling meant that we were burning money, in terms of people’s time and system resources.

At some point, I had to decide which problem to address, and burning money was the cheapest approach to overcome our business high stake challenges.

Sometimes feels like wasting that is the wrong approach, nobody wants to feel they are wasting resources. But looking back, the decision we made was the approach that wasted the less of resources and people’s time.

By focusing on the new ways of working, and the team being autonomous to deliver a solution within the same quarter, indeed, same month, had the biggest customer and business impact.

This created friction within the leadership team during the whole quarter.

Because we were asked to use what they decided to invest.

But here I followed the Team Topologies Platform principle. Do not force adoption. If the platform isn’t good enough, the best we can do is drop it.

At first, this was a very odd decision for other leaders. It felt like I didn’t care about the teams job, but the goal was to show a better way to solve the same thing with the new operating model we had invested for the past months.

This turn out to be a great business case, and we started replicating the approach.

What started as a temporal dashboard, I think it had been there for way more years that we would have expected. 😅

That team were in place for 5 months, after seeing no much progress but the product teams resolving those CX metrics by themselves, the leadership team decided to dissamble the team.

联系我们 contact @ memedata.com