Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add explanation/concept for extension maturity model #42446

Open
wants to merge 23 commits into
base: main
Choose a base branch
from

Conversation

holly-cummins
Copy link
Contributor

@holly-cummins holly-cummins commented Aug 9, 2024

This is part of the bigger plan for extension documentation: https://github.com/quarkusio/quarkus/issues/37288


Obviously, there’s a gap for dev services documentation, which I’ll move on to next. Once I've got something linkable for dev services documentation, I will come back and link here.

One of the links needs quarkiverse/quarkiverse#229 to merge for it to resolve. I decided to be optimistic about the order things would happen and put the link in anyway.

The preview comments aren't working, but this is the link to the new page: https://quarkus-pr-main-42446-preview.surge.sh/version/main/guides/extension-maturity-model

Question for reviewers: Should the list at the top be numbered? Or perhaps a graphic, so that it's more distinct from the table of contents lower down? https://en.m.wikipedia.org/wiki/File:Characteristics_of_Capability_Maturity_Model.svg is a somewhat standardised visualisation of maturity models, but it's harder to edit than raw text.

@quarkus-bot
Copy link

quarkus-bot bot commented Aug 9, 2024

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit 16e3f8e.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

Warning

There are other workflow runs running, you probably need to wait for their status before merging.

You can consult the Develocity build scans.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

Copy link
Member

@maxandersen maxandersen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good stuff! just suggestion on cleaner ordering

@quarkus-bot

This comment has been minimized.

Copy link
Member

@gsmet gsmet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the general idea.

I added some comments here and there.

docs/src/main/asciidoc/extension-maturity-model.adoc Outdated Show resolved Hide resolved
docs/src/main/asciidoc/writing-extensions.adoc Outdated Show resolved Hide resolved
* Codestart application template

