Devs and users are different. What happens when their goals diverge?

Hello everyone,

so Nextcloud is very much about the community, and that’s cool.
Nextcloud will make it easier for everyone to contribute code, and that’s great.

Nextcloud employees will have a bigger share of their time on working with free contributors.
What about the remaining time ? How (and how much) will it be driven by community feedback ?

Why am I asking these questions ?
Well, first, a fact : the developer community is not a representative sample of ownCloud users.
With several millions of users, the vast majority of ownCloud users never used anything other than Windows and is for the most part totally clueless when using a computer.
I’m not saying this is a bad thing. It just is.
Problem is, when people are involved in groups, whatever the size of the group, it’s very easy to think that everyone is the same ; and that your needs and their needs are the same. The developers are not immune to that.

So my point is : what happens if/when the community is pushing for stuff that it feels is necessary, but actually is not really something that end-users need ? And then things the end-users really need is pushed back as a consequence ?
For example, since most people use Linux in the community, how do we make sure that Windows support still stays strong, despite the fact that there is almost no direct incentive for the community to push for it ?

I may be wrong ; maybe the dev community will be wise enough to distinguish between its own needs and the bigger, larger needs of the user base.
But I feel this is something that should be discussed sooner than later.

4 Likes

This has always been a problem. The companies behind the project can get feedback from their customers and often have to implement specific features in order to get the contract or keep the customer, but it’s very difficult to get feedback from home users.
One solution could be to push messages to end users, like the official news feed and surveys could be posted there. It would be optional to enable, of course, but would work best as an opt-out feature.

That is a very interesting topic. How do you close the gap between users and developers? Both belong to the community. The whole process was not very appealing for normal users, they could submit feature requests but they often went to backlog or already existed for several years. Even some money via bountysource didn’t change anything.

Users also don’t know how to help (just say “testing” isn’t enough, what to test, how to test). Or speaking of webhosting users, there are probably some who can provide an account for someone more experienced to test on.

1 Like

I think the purpose of our community to close that gap tflidd was talking about. Even end users are part of the community, can post their opinion in our forum or on github. If other end users have the same optinion in specific topic they can like it or discuss about it. If someone is able to install owncloud and configure it, they will be able to post their needs in our community, too. Maybe not everybody but I think several of them.

You’re an Economics university student and are using ownCloud without even knowing it.
Are you really going to try to figure out what is the system you’re using, go to the website, click on support, ask in the forums, be redirected to Github, register for an account and fill in everything that is asked of you in the issue template? I don’t think so…

What oparoz said.

What you say is somewhat valid for home users, but what about bigger deployments of ownCloud where the gap between the end users and the admin is wider ?
I would even question whether a home user would be able to give feedback in a way the devs can efficiently process it.
A lot of effort has been going into making ownCloud installation easier lately, which automatically means that the average skill level of the home user goes down too.

edit : actually, the problem of collecting end user feedback could be tackled by implement features that allows ownCloud to push polls and such things.

Still, there remains the issue that the voice of the contributors will probably be always louder, if just because they are more invested, than the end users one. How can we make sure to strike the right balance between both side of the community ?

Also, I was wrong to distinguish the community and the users ; they are indeed both part of the community. I meant devs and users and will edit my OP to change this.

Interesting topic and we should really try to come up with some concrete ideas. Let me start with some more or less obvious points. In most cases software gets developed because of three reasons:

  1. to “scratch your itch”, this means people who can write code write the stuff they want and need.
  2. people get paid by their employer to write some specific features
  3. the community suggest a feature which a developer consider interesting enough to work on it
  4. people write code because of a bounty they want to get

Personal I consider a bounty program something really important. Because it helps to close the gap between community users and paying users to some extend. With bounties the community can compete on the same level about developers attention. Of course a developer will still decide if he things a feature makes sense or not. But it is one important step into the right direction.

What I could also think of is that the Nextcloud Foundation picks for every release one or two of the community features with the highest vote and add it to the roadmap for the next release. I think this could be a interesting approach to experiment with.

Let’s also not forget, that very often, the ratio between users making suggestions and devs capable of implementing them is rather large, so issues can quickly pile up. That’s one reason I’m not too keen on seeing hundreds of users registering on Github to submit their thoughts.

And services around bounties are spreading so that’s good too. However, creating a bounty implies a power user already (and an invested one).
How do we collect feedback of basic end users that either don’t have the skills to create a bounty, create an issue on github, or just don’t have the inclination to do that ?

I was thinking of a feature where Nextcloud would be able to push feedback surveys towards all its users (and by that I don’t mean only the server admin, I mean the end users). It can be as simple as an URL to surveymonkey, or the feature could implement the survey itself. It could be an app for users of the server web interface, or an additional feature for the client for users who only use the sync client (although the new notifications API could do the job).
This way would provide a centralized and easy mean of collecting feedback ; of course it should be possible for an admin to control the behavior : disable it entirely, or asking to manually validate when a survey comes down for instance.

