First-class user & developer documentation centralized on a portal
Open, Needs TriagePublic

Description

The dream: a modern, usable, and centralized home for all KDE documentation.

Have you ever browsed online documentation of an app or an API, eyes wide open in amazement, and sighed, "Oh, I wish KDE docs were this beautiful!"?

Of course you have. Well, you know what they say - careful what you wish for, 'cause it just might come true! :)

Description

All things considered, KDE's documentation is not that bad. However, in many aspects it's incomplete; in others it's too confusing,
and it's almost universally agreed that it's too scattered and difficult to navigate, especially for newcomers.

Improving the documentation will not only improve the experience of using and developing our software, but also the reputation of the entire community.

Thanks to the great efforts of the Documentation team and our documentation specialist, there exists a momentum
and a strong awareness in the KDE community of the importance of documentation, and a willingness to invest in it.
It's time to capitalize on that.

Coincidentally, another thing that's taking off at the moment are developer portals. As a key element of the #DevRel movement,
or more specifically, the developer advocacy/developer experience culture, developer portals are succeeding in highlighting
the importance of good technical documentation. Although they are primarily used for API documentation, they can contain
other types of content - from tutorials and videos for using software, to FAQs and even support forums.

Developer portals are not only a springboard for people interested in contributing to a software project (or making use of it);
they are a tool for marketing, onboarding, community building, and expanding your business.
A good developer portal sends a message: this company/community cares about its software; cares about people making it better;
cares about ME by giving me all this information so neatly presented and organized.

In this goal, I propose we take the idea of a developer portal as a centralized place that offers the best possible experience to new developers,
and apply it to KDE documentation to build a documentation portal that offers the best possible experience to everyone interested in our work;
whether they just want to use KRunner more efficiently, or they want to develop a new Plasmoid.

To understand this goal, take a look at our current wikis; specifically, UserBase and TechBase. They are great! But they are visually outdated,
which can be off-putting to many potential new users and contributors. We can't do much to improve their usability, and sadly it leaves a lot to be improved...
Starting with search capabilities; interlinking and reusing content; providing interactive code samples; not to mention proper version control and history, or translation tools.

Now, take all those things that suck about the wikis (sorry, wikis! it's not your fault :( ).
The new solution - our shiny documentation portal - would improve all that, and more!
It would be a modern website with all the tools we need to maintain and distribute our knowledge about KDE software to the world.

This goal aims to carry the torch of the Streamlined onboarding goal from the previous round of community goals, helping further it
and assisting in accomplishing some key actions that are shared between both goals. It also launches on the wings of recent work
by the documentation specialist, aiming to continue the effort on a large scale.

In some aspects and in general sentiment, this goal is related to T11051. At the moment it seems that some efforts would overlap,
so we could consider merging or absorbing parts of that goal.

What it will take

Choosing the tools for building and/or hosting the portal

At the very least, the solution needs to accommodate single-sourcing/content reuse, integration with Git(lab?), as well as
any current documentation practices that we may wish to preserve.

For example, we may decide that we're completely happy with how user guides are currently created and maintained,
so the new solution would only be the final hosting destination where the guides would be uploaded in their current form.

Choosing the output formats

Obviously, we want to deliver the portal as a website, but we should also decide if, for example, any individual page of the documentation
should be downloadable as a PDF, or if code samples should be interactive.

Setting up the new system

We'll have to invest resources and collaborate closely with the KDE Sysadmin team to make sure everything is connected properly.
We also have to decide what the contribution process should look like: how to get access, how to suggest changes, and how to actually make them.

Reorganizing the existing information architecture

Consolidating existing content

Identifying content gaps and assigning priority to those issues

Transferring existing content to the new solution - and making it better in the process :)

Creating new content

All these actions can rely and build upon past and current efforts to analyze and improve KDE documentation.
There's a lot of useful feedback floating around, and plenty of lessons learned that can help us move forward faster and more efficiently.

Collaboration between Onboarding and Documentation teams

Close contact with KDE developers in two roles: as the target audience and as SMEs (Subject Matter Experts)

Help from the KDE Promo team, who can scout online communities to collect documentation feedback, complaints,
and requests from different types of users and developers

How we know we succeeded

  • Public praise and recognition; fewer complaints about "docs that suck". KDE Promo can help with getting this data -

we can measure the predicted increase in positive reactions and experience over time.

  • (Optionally) Analytics, if employed on the portal, can give us a deeper insight into how our documentation is accessed,

