backstage / community-plugins

Community plugins for Backstage
Apache License 2.0
164 stars 223 forks source link

πŸš€ Tech Radar: RFC new design #634

Closed clanghout closed 1 month ago

clanghout commented 3 months ago

Plugin Name

Tech radar

πŸ”– Feature description

Redesign of the tech radar:

We believe that by understanding the tech radar users first we are able to improve the user interface and user experience for the tech radar. This will change the way the tech radar looks and behaves so it meets the needs of the users in a better way.

🎀 Context

Spotify and bol were working both on an initiative to improve the tech radar. We seized the opportunity to collaborate together and find common ground. The initiative was entrusted to bol because they wanted to do usability testing with users to validate the new designs and make remarks where needed. The usability tests were very positive and on a scale from 1 to 10 the engineers, tech leads, and tech principles scored the new tech radar overall with 2 points higher than the current tech radar.

✌️ Possible Implementation

What will change?

accordionabout

What will be configurable?

Current tech radar:

current

New tech radar:

new

Data format:

Proposal: enrich the entry data object with a label or filter property. The type of that property should be a list of:

{
// to represent the category this filter value applies to (the bold header in the filter dropdown)
category: string,
// the value for this entry within the category (e.g. category: Disciplines; value: Back-end)
value: sting,
}

This would allow the front-end to collect all possible filter labels, and dynamically fill this dropdown with the categories and values.

Where will the configuration for rings reside (count, names, colors)?

https://github.com/backstage/community-plugins/tree/main/workspaces/tech-radar/plugins/tech-radar#tech-radar-data-model -> the ring type already has name, color, and description

How to configure the shape of the blip?

Is now automatically inferred from the timeline property of an entry (blip)

How to include/exclude golden technology indication?

Let’s add an extra property to the entry data type for this. An optional boolean isGoldenTechnology or something like that.

πŸ‘€ Have you spent some time to check if this feature request has been raised before?

🏒 Have you read the Code of Conduct?

Are you willing to submit PR?

Yes I am willing to submit a PR!

Rugvip commented 3 months ago

As mentioned we've been discussing this redesign for a bit, it has my 🦭 of approval 🟒 πŸ‘

andrei-ivanovici commented 3 months ago

This looks really good and extends the base functionality significantly. Especially the filters. I have a few questions and ideas to share

acierto commented 3 months ago

Hey @andrei-ivanovici πŸ‘‹

  1. What is the use case for having labels/tags?
  2. Do you have an example when a blip can be in multiple categories at the same time?
  3. Currently Tech Radar get's the data via Rest API, where user defines the call. So even now can be created a custom entity kind, where this API can read and return to Tech Radar as a source of it.
  4. No, we don't have plans to implement a visual editor. Could be a good addition if someone will πŸ˜„
schobbejak commented 3 months ago

I've been working with the Tech Radar and this redesign would address some of the issues I've been facing. A few other issues I've had are:

So having the options to customise and more flexibility in the data model would be very helpful. If the above options are possible currently and I missed something, I would greatly appreciate any advice on that.

github-actions[bot] commented 1 month ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

clanghout commented 1 month ago

For us we will not be able to get to this before the end of the year. We do still want to make this change but it will likely be planned for 2025

andrei-ivanovici commented 1 month ago

Hey @andrei-ivanovici πŸ‘‹

  1. What is the use case for having labels/tags?
  2. Do you have an example when a blip can be in multiple categories at the same time?
  3. Currently Tech Radar get's the data via Rest API, where user defines the call. So even now can be created a custom entity kind, where this API can read and return to Tech Radar as a source of it.
  4. No, we don't have plans to implement a visual editor. Could be a good addition if someone will πŸ˜„

Hi, For our use case tags enables us to perform more fine tuned filtering and group blips based on them. A blip can have one or more tags associated with it. For example, Zod has the tag library and validation, Sass has the tag language and styling. NextJS is a framework and relate to SSR, etc. Regarding git as a radar source. The current flexibility of the radar API is awesome. It allows anyone to integrate the radar with any data source. I was just considering some useful default. Since backstage uses git heavily, having a git source as an option feels like a good feature to have. If this can be done already and it's just a matter of configuration, I'd like to hear more about it πŸ˜„ Regarding a visual editor. We have experimented with a basic visual editor and have seen a lot of success with driving adoption. Our engineers feel more comfortable with a visual experience instead of editing yaml files

I hope this helps