Open udam-f2 opened 3 months ago
I like this assuming it's an easier path to get semi-well-defined (whatever that means) concepts into the spec. We do need some principles around it, like:
Justification: If I have a highly used extended column today, I don't want to move it to JSON and make life harder for people. On the contrary, if I have something informational that is not critical to cost that provides value (e.g., BillingAccountType), then it would be nice to at least make that available in a standard way that we can decide to promote or even remove in the future based on feedback.
Justification: We don't want this to become a junk draw of forgotten hopes and dreams.
Justification: Same as 2. We may not promote everything in the next release, but we should at least evaluate them to confirm that we're okay with keeping them in ChargeDetails so it doesn't turn into a junk drawer.
I would like to see a lightweight process for getting something into this that should not require a full column spec. Maybe just a few sentences to describe the key and convey what goes in it. Each key can have its own requirements, but I would expect most things would be optional here.
Some things I would love to consider with this approach:
Justification: Assuming this only applies to one service, I'm not sure it warrants a dedicated column. This would be a way to define it and start to get feedback on it.
Justification: Practitioners have said they want these columns and the behavior isn't debated. We are just not adding them because there are higher priority things. I would love to define a formalized way to optionally get them in. When we discuss it further, we may decide to promote or remove them.
Justification: This has come up several times about Azure resource groups, given how important they are for chargeback. I would love to see this as an optional column. My only hesitation is not knowing if practitioners view it as a P0 or not. That's the only question I'd have as it would make it harder if I remove x_ResourceGroup.
Justification: This is not a P0 column and defining the values needs time. Adding it here allows us to get something in that people can utilize, if important, but doesn't lock us into anything for the dedicated column, which we can add in June.
Justification: I'm not sure about this, but just throwing it out. If we were to drastically change ServiceCategory values, we could hypothetically do that here. I'm not convinced. This is just a thought.
Justification: There's no debate in the name. There's a question about the values, but I would argue starting with ServiceCategory values is a no-brainer. This allows us to add that value without committing 100% to not changing. (Especially with the idea of a drastically different ServiceCategory breakdown coming.)
Justification: We know this is needed. The only reason this might not be feasible here is the names we choose will require a few hours to nail down, at best.
Justification: We know there's value in this column. We just haven't driven the conversation home around the precise values.
I could keep going... there's a lot of potential here to add incremental value. Love the idea!
Discussed in Oct 22 TF1 call.
Pro: speed to market for new datapoints Con: possible breaking change -- how to handle "promoting" datapoints from experimental to fully-fledged columns (@ahullah made the point that this is experimental, so it's on the practitioner to own the possible movement of that column if they build against it)
Alternative: less friction around making a column optional -- though that would be at risk if we rename
Context: This work item proposes allowing experimental data points in the spec, giving practitioners early access to features still in development. This process aims to gather feedback while maintaining flexibility for adjustments before formalizing new features. Level of Effort Required: Medium — Implementing an experimental approach is feasible but requires careful planning to establish guidelines for experimentation without disrupting the core specification. Level of Impact: Very High – Allowing experimental data points provides practitioners with early access to new features, promoting iterative improvements. This flexibility enables practitioners to adopt and test new capabilities before they are formalized, accelerating feedback and adaptation.
1. Problem Statement *
As we burn through adding support for many of the obvious constructs into FOCUS, we will start approaching ones that we won't have a conviction on whether it should be added, or whether one or more columns are warranted. We need a way to introduce constructs that may be more experimental - without the WG spending extended periods arguing over something that they may not have all the supporting data for (but is being brought up as a key need from some consumers).
Use cases:
(Use cases would be applicable to what lands in this column and not the column itself.)
2. Objective *
Streamline the process for adding new concepts to the specification by introducing a common column with "experimental" properties that will eventually be promoted to independent columns in a future release.
3. Supporting Documentation *
N/A
4. Proposed Solution / Approach
If we have a construct like ChargeDetails or something even specific for experimental schema updates, we could more easily introduce changes and naturally graduate them into a more permanent location.
ODCR is a good example of something we didn't originally have a strong conviction on whether it should be introduced with many columns specifically for it or if it should be grouped together with other constructs etc.
5. Epic or Theme Association
TBD
6. Stakeholders *
TBD
Do you want to see this column in FOCUS?
Give it a 👍 below ↴
Comments are welcome and encouraged!