searched, and used. Implementing direct feedback options into the portal can help us collect impressions and understand
what people expect from the portal.

  • More contributors, integrations and partners. High-quality documentation accessible in one place can open up more opportunities

for collaboration with other FOSS communities, as well as businesses and various institutions, because it helps people
who are not from our community understand our software and learn how to do things with it quickly.

  • Increased Time To Value/Time To Task Completion. Note that we should conduct user research first on the current documentation resources.

We'd have to gather some baseline data that we can compare against the new solution.

What are the risks

As with most documentation-related projects, the main risk here would be content rot; in other words, the risk of content
on the portal getting outdated because contributors are not able or not interested in maintaining it regularly.

To mitigate this, we need to make sure the process of maintaining and updating the portal is well-documented to begin with,
and that it's not too complex or intimidating to new contributors.

Relevant links

  1. Our current resources; basically, what we're working with here. These will be our starting point; we will have to identify issues

and come up with the best solution that solves them to the benefit of all community members.

https://api.kde.org/
https://docs.kde.org/
https://techbase.kde.org/Welcome_to_KDE_TechBase

  1. These resources can provide a general, basic understanding of what a developer portal is

and how it relates to the concept of developer experience:

https://pronovix.com/blog/developer-portals-when-docs-become-dx
https://pronovix.com/api-docs-amsterdam-2017#cristiano
https://pronovix.com/event/api-docs-paris-2018#kathleen

  1. Here you can find some top-quality examples of developer portals:

https://devportalawards.org/winners

Note that the majority of the resources refer exclusively to API developer portals.
However, I believe we can - and should - think in more amibitious terms, and our solution should encompass more than just API documentation.
It would provide support to different types of users and developers, serving content tailored to different needs and use-cases.

I am willing to put work into this

  • @skadinna (leading the effort, organizing content, testing tools, writing and updating docs)
  • @ognarb (writing tools, helping with the organization, updating docs)

I am interested

skadinna created this task.Jun 13 2019, 9:56 PM
skadinna updated the task description. (Show Details)Jun 13 2019, 10:26 PM

I recently started removing content that is obviously outdated (i.e. KDE 3/4 era) from community.kde.org. In the process I realized that our approach to writing such documentation is fundamentally different than our approach to writing code. Code patches are usually peer-reviewed and approved before merging, however, so such systematic quality control/improvement exists for writing wiki documentation. On one hand it is good that the entry barrier for doing wiki work is low, especially given how few people are willing to put work there compared to the code work, but on the other hand the potential loss in quality is a concern.

On one hand it is good that the entry barrier for doing wiki work is low, especially given how few people are willing to put work there compared to the code work, but on the other hand the potential loss in quality is a concern.

Yes, that's exactly how I see the problem with the wikis. Ideally, with this goal, we would not lose the ease of contributing, but that ultimately depends on the tool(s) we choose.

My concern is that many community members would be opposed to migrating documentation away from the wikis. And if we leave the documentation on the wikis, and have another copy of it on the doc portal, then we're just duplicating work and making an even bigger mess.

I'm a bit torn. For all the documentation I've updated that that's on a wiki, I seriously doubt I would have made the change if I'd needed to submit a patch, deal with bikeshedding, request commit access, etc. The barrier to entry for a wiki is just so low that it's a real advantage IMO.

An option is to add per project watchlists so we have more of an overview of the changes on a per project basis which can be reviewed periodically.

ognarb added a subscriber: ognarb.Jun 14 2019, 7:15 PM

BTW there is a diff to improve docs.kde.org. See D17936.

I'm a bit torn. For all the documentation I've updated that that's on a wiki, I seriously doubt I would have made the change if I'd needed to submit a patch, deal with bikeshedding, request commit access, etc. The barrier to entry for a wiki is just so low that it's a real advantage IMO.

Yeah. I know what you mean. The more I think about this goal proposal. the more problems I see with it 😅

The last thing I want to do is introduce more obstacles to contributing. Yet we all seem to agree that the documentation needs improvement. And sure, we could improve the content we already have, on the wiki (people are already doing that, which I love). But that wouldn't solve the content discoverability problem that the wiki seems to have, and the decentralization/confusion problem that it seems to contribute to.

It's like a classic example of the curse of knowledge: we know how to find the stuff on wiki because, well, we're the ones who made it :) and we interact with it all the time; we know the quirks and tricks you have to employ to get precise search results. But a newcomer will struggle with this, and they will often just give up. Worst case scenario, they will complain on social media about our "bad docs" - even though they're not bad at all, they just haven't been able to find them!