1 Like

Really this seems to be an issue that would strongly benefit by having feedback from someone with usability experience such as @jan . One of the big issues is that users typically only draw on solutions they’re used to for their specific encountered issue, which isn’t necessarily the best solution for all similar use cases to theirs. A usability expert can look at specific requests, bring it back to the use case that they’re trying to cover, look at what other similar usecases may be helped by implementing various solutions and help pick out solutions that will be easily comprehensible and smooth workflows for the majority of target users. This is a very different process than just “implement whatever feture users are yelling the most loudly about/throwing money at”

Regarding bounties, ideally, you’d want open-minded sponsors who trusts the process and the project’s experts to deliver both what they and the community need, but that’s not always the case and the dev needs to get the sponsor’s approval in order to be able to get paid. Nonetheless just as with ownCloud, it’s always best to consult with the designers’ team when devising a solution.

The OP makes assumptions about the user being on Windows etc., but there isn’t a typical open source cloud user. There are groups of users with different goals and skills and that’s something ownCloud had problems with, mainly I think because of 2 reasons:

  1. paying customers have very specific needs that need to be fulfilled, so that’s the priority
  2. the product targets Dropbox users

People at CERN don’t use ownCloud like a student at TU Berlin or someone who bought a PiCloud prototype.
In the proprietary software world, one chooses a solution based on his needs. People who need more advanced features will pick Box per example, the ones who want more privacy will pick SpiderOak, etc., but in the Open Source world, it shouldn’t be necessary to switch platform or hire a team of developer to build a custom version, instead, the solution should be flexible enough to fill different use cases.

1 Like

We need to be careful with such features. This can easily be seen as some kind of spam. I definitely would not like my software to do something like this. So it would need to be opt-in on a per user level. Also people could rise privacy concerns because this would mean that someone have to know all Nextcloud installations to push the survey to them.

At the moment I wouldn’t say that something like this is completely impossible. But we would need to be really careful to do it right.

2 Likes

It would depend on how often it happens, and how it’s done I guess.

Agreed.

I used the term “push” but it really would be a pull actually, just like the client is querying for updates for instance.
Actually, we could also tie these surveys with updates : since the user is already engaged in a manual action anyway, why not ask him whether he wants to provide feedback at this time ?
I agree that this would need to be implemented very carefully, because it could backfire easily.

If we just ask on installation, then it’s seen by all installing admins, and doesn’t include anyone who doesn’t want to be included. I would suggest a policy of not pushing more than one survey a month, made clear when we ask for permission, would be reasonable.

This one depends on the app and the release cycle I guess or we end up with the ownCloud dilema regarding community contributions. With the Android app in Mind @tobiasKaminsky @przybylski and I opened of a large share of (great) PRs which up to now never made it into a release so only adding 1-2 community PRs per release might be a quota that slows down progress. On the other hand let’s see where this leads us since I am still positive that this won’t happen. Especially since the PRs are also features that other users requested and that got implemented by the community.

I guess what @bjoern was suggesting to add these items in addition to the roadmap. Everything else is “nice to have” and the mentioned features are something that the foundation publicly commits to.

One of our goal with Nextcloud is also to have all pull requests merged in a timely manner. Having a Pull Request that is ready for review open for more than 2 weeks is just horrible :see_no_evil:

In addition I’d like to note that I don’t see any reason to differentiate between “community PRs” and “employee PRs”. Both are part of the community, moving a PR from backlog to backlog just because one is not employed is rather questionable. In the end there should just be “the community” :smile:

1 Like

I totally agree! :slight_smile: I just shrug reading the term 2 “PRs by the community” since that has also been a promise by oC in the end (which didn’t really happen consistently) and 2 per Release would have taken a decade to get all open ones shipped (without opening any new ones ;))

1 Like

Of course I didn’t want to say that we only merge two community PRs per release. This should be a lot more as already said by @LukasReschke. :smile: My idea was more about features suggested by users (not developers who already have a ready to apply PR). For this we could try to pick a certain number, e.g. two, and commit ourself to implement it for the next release. Not because a customer pays for it, not because there is a bounty, not because it is important for me, but because we as a community decided that this is something we should have.

1 Like

Sounds good to me :thumbsup:

You are totally right but I think in this situation it is the assignment of the administrator to track end user issues. maybe we should provide something to ease this for administrators? I think one way could be adding a support formular in our nextcloud clients so end users could post their problems and the administrator of the installation can read it and maybe post the problem in our community if it is something important.

ideally we implement this opt in so an administrator can choose whether he wants this formular for all users or not.