fsharp / zarchive-fssf-ask-the-board

Open Discussion with the F# Software Foundation Board of Trustees
35 stars 3 forks source link

Communication Platforms for FSSF - Request for Feedback #8

Closed ReedCopsey closed 6 years ago

ReedCopsey commented 6 years ago

Description

The Board had a lengthy discussion related to the Open Communication (#7 issue), as well as other various issues related to Slack and the current community communication platforms. We would like comments and feedback on a proposal for how to move forward.

Motivation and impact

While the F# Software Foundation Slack team has been a huge success in many respects, there are numerous disadvantages and issues with the current setup. In addition, recent changes have caused this to become even less ideal than in the past.

Members have repeatedly reported issues with the current setup, including:

Unfortunately, the worst of these issues will only get worse over time as more members participate. The 10000 message history limit already restricts us to less than a week of archives in many situations. In addition, SlackArchive, our current workaround, stopped working in Feb, and the developers have informed me that there are no definitive plans on when or if they will get it up and running again. This means that we currently have extremely limited history, which will get shorter and shorter over time, and no archiving.

In addition, over the last couple of years, we have had multiple members point out that "chat" is not necessarily the ideal medium for many discussions. Technical questions, for example, often function better in a threaded, more permanent and searchable form.

Proposed solution

The Board is proposing the following solution to these issues, which is based on two parts:

  1. Keep Slack as a real-time chat platform for Foundation members, but reorganize it internally to have fewer channels, and try to focus conversations on real time discussions, social interaction, and non-technical questions.

  2. Create a public forum using Discourse for technical questions and answers, as well as topics which would benefit from history/searchability over time. The Foundation would manage this, but it would be intended for the F# community at large to use, not just members

Drawbacks

The main drawback is that this will add "yet another" place to look for F# content. However, there are integrations which we could use to add notifications in the Slack team when topics are added in Discourse, which should ease this.

Other thoughts

These are some of the goals and concerns taken into account with this proposal:

Specific Feedback Requested

ShalokShalom commented 6 years ago

Discourse is one of the main communication platforms for OCaml, Julia, Elixir, Elm and a lot of other projects, so it is technically proven, imho.

I investigated a couple of communication solutions a few months ago and found Discourse one of the most appealing, together with HumHub.

I am happy that the fssf discusses this since I already accepted the idea that intentionally positive input gets ignored.

I love that you proved me wrong and I underline what I already spelt multiple times in the other Github issue and the Slack channel since it got ignored nonetheless:

I think everybody should still be able to communicate with Slack and find support there.

I guess its acceptable as the live chat solution.

One more important thing:

The decision of each tool can be based on rational arguments rather than personal insults and statements like 'we are used to it' or 'it is popular': This here is computer science and not the church.

Happy hacking

jwosty commented 6 years ago

@ShalokShalom I politely ask that you avoid saying things like that (what you said about "the church"). That statement is blatantly personally insulting.

charlesroddie commented 6 years ago

The overall goals of Discourse look appropriate: a more "live" version of a standard forum. However this "liveness" is hampered by the lack of good apps: there is no Windows app and the apps for iOS and Android are terrible - just web wrappers according to user reviews. And I thought all the Electron communication apps (Slack, Teams, Discord...) were pretty bad...

ShalokShalom commented 6 years ago

There is now a fully working HumHub instance for our test cases.

I see it as a benefit when a project focuses on one single client instead spreading its development into several pieces, so long as complete cross-platform support and sane quality for all of them is the case.

The HumHub web client works great on all the devices here, including the phone. Share your experience, when you feel motivated. ^-^

~~

@jwosty Which person do I insult?

It is simply about things like evaluation, reproducible results and provable causality. Such things do not happen in a church, so how is that a personal insult?

"Church" is obviously no offensive word, whereas "religious fanatic" is, what was one of the initial responses to my idea.

In my sense is the communication about this alternative platform signed with a significant about of unscientific content until and I can prove this.

I feel that it is important to underline the high value of the emphatic and rational behaviour that Reed, Alan, Victor, Gregor and lot of others show us.

I see this as highly valuable and as very underrated in the community, since I felt in the past resembled on the decision processes of a cult, plain and simple.

This is the personal experience that I share with others in this community and imho nothing impolite. Plus, it is, of course, happening in other communities as well. So surely nothing exclusive in FSharp.

I think it is important that we talk about this, since every single decision, software and process that we use is 100% rooted in the community. This is where all the development happens, obviously.

It's all about us.

~ Since this idea is now obviously on the track, do I leave the following space onto others. ~

EBrown8534 commented 6 years ago

Do you like this approach for the Foundation moving forward?

This approach in general or this approach in this particular case?

I like the idea of using a more stable, permanent, lower-profile medium for long-term discussion. I think GitHub could serve that purpose, but I don't think it would serve the purpose as well as Discourse could. I think that, with the style of conversation Discourse encourages, it would be far better for the long-term discussion, and would be a nice utility. I think that with the integrations mentioned, that would be a more-than-sufficient to bring the Slack + Discourse experience together. (Hell, even link to Discourse and Slack areas of the same type of topic to give us an even better experience.)

The lack of tolerable mobile apps doesn't concern me, as thanks to Slack being Slack I now use it entirely in-browser.

Some concerns I have on Discourse:

I also noted:

Keep Slack as a real-time chat platform for Foundation members, but reorganize it internally to have fewer channels, and try to focus conversations on real time discussions, social interaction, and non-technical questions.

FWIW, one of the things I really like about Slack is the ability to ask a quick technical question, and get a quick answer. That said, I do think there are times where a more accessible, longer-lasting solution would be nice. I've seen a few instances where a question is asked in one of the less-used channels (datascience, dotnetcore, game_dev, mobiledev, web for example) and it's more complex, and goes ignored for some time or altogether. In those situations it would be much more beneficial to have a forum solution that can allow a longer, more visible discussion. (Also, side note: shouldn't game_dev be gamedev, or mobiledev be mobile_dev to fit the pattern?)

I see Slack still being beneficial for a few major reasons / situations:

  1. Lighthearted banter between members. (See: random.);
  2. Office-hours discussions. (Plenty of those, including from Mathias, Don, etc.);
  3. Quick (even some not-so-quick) technical questions and/or mentoring. (I see this in beginners a lot, and it's awesome to see.);
  4. Real-time discussion on F# features / details / issues in general. (Often nice to have people to "brainstorm" ideas with.);

But, I would like to see some integration between them, at least on a basic level if possible (and as you mentioned), such as when a thread is opened on Discourse identified as "Help" (be it the location it's posted, tagged, whatever) it would be nice for Slack to post a message for visibility.

Have you experienced Discourse previously? Do you believe it would be a good fit for the Foundation?

<Never used Discourse, so no comment here.>

Are there alternative platforms or approaches we should consider?

I won't self-plug, but I do think that other options have their own pro's and con's, there are some more modern ones that are designed to fit the bill (which Discourse absolutely is as well), however everything has it's own limitations. I think for the purposes of what FSSF wishes to do with something, the option we consider should be lightweight, easy to manage, powerful, fast, and readily-accessible, which Discourse looks to be all of.

Overall

Overall, I like the idea, and would like to explore it further. I think Discourse offers us something we just don't currently have: a platform for long-term discussion.

jwosty commented 6 years ago

Answering some of the questions from my point of view.

Do I like this approach for the foundation moving forward?

If this refers to this and future "Requests for Feedback," yes, I like it a lot. More communication is good (to a point, of course; we don't want to sit around talking about things forever and never get things done).

Have you experienced Discourse previously? Do you believe it would be a good fit for the Foundation?

I have not used Discourse.

Are there alternative platforms or approaches we should consider?

Perhaps the reddit community over at /r/fsharp. It's not totally orthagonal to the goals of this discussion, but it still could be a valuable community if we help foster what's already there. There already exists a small community there, with people posting every day or so, and Subreddits are highly discoverable (since a lot of people use Reddit).


@ShalokShalom The decision of each tool can be based on rational arguments rather than personal insults and statements like 'we are used to it' or 'it is popular': This here is computer science and not the church.

This clearly implies that the church is rampant with "personal insults" and "statements like 'we are used to it' or 'it is popular'". Can't you see that isn't a very kind thing to say? I take my Christianity very seriously, as well as do others. What more, I take science (and computer science, of course) very seriously too! No reason to resort to alienating a whole group of people.

You've also been bringing up good points, if you read past all the direct insults towards the community. I understand that someone called you a "religious fanatic" when you presented your idea, and I think that person was wrong in saying that, but I don't think that represents the community. That doesn't warrant this kind of response. Why can't we just all be friends here? We're all here for a common reason. We love coding in F# and we want to see it continue to thrive. :)

rbauduin commented 6 years ago

I thought I'd share my experience as a person interested in F#. I got to a point where I had some small questions best answered in a chat session. Seems the best chat channel is the slack channel reserved to people joining the F# Foundation. But I'm not ready to join the foundation, I still need to discover F# and its community. So I put my F# exploration aside. I'm sur eI'm not the only one to have that experience.

So having an open discourse forum would be a huge step forward for people like me.

My concern however is that habits are hard to change, and the people most knowledgeable, which probably joined the F# Foundation, might stay on slack without paying attention to what happens to the second communication channel (even if some kind of notification is set up). This would result in a kind of split in the community. And if the second platform doesn't garner enough energy, it might slowly die off, leading to the current situation.

A chat channel is also useful for technical discussions, so it might be unreasonable to limit the chat channels to non technical discussions.

So my question is: why not be open and welcoming to newbies like me? Newbies have the most to learn from discussion between knowledgeable people on the slack channel. Why wouldn't the community welcome newbies like me, who are not yet ready to join the Foundation, to the slack channel ?

Note that opening the slack channel is not in opposition to starting a discourse forum. They serve different purposes. But having both open would let both grow together.

Also, I understand a chat channel reserved to members of the foundation makes sense. But could only this channel be limited to members, and all other open?

Regarding the choice of tools, I have had good experience with discourse, although I'm not an intensive user. I've been happy with its search functionality and notifications options (mail is possible). The features listed also seem to cover needs expressed in the discussion (never tested mobile apps though).

As for the code of conduct, I'm afraid closing the channel access in the name of code of conduct enforcement costs more to the community than the benefits it brings. Having open communication tools doesn't mean you can't have a code of conduct. Look at the Ruby community. They have a Code of Conduct, but it's still possible to join the mailing list without any foundation membership.

If slack's limitations are problematic (for an open technical chat platform), there are open source alternatives as Mattermost and Zulip, though I've never used them intensively.

ReedCopsey commented 6 years ago

Now that we've had a few comments, I thought I'd chime in with responses to some concerns and questions - these are my personal opinions (not something that the Board has discussed):

@ShalokShalom wrote:

The decision of each tool can be based on rational arguments rather than personal insults and statements like 'we are used to it' or 'it is popular':

I personally see familiarity and popularity as important aspects to consider. They are not the only (or even primary) factor, but they are key factors to consider. Popular platforms are more likely to be supported in the long term, and have less maintenance issues or risk associated with them. "We are used to it" also often means "this will be easier and familiar for newcomers to pick up", which also is incredibly valuable.

@charlesroddie wrote:

there is no Windows app and the apps for iOS and Android are terrible - just web wrappers according to user reviews. And I thought all the Electron communication apps (Slack, Teams, Discord...) were pretty bad...

Discourse is very much focused on the web interface. The iOS and Android apps aren't terrible IMO (I've used them), but they are simple wrappers that do nothing but add somewhat better notification on mobile. They do not use electron (they're react native based), and aren't super heavy weight, though.

That being said, the browser interface is pretty good - and quite good on mobile, so I don't see this as a real issue, esp. for "forum" software (vs real time chat).

@EBrown8534 mentioned some concerns:

I think Discourse is actually probably "best in class" in all 4 of these areas. I really recommend people check out https://forums.dotnetfoundation.org/ - you can use it to play around with searching, perf, etc. In general, I've found it quite usable, personally. Subscriptions allow for email notification, and seem to work well.

I will address "Code of Conduct enforceability?" directly, too. Discourse has the concept of flags, which lets people flag spam. It automatically hides things with 3+ flags from trusted users until a moderator deals with it. In practice, this seems to work reasonably well to keep things from going off the rails. It also has a reasonable set of moderation tools, for the volunteers who will act as moderators.

He also wrote:

I see Slack still being beneficial for a few major reasons / situations:

I agree 100% with these, and would expect it to remain used for all of these. There are intergrations, too - so we'd definitely set it up so new topics in Discourse got announced on Slack, etc.

@rbauduin wrote:

So my question is: why not be open and welcoming to newbies like me? Newbies have the most to learn from discussion between knowledgeable people on the slack channel. Why wouldn't the community welcome newbies like me, who are not yet ready to join the Foundation, to the slack channel?

Our goal is to be very welcoming - my hope is that participating in Discourse would quickly alleviate any concerns about becoming a member, at which time the issue becomes a moot point.

My biggest concern with opening up the Slack channel is really about moderation -

We're just not big enough to moderate well, and every fully-open chat I'm involved with ends up being a much less friendly place, very quickly, due to moderation problems. We have been fortunate to have few issues in Slack thus far, but we have had issues which required moderation, and the membership requirement really eliminates the spam and reduces the abuse issues that arise on open systems.

Look at the Ruby community. They have a Code of Conduct, but it's still possible to join the mailing list without any foundation membership.

This is similar to us providing Discourse... It will still use our Code of Conduct, even though it's open.

chadunit commented 6 years ago

Random thought, probably impractical, what about some kind of initiative to develop an open-source forum software in F#, using some of these great web frameworks we have.

Kind of like they did for D language (just talking conceptually, not pointing to any specific details of that effort).

Would accomplish: 1. Providing the desired discussion platform. 2. Dogfooding the constituent web frameworks making them better in the process. 3. A high-profile project for advocacy/showcase purposes.

jwosty commented 6 years ago

@chadunit that idea actually crossed my mind. Even though there is something to be said for re-inventing the wheel here (when there may be a solution that suits our needs well enough), someone could certainly a project (and I'm sure people would be willing to help out). If at some point in the future it is useable enough and meets the goals, it could be utilized. It's definitely worth a shot, even if nothing comes of it!

That all depends on the kind of time scale we're looking at -- do we want this now?

ShalokShalom commented 6 years ago

https://mangelmaxime.github.io/fulma-demo/

smoothdeveloper commented 6 years ago

Does the community want to look at possibility of having specific sections related to F# under https://forums.dotnetfoundation.org/ ?

I'm seeing potential positives for doing so, help with exposure of F# in context of dotnet, diminishing the sentiment that F# is left appart from the dotnet community...

Overall, the user experience of discourse is great and having a persistent forum space for F# community is great.

realvictorprm commented 6 years ago

Interesting idea @smoothdeveloper

Personally I like forums.

ShalokShalom commented 6 years ago

Thats a great idea ^-^

This will lead to further adoption and is the easiest to maintain, I am totally for it.

It raises awareness about FSharp in the .Net world and is surely nicely interacting with .Net related questions

Plus, Discourse is anyway one of our favorites

+1

FoggyFinder commented 6 years ago

Wow, it would be really cool.

I am not very active user of Discourse but yeah, I think it is a good choice

rbauduin commented 6 years ago

about the dotnet forums, some positives:

ShalokShalom commented 6 years ago

Well, a new community is not active at all. F# categories can be added, like:

FSharp - Beginners FSharp - General

And an own color for it

And you can use both, tags and/or category's to find stuff. See also this post: https://elixirforum.com/t/were-moving-towards-a-tags-based-system/13676

It is also possible to simply tag a post automatically, once it is in a specific category.

So very flexible. :slightly_smiling_face:

ReedCopsey commented 6 years ago

In addition to @rbauduin 's negatives (which I think are all valid), I don't think the .NET Foundation forums are necessarily a good fit.

I do wish there was more F# activity on there - I'd love to see more F# people regularly chime in on topics (as well as a couple of F# projects join the .NET Foundation! ).

However, the purpose of the .NET Foundation forums is not "general discussion", they are for topics related to the Foundation itself. This is their own legal info, as well as categories related to projects within the Foundation, etc. You can see this by looking at their categories - there are no language specific categories (ie: no C# category), so I think it's probably not an appropriate venue for trying to use for general F# discussion.

We were at least hoping for a more "general purpose" F# discussion - where people could ask for help, discuss ideas, etc. That doesn't really line up with the purpose of their forums, so I think we're better off with our own.


Edit: I am aware that there are quite a few "general help" topic posts on the .net foundation forums, but they really are "off topic" from the purpose of those forums...

ShalokShalom commented 6 years ago

Anyway how small they are, they are still larger as a completely new instance, obviously?

This seems important to me since a lot of people are probably afraid to immediately switch on the new platform, so this gives us a nice start boost.

Once the FSharp community contributes to .Net related topics, does this contribute to the development of the platform at all.

And so, a lot of C# and VB devs become potentially interested in F#.

I consider it as a benefit, that there is currently no C# and VB category since that means we have the chance to make this forum the modern communication platform for .Net development.

jindraivanek commented 6 years ago

Do you like this approach for the Foundation moving forward?

Yes. +100

Have you experienced Discourse previously? Do you believe it would be a good fit for the Foundation?

Only as reader. I like it, IMO big plus is nice UX on mobile. Probably best alternative for forum.

Are there alternative platforms or approaches we should consider?

I don't know if FSSF considered this, but there is free hosting from discourse for open source projects: https://blog.discourse.org/2016/03/free-discourse-forum-hosting-for-community-friendly-github-projects/

Although visualfsharp repo don't have required 2000 stars, I think it shouldn't be a problem, when considering all other F# community projects.

realvictorprm commented 6 years ago

@jindraivanek I think we did not know about this. I see now less reason to not try out the discourse.

rbauduin commented 6 years ago

Hosting by discourse looks interesting indeed!

Once there's an agreement on the way forward, in what timeframe would the FSSF give the go ahead for this? And who's taking the final decision btw?

Discourse hosting reminded me of gitter.im, a chat service which, like a forum, is readable even by non participants (eg the Vuejs chat), which is a great fit for open source projects. It also provides login with github, just like discourse. Just saying, maybe as a next step? ;-)

ShalokShalom commented 6 years ago

Even the people who acquired it, the Gitlab devs, decided to choose Mattermost instead after a heavy code clean up.

Gitters CSS interface is tricky to theme since complicated and the general response of code reviewers is distracting to me.

Its pretty much the open source version of Slack.

rbauduin commented 6 years ago

Even the people who acquired it, the Gitlab devs, decided to choose Mattermost instead after a heavy code clean up.

@ShalokShalom I wasn't aware of that. Do you have more info or some pointers about this decision and possibly with some more explanations from Gitlab? I've searched the web but didn't find anything. Actually, the gitter chat is still mentioned on their help page. Maybe they chose Mattermost for the private chat solution used in the company? This is not a use case for Gitter I think, so it would make sense regardless the quality of Gitter.

ShalokShalom commented 6 years ago

Yes, they offer you Mattermost and no Gitter: https://about.gitlab.com/features/

The very most of my information is based on private chats and so on, while everybody is invited to look into their code base.

Their notification system is confusing, once there are multiple mentions in the same channel and the mobile client cannot edit comments, etc.

Picture upload happens only via drag and drop and there is no mention about that in the GUI.

I see pretty less sense to jump from Slack to Gitter, since it adds a couple of more issues and solves only half of the existing ones.

ReedCopsey commented 6 years ago

@rbauduin

And who's taking the final decision btw?

This will be decided by the Board and Officers. The purpose of this issue is to get feedback on the idea, to help the Board decide.

in what timeframe would the FSSF give the go ahead for this?

I suspect this will happen rather quickly once the decision is made by the Board.

ShalokShalom commented 6 years ago

Cross posting between Slack and Discourse: https://meta.discourse.org/t/chatroom-integration-plugin-discourse-chat-integration/66522

ReedCopsey commented 6 years ago

This has now been done. The forums are setup and live: https://forums.fsharp.org/

Please join, participate, and let us know what you think.