This could be solved, though. We could have the "official" section of the portal, with docs maintained and reviewed by the Documentation team, and the "Community Documentation" section, which would basically be the same as the wikis. The complexity of contributing would, again, depend on the tool we choose - it could be a website built from a Git repo, or a CMS where people can add content in a WYSIWYG editor, or a combination of both.

BTW there is a diff to improve docs.kde.org. See D17936.

This is cool! But you're only improving the frontend here, right? The idea of this goal is to rethink - and hopefully modernize - the backend too, and do an overhaul of the content hierarchy; basically, build a new, better information architecture. The end product would combine all our docs sites (API docs, docs.kde.org, Techbase) into one. I think it's doable and technically possible, but again, it might not be 100% what the community wants. But hey, that's why this discussion is for! :)

ognarb updated the task description. (Show Details)Jun 15 2019, 1:37 PM

BTW there is a diff to improve docs.kde.org. See D17936.

This is cool! But you're only improving the frontend here, right? The idea of this goal is to rethink - and hopefully modernize - the backend too, and do an overhaul of the content hierarchy; basically, build a new, better information architecture. The end product would combine all our docs sites (API docs, docs.kde.org, Techbase) into one. I think it's doable and technically possible, but again, it might not be 100% what the community wants. But hey, that's why this discussion is for! :)

Yes, It's only an improvement to the interface. For example a better search engine that support translation and changing the category name in the sidebar (e.g. kdeedu => Education).

But I think mixing the technical documentation and the user documentation is a bad idea.

Also, it's worth noting that some handbooks are hosted in userbase (e.g. https://userbase.kde.org/Kdenlive/Manual), so there was some effort in the past to unify the documentation in the wikis.

Anyway here are some reflection about the possible solutions.

Possible solutions:

Wiki based solution

What it will take
  • Updating the wiki theme to something more similar to the kde.org theme
  • Integrate docs.kde.org in userbase. I already started adding a link to the handbook for each apps in a More Information section
  • Finish T9142
Cons
  • MediaWiki article doesn't have any consistency. => Can be fixed
  • Lot of content is duplicate content between kde.org/applications and userbase
  • Search is not perfect

Improving docs.kde.org

What it will take
  • Redesign the website - almost done
  • Merging some categories (e.g extragear-edu and kde-edu)
  • Find a way to include tutorials
  • Moving all the content (and translations) from userbase to some git repos
Cons
  • More difficult to contribute - not all KDE users know how git work
  • Moving all the content will take a lot of times

Creating something new

Cons
  • Will take too much time and too much manpower

I personally think the biggest problem with our docs is not necessarily the content, but the organization. API docs in particular are very hard to find. And if I Google some class name in desperation, I get the old KDE4 era docs, not the KF5 stuff. https://api.kde.org doesn't seem to be linked to in many places. And then of course there's all the duplication.

I think if we had a better structure and easier discoverability, keeping things as wikis wouldn't generally be a problem because more of the people who would be interested in fixing and improving things would actually be able to find the content in the first place lol

lydia added a subscriber: lydia.Jun 15 2019, 5:14 PM

My suggestion: take out the specific solution of the portal and then we figure out how as part of the work on the goal

ervin added a subscriber: ervin.Jun 23 2019, 12:36 PM

I agree with Lydia here, maybe it's too early to get in technical details on how to achieve it. It's maybe better for that one to focus on the constraints we want to have and the success criteria.

Hey everyone, thank you for the feedback. I've been away traveling so I haven't had a chance to properly sit down and rework the proposal. I will do that this week.

Alternatively, @ognarb can take over - I see you've already made a small plan in your comment. If you would like to transform this goal and lead it, it's all yours :)

As a quick fix for better search within our documentation, we might be able to use an external search provider like https://duckduckgo.com/search_box . You can specify multiple websites to search and some styling options.

Hey everyone, thank you for the feedback. I've been away traveling so I haven't had a chance to properly sit down and rework the proposal. I will do that this week.

Alternatively, @ognarb can take over - I see you've already made a small plan in your comment. If you would like to transform this goal and lead it, it's all yours :)

I don't want to take over this task ;) I'm already quite busy and will probably be even more next semester, but maybe we could merge this task with T11117 (KDE is All About the Apps).

We could then provide the links to the handbooks directly from kde.apps/applications. And deprecating docs.kde.org as a doc browsers. This will need some improvements to kde.org/applications (i18n, better search, ...), but is doable.

