DEV Community

Cover image for Frontend Platform use case - Creating a roadmap without a Product Manager
Stefano Magni
Stefano Magni

Posted on

Frontend Platform use case - Creating a roadmap without a Product Manager

How we created a roadmap for the Frontend Platform team without clear expectations.

Photo by Mitch Mckee on Unsplash


August 2022, Hasura changes the internal team's structure from horizontal teams (the "Console team" with all the frontenders, the "Server team", etc.) to vertical, full-stack "Feature teams" ones that cover a Product need (the "Native DB team", the "GraphQL Services team", etc.). Also, a generic "Product Platform team" has been created to cover all the Product features that do not fall under the umbrella of the various Feature teams. The Platform's team scope also included dealing with high-level tasks and problems that would have allowed the Feature teams to move faster while developing product features.

We (N. Beaussart, N. InchauspΓ©, and I) were the front-end side of the Platform team and we wanted to ease all the other frontenders' lives by removing some of the huge technical debt that prevent them to work effectively and to release features safely and without introducing a lot of bugs and "fix" PRs.

We then tried to:

  1. Identify what front-end tasks fall under the umbrella of the Platform teams in other companies

  2. Identify the most important activities to work on

Identify what front-end tasks fall under the umbrella of the Platform teams in other companies

Please keep in mind that while Platform teams are very common in a lot of companies, frontenders are not usually included in those teams. As a result, the public resources for front-end Platform activities are limited. Anyway, we found some great resources that it's worth mentioning:

By reading them, we found confirmations about the tasks covered by frontenders in Platform teams, such as:

  1. Fix the most problematic technical debt that slows down the frontenders of the Feature teams

  2. Fix the problems that will slow down the Feature teams in the short term by anticipating the new Product features' needs

  3. Maintain Design Systems

  4. Create some common patterns and best practices and automate getting them respected

  5. Improve and stabilise the various application tests

  6. Evaluate new solutions and technologies to better solve internal technical problems

  7. Manage and optimise the front-end tools and dependencies

  8. Mentor other frontenders and spread knowledge

Due to bug technical debt present in Hasura's front-end projects, how could we (the frontenders of the Platform team) ensure our activities were aligned with the short-term Product needs? How to create a sort of roadmap and stick with it regardless of the everyday problems that could arise from such a complex Product and a lot of engineers? Go ahead 😊

Identify the most important activities to work on

We proceeded by:

  1. Interviewing all the stakeholders that are directly or indirectly impacted by the Hasura Console (Hasura's main front-end application and the most problematic one), including

    1. All the developers working on it on a daily basis
    2. All the developers working on it time every now and then
    3. All the Engineering Managers of the teams including developers from the previous points
    4. The Documentation team
    5. The Graphic Design team
  2. Collecting all the answers in a shared spreadsheet

  3. Summarising the most requested area of interventions (the "Engineering priorities") and categorising them

  4. Preparing a presentation for the higher-ups that include

    1. A slide for every single activity (15 in total) with a clear explanation of why it was important, what the activity is, how many (in percentage) stakeholders asked for it, and a T-shirt size
    2. A table that acted as the focus of the presentation, where we asked the higher-ups to put a "Product priority" to then mixed with the "Engineering priorities" that we identified

The final goal was to list specific activities with

  1. The Engineering "priority"

  2. The Product "priority"

  3. The T-shirt size

And creating a roadmap out of this list was a breeze! This also helped us to identify what to not work on, something not very straightforward when you deal with a lot of problems and requests on a daily basis.

Here is an example of the table we created with a bunch of activities we identified:

Area Activity T-shirt size Eng. ⚠
Perf+stability Sentry: Mapping feature directories to teams. πŸ‘•πŸ‘• βšͺ
Architecture Providing tools to respect the libraries strategy in the Console. πŸ‘•πŸ‘•πŸ‘• πŸ”΄
Architecture Update GraphQL and GraphiQL πŸ‘•πŸ‘•πŸ‘•πŸ‘• πŸ”΄
DX Better docs and tools to run the Console in all modes/types. πŸ‘•πŸ‘• βšͺ
Regression Storybook Tests: Reduce the drag in testing different Console modes/types. πŸ‘•πŸ‘• 🟑

Conclusion

The higher-ups highly appreciated the initiative and we immediately started working on some of the activities.

Top comments (3)

Collapse
 
omril321 profile image
Omri Lavi

Hello Stefano, thank you for this article! I feel like I found a gold-mine of useful links 😊
Regarding to taking technical-debt tasks from the product teams - I find it a bit problematic. It makes that the platform team will tackle difficult issues (with or without the product team) since they are usually experts on their field. However, I feel like there is a very fine line between helping with difficult issues, and owning technical debts that the product teams decide to leave for later. The product teams may leave the "dirty work" to the platform team, and feel like they are not owning these parts. Did you encounter such issues?

Collapse
 
noriste profile image
Stefano Magni

Did you encounter such issues?

Not yet since I stayed too little in Hasura. What I experienced is that the teams wanted to solve problems (and not leaving them to the platform team) but they did not have the span or the experience to do that. So the situation was different and "more positive" (even if sometimes it was problematic for the platform team when other teams wanted to fix problems "right now" because they could not know they do not have the experience or the big picture in mind)

Collapse
 
omril321 profile image
Omri Lavi

Ah got it. It sounds much better than I imagined it in my head πŸ˜