The order in this model isn't exact. Different developers will have different views on what capabilities are most important. You may wish to (say) prioritise performance over enhancing your extension's Dev UI tile. That's fine!
Also, not every step will apply to every extension. For example, you don't need a dev service if your extension doesn't depend on external services.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it needs to be clear that you don't need to implement all of this before releasing your extension. It's more or less mentioned but people have a tendency to go over the top sometimes when developing in the open and we need to clarify it's OK to publish a first version that doesn't handle everything.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, agree 100%. I was trying to convey that (and I think it's kind of implied by the maturity model), but I will be more explicit about that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The order in this model isn't exact. Different developers will have different views on what capabilities are most important. You may wish to (say) prioritise performance over enhancing your extension's Dev UI tile. That's fine!
Also, not every step will apply to every extension. For example, you don't need a dev service if your extension doesn't depend on external services.
It's completely OK to publish a first version of an extension that doesn't handle everything. In fact, it's ok if your extension never gets to the more advanced features. This is a suggested pathway, not a minimum feature set.

?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfect! (sorry forgot about it!)

docs/src/main/asciidoc/extension-maturity-model.adoc Outdated Show resolved Hide resolved
docs/src/main/asciidoc/extension-maturity-model.adoc Outdated Show resolved Hide resolved
docs/src/main/asciidoc/extension-maturity-model.adoc Outdated Show resolved Hide resolved
docs/src/main/asciidoc/extension-maturity-model.adoc Outdated Show resolved Hide resolved
@holly-cummins
Copy link
Contributor Author

I’ve changed the list to a graphic. This has the benefit of adding something beyond what’s in the ToC below and the base writing-extensions guide. It has the disadvantage it’s hard to maintain. I don’t have the tools to do it, but @insectengine might be able to convert it to an svg, which would still render nicely, but would have a slightly higher bus number than my png.

image

@quarkus-bot

This comment has been minimized.

Copy link

github-actions bot commented Aug 12, 2024

🎊 PR Preview 4bb81a2 has been successfully built and deployed to https://quarkus-pr-main-42446-preview.surge.sh/version/main/guides/

  • Images of blog posts older than 3 months are not available.
  • Newsletters older than 3 months are not available.

@quarkus-bot

This comment has been minimized.

@insectengine
Copy link
Contributor

maturity_model_graphic
maturity_model_graphic

Created a slightly different view of the graphic (PNG and .SVG)

@holly-cummins
Copy link
Contributor Author

Created a slightly different view of the graphic (PNG and .SVG)

Thanks! Visually, that looks way better than mine, but I'm not sure about the shape. I think people's expectations of a maturity model would be a bit more stair-case-y. There's some variation in what google shows, including one pyramid, but almost all of them have a linear progression from bottom to top and left to right:

image

I had in mind something like this:

image

Because we have more stages than that example it does make it harder to fit everything on the page, but I think it does make it easier to understand the intent.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@cescoffier
Copy link
Member

I just read the preview (I had a 504, but a refresh fixed it).
I like this version a lot more! I think we need to add a bit more content in the text of each capabilities (it's a bit unbalanced right now), but that's a great first step.

@holly-cummins
Copy link
Contributor Author

I just read the preview (I had a 504, but a refresh fixed it).

I find surge previews 504 a lot. But the price is right. :)

I like this version a lot more! I think we need to add a bit more content in the text of each capabilities (it's a bit unbalanced right now), but that's a great first step.

🎉 I think I've managed to pad out the observability section so that the document is a bit less lopsided. We can also iterate once it's live, of course.

@quarkus-bot

This comment has been minimized.

@maxandersen
Copy link
Member

The new matrix is nice - but what does the dotted line supposed to mean/signal?

@holly-cummins
Copy link
Contributor Author

The new matrix is nice - but what does the dotted line supposed to mean/signal?

It's intended to be the same line as in https://blog.container-solutions.com/hubfs/CS--LP__assets/CS--LP__images/mm_diagram.png, only I didn't change the colour either side of the line because it would be hard work, and I'm assuming we'll get James to draw something nicer.

So it's a progress mark, but with the distinction that we'd get blue areas to the right of the line, too. So I imagine it'd be a bit like this in a final render:

image

(I'm not sure we'd bother with the goal line, either, so maybe ignore that part of what I pasted.)

@quarkus-bot

This comment has been minimized.

@maxandersen
Copy link
Member

The new matrix is nice - but what does the dotted line supposed to mean/signal?

It's intended to be the same line as in https://blog.container-solutions.com/hubfs/CS--LP__assets/CS--LP__images/mm_diagram.png, only I didn't change the colour either side of the line because it would be hard work, and I'm assuming we'll get James to draw something nicer.

So it's a progress mark, but with the distinction that we'd get blue areas to the right of the line, too. So I imagine it'd be a bit like this in a final render:

image (I'm not sure we'd bother with the goal line, either, so maybe ignore that part of what I pasted.)

gotcha - I like the one in the render as it does not have a strict order and if we actually remove the dotted line the progress is visible (all the blue vs green) and we can make a matrix that stays stable for any extension this way (if we wanted to) - just different levels of blue vs pink.

@holly-cummins
Copy link
Contributor Author

My assumption is 100% that the text would stay stable for different extensions, just the areas that are coloured might be different.

Are we good to invoke @insectengine for graphic work, to produce something with the visual feel of image, and the colours and words in my PR, or do we need to discuss more?

@maxandersen
Copy link
Member

if its a matrix without a top level order as shown in the render then i think we are all good to get james to make it pretty.

the various areas/content we can iterate on and expand independent of the matrix.

@quarkus-bot

This comment has been minimized.

@insectengine
Copy link
Contributor

maturiti_matrix_graphic_v1
maturiti_matrix_graphic_v2
maturiti_matrix_graphic_v1
maturiti_matrix_graphic_v2

@insectengine
Copy link
Contributor

posted PNG and SVG versions above. The difference between them is the alignment of the dotted line separator.

@quarkus-bot
Copy link

quarkus-bot bot commented Nov 6, 2024

Status for workflow Quarkus Documentation CI

This is the status report for running Quarkus Documentation CI on commit d016bc5.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

@holly-cummins
Copy link
Contributor Author

I've incorporated @insectengine's much more attractive graphic. Preview link: ttps://quarkus-pr-main-42446-preview.surge.sh/version/main/guides/extension-maturity-matrix

Based on the conversation, I'm not aware of any blockers to merging at this stage.

@cescoffier
Copy link
Member

Yes, all good for me. The new matrix looks great!

Copy link
Member

@maxandersen maxandersen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1!

I would still go for removing the "progress line" as its not really a progres.

@cescoffier
Copy link
Member

@holly-cummins do you think we can get the "dotted line" removed from the matrix?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Reviewer approved
Development

Successfully merging this pull request may close these issues.

8 participants