For the wikis, I don't really know that do to, I like them and it's an easy way to start contributing to KDE (I started my KDE journey with T9142). But where is a lot of duplicate content with kde.org/applications (list of features, more information section, ...) and it doesn't make sense to maintain two times the same content, but I also don't want all the tutorials and the hard work by many contributors to disappears. Maybe we could also link the Userbase page from kde.org/applications?

Anyway I should in the next days start updating the mediaWiki instances with the new theme, and I hope it will not take too long.

maybe we could merge this task with T11117 (KDE is All About the Apps).

I don't think those two tasks have a large overlap, especially not the developer documentation part of this. It may make more sense to just merge the user documentation part of the task.

maybe we could merge this task with T11117 (KDE is All About the Apps).

I don't think those two tasks have a large overlap, especially not the developer documentation part of this. It may make more sense to just merge the user documentation part of the task.

I'm inclined to agree. The other proposal is already very ambitious. Adding this into it might just water it down and make it harder to achieve.

lydia added a comment.Jul 19 2019, 9:57 AM

Just a quick ping to not forget to adjust the proposal to be less about the specific solution.

@skadinna I think it's worth mentioning Google Season of Docs and describe how KDE's participation could possibly contribute towards this goal: https://developers.google.com/season-of-docs/

These past few days I've been looking into transforming and improving this proposal based on the feedback I received during last week's office hours. I have also tried to realistically assess my upcoming obligations for the next 6 months or so. Unfortunately, I don't think I would be able to fully commit to leading this goal if it were selected. :( It would be unfair to drag everyone down and waste people's time by promising and planning something, and then failing to deliver meaningful work.

From my point of view, it seems best to archive this proposal now, and consider reviving it at some other time. We already have several fantastic proposals that are much better-defined than this one. Besides, we can continue working on improving the documentation and KDE's information architecture outside of the goals framework.

Alternatively, if anyone is interested in taking over and pursuing this idea, or merging it with another proposal, please feel free to do so. If you'd like, I'll gladly have a call with you to help you shape it and tell you more about the details I had in mind.

lydia added a comment.Aug 3 2019, 3:59 PM

Is anyone able to take over this goal from Ivana and adapt it based on the comments?

lydia updated the task description. (Show Details)Aug 3 2019, 4:15 PM

Well, I'm too new around here to volunteer for much of anything. But I am willing to pitch in and help. I have contributed quite a lot of stuff to Wikipedia in the past.

https://en.wikipedia.org/w/index.php?title=Special:Contributions/DavidCBryant&dir=prev&limit=500&target=DavidCBryant

For now, I guess I ought to get up to speed on the stuff that's already in the KDE community wiki.

lydia added a comment.Aug 3 2019, 6:42 PM

Great :) And don't worry. We're here to help.

OK, so now I have a home page set up on the community wiki.

https://community.kde.org/User:DavidCBryant

One thing was really confusing: when I clicked on "Tasks and Tools", I was automatically signed out of the wiki. At least, that's what it seemed like, at first. I finally understood that I was being routed out of the "community.kde.org" domain, and into the "userbase.kde.org" domain, and that I'm going to need two user pages, and two talk pages, to participate fully in the KDE wikis. But it took me a while to figure that out.

https://userbase.kde.org/User:DavidCBryant now points to https://community.kde.org/User:DavidCBryant

So now I'm wondering why things are set up this way. Only the menu section entitled "contributor help pages" is set up this way,Each of the other menu sections that overlap ("Navigation", "Tools", and "Personal Tools") keeps to its own domain name.

Does anyone else agree that this is a bug, and not a feature? :-)

Hi David! Nice to meet you. I'm very glad to hear you're interested in improving KDE's documentation.

To make this goal a bit more achievable, we'd have to rewrite it and make it more focused. Instead of trying to build a whole new solution for docs, the goal should actually be about making the documentation easier to discover, search, and navigate. In other words, improving it so that both users and developers can find the things they need faster and in a way that's not confusing or convoluted.

As part of the goal, we would work on strategies for achieving this. Once we're happy with that first phase, we can plan for content updates (or they can keep happening simultaneously as they already do; the documentation team will keep doing their awesome job as always. :)).

What you can do as a completely new member of the community is provide an assessment of the current state. This insight will be extremely valuable to the goal. Come up with a few problems or questions that you as a user could have, and then try to find answers in our documentation. Note down your impressions, things that you like, things that make it difficult for you... and share all that with us!

I can then rewrite the goal based on your input, or we can do it together. What do you say?

lydia added a comment.Aug 13 2019, 8:50 PM

Quick reminder that there are two days left before the voting starts. Please make any changes you still want to make soon and let's move it to the ready for voting column.

[spam comment removed by sysadmin]