Triage and fix of essential bugs vs. new features or “How to keep the users confident”

I have no support/technical question and have seen the support category. (Be aware that direct support questions will be deleted.)

on

Which general topic do you have

I really appreciate that we have open-source solutions like Nextcloud, and that an entire community stays behind this, and a commercial company takes care about what’s required to bring this to the people by doing marketing, setting up congresses, participating in fairs, etc. But, at the same time, I am a little concerned regarding the development strategy in terms of new features vs. bug fixes.

I would never consider myself as a developer, so there’s only a basic understanding about development processes, but as a user, I have a sense for software companies or other open source initiatives that have a balanced process. Currently, I have concerns that the growing popularity of Nextcloud and the new features built in and around it is more in the focus than code stability, quality and bug-fixing. It’s always a trade-off, especially when developer resources are rare. An effective and efficient bug triage and the according prioritisation of bugs could help preventing us from walking the “new feature” road too fast and losing connection to the users by not handling bugs very well.

With this statement, I do not only focus on my reported bug regarding calendar invitation replies not beeing processed, but also on the enormous backlog I can see at github. I assume that most of the issues are not real bugs and there are a lot of duplicates, but nevertheless, there are bugs where the community has the feeling that “this really needs to work” are drowning.

I really like the entire Nextcloud approach, I embrace open-source and I work to make private people and public entities more sovereign every day, and my fear is that people try open-source software, they miss essential features or bugs drive them crazy, and they go back to closed-source, hyperscalers, etc., which I have seen in the past.

So I’d like to see a balanced assignment of developer resources (feature vs. bug), a transparent, efficient and effective bug triage process and the awareness, that trust (however it is build) is always the biggest part of any decision.

well your feeling is just not correct as there’s proof (just watch the release-videos) that more than 90% of development goes into fixing bugs, making the software run faster and stabalizing it rather than dev-power going into new features. And that’s been the case since some versions, already.

Thank you for your answer — it’s good to hear that. As I said, I don’t have any inside and I wouldn’t describe myself as a developer. However, any psychologist would say that how you feel is always right. But that’s a different story! :wink:

I wonder why so many GitHub issues remain in the Triage stage for such a long time, especially when some affect core functionalities. I can see it across lot’s of repos.

Again, I hope nobody misunderstands me. I really appreciate all the work and the people, and i am not complaining. I’m just a user who likes to understand how development resources are allocated in relation to user needs and requirements regarding bugs.

I should start to contribute and be part of the solution, which is for sure and I am checking how to do this.

To figure out the conditions and reproducing a bug is not always that easy. Nextcloud is installed in so many different ways on so many different platforms, and a large diversity of clients. Sometimes you have bug reports where a basic function (e.g. sync a new file/contact/…) does not work for a user, but if it didn’t work in the same way for all, that would be a huge bug. But obviously, it isn’t like that and then tracking down the conditions, why it exactly fails, it can take a lot of time.

And then if bug descriptions are not very clear, or you cannot reproduce, what should you do? If many others join, then it might be worth investing more time, getting more information from the other setups as well…

But there are also a few bugs that affect many people, and that are not resolved instantly either. If the developers can reproduce the bug on their systems, it is always an advantage, because the information ping-pong delays everything.

I experienced that regression bugs are rather quickly fixed. Often it is easy to reproduce, and if you test the software a bit ahead in the development phase, these bugs are often strange interactions with the changes and the combination of apps that I am using.

:+1: You already reported it.

And you talk of essential bugs, sometimes it can help that you list the essential bugs for yourself, are they all reported, do others have the same bugs, if you do a post like this, add them all. Perhaps some are not so essential and there are good workarounds, perhaps some bugs slipped through the net and get their deserved attention, …

Watching an open-source project from the outside is a bit like seeing how the sausage is made—it’s a complex process that isn’t always pretty! :wink:

Regarding the 0. Needs triage label: in my experience, it doesn’t mean the issue hasn’t been read. It usually just means the next step is still being determined, or it’s not yet clear if it’s a reproducible bug versus a configuration error.

Software is never perfect, and there’s always more work to be done. However, many reported issues aren’t actually bugs. I often see a mix of:

  • Configuration matters that are better suited as support requests.
  • Rare edge cases that affect a tiny fraction of users.
  • UI/UX feedback or documentation refinements.
  • Symptoms of broader architectural work or technical debt cleanup already in progress.

Prioritization generally goes toward issues impacting the largest segment of users, or matters of interest to the developers stepping up to do the implementation. It’s also easy to underestimate the work required to fix a problem without causing “collateral damage”—like breaking existing deployments, introducing new side effects, or needing to update extensive test suites.

For context, the last time I ran the stats, there are about 10k issues closed out annually across the project. At least half of those are tagged explicitly as bugs. And that’s not counting all the other bugs and UX refinements that get addressed directly through pull requests without an associated Issue (for example: I often fix bugs or address confusing UX matters that I run across as recurring themes here on the forum).

I assume that most of the issues are not real bugs… but nevertheless, there are bugs where the community has the feeling that “this really needs to work” are drowning.

If only the community spoke with one voice! Every individual has their own favorite priority area. Often, there is work happening behind the scenes—like the architectural shifts I mentioned—that eventually addresses those bugs as part of a larger move from point “A” to point “B.” Other times, well—yes—there’s always more that could be done. :slight_smile:

I should start to contribute and be part of the solution, which is for sure and I am checking how to do this.

You’d certainly be welcome. There are many ways to contribute, ranging from direct development to triaging Issues (reproducing, following up for missing information, de-duplicating, connecting dots between different Issues, etc.), improving documentation (coverage, organization, clarity, accuracy), testing/reviewing pull requests, translating, and more.

Because I can’t resist, I’ll also highlight one of the most needed areas in my opinion: testing betas and release candidates heavily. This means testing in diverse environments, with various app combinations (particularly community-maintained ones), and across different upgrade paths. I mention this because:

  1. It’s a vital quality assurance mechanism that automated testing can’t fully replicate.
  2. My observation is that far more people are willing to install x.0.0 releases than betas or RCs. Unfortunately, this means a lot of QA ends up happening during the x.0.0 to x.0.2 maintenance cycles rather than earlier.
  3. It’s much easier today to set up testing/staging deployments using containers or VMs if you don’t want to risk your real data.
  4. We should all be good admins and have well-tested, streamlined backup and restore processes anyway! :wink:

So I’d like to see a balanced assignment of developer resources (feature vs. bug), a transparent, efficient and effective bug triage process and the awareness, that trust (however it is build) is always the biggest part of any decision.

I completely agree that transparency is key to building that trust. In that spirit, I keep meaning to clean up and publish my ad hoc project statistics dashboard to help make some of this high-level activity more visible.

The data is essentially all “there” on GitHub, but unless you’re active, it’s hard to have a good grasp of where to look (beyond just seeing how many issues are open, which lacks the depth needed to truly assess things). For a quick look at the activity level, you can check out the Insights → Pulse section in each repo (for example, here is the monthly Pulse for nextcloud/server), though it lacks project-specific refinement and cross-repo insight.

Another area that I think could really help on the transparency front is ensuring there are both changelogs and release notes available for everything possible—and that raw, dev-oriented changelogs are converted into a form more useful for admins. This happens for critical items, but a lot of work (both bug fixes and refinements) is often inadvertently less visible to those not involved in development—and even to those that are, as the project is massive with hundreds of active repositories!

I’ll plug one area I was experimenting with recently: adding release notes for the documentation itself. I think a lot of work there is currently “invisible,” and admins (and app developers) would benefit from seeing those updates. Here are some initial iterations for recent documentation releases for the Admin, Developer, and User Manuals.