fsharp / fsharp.org

The F# Software Foundation website
https://fsharp.org
290 stars 275 forks source link

Feedback wanted: fsharp.org redesign #680

Closed FSSF closed 3 years ago

FSSF commented 7 years ago

The F# Software Foundation Board of Trustees has begun the process of working on a complete redesign and reworking of fsharp.org.

The plan is to hire a design firm to bring a professional polish to fsharp.org, with a specific focus on the user experience and usability. They will be focusing on helping us improve the user experience for people coming to fsharp.org. This will be coupled with some custom development to fix some technical annoyances about the current site.

We have some initial technical and design requirements that we will be taking into account. I'd like to list off our main objectives:

On the technical side:

The bulk of this effort will actually be on the design and user experience side:

With that in mind, we would like your help!

Please provide feedback of what you think is important. In particular, we'd love to hear feedback on the following topics:

  1. What specific audiences should fsharp.org target?
  2. For each audience, what should be the main goals when a user first visits fsharp.org?
  3. What major scenarios do we need to support for fsharp.org?

Also feel free to provide feedback on your main annoyances with the current site, or any other issues that may be relevant. Note that we are not looking for UI suggestions at this point ("look and feel"), and more after honing in on the best strategy/goals/objectives.

For each major idea, please open a new issue (so each idea can have its own discussion), and link to it here in a comment. Vote on comments within this issue which you feel are important or not important. This will allow our design firm to easily watch this issue and incorporate feedback from everybody as smoothly as possible, as well as to see what people find good or lacking in the current fsharp.org experience.

Thank you, Reed Copsey, Jr. Executive Director - F# Software Foundation On behalf of the Board of Trustees

FSSF commented 7 years ago

Request: Have a single http://fsharp.org/use that detects platform - via @dsyme

FSSF commented 7 years ago

Request: The fsharp.org website should show some code - via @julienXX

FSSF commented 7 years ago

Idea: Taking an opinionated approach to getting started with F# via @cartermp

sergey-tihon commented 7 years ago

I want to be able to execute F# code on fsharp.org and see the result. Something similar to http://www.tryfsharp.org would be awesome or at least integration with Fable REPL and couple interactive F# tutorials of beginners.

cartermp commented 7 years ago

Here's what I think are the most important things for the front page, from the perspective of getting new people interested, in stack-rank order:

  1. Code sample showing F# doing something simple, but with "sexy" syntax. People need to see F# code and think, "gosh, that looks nice and I want to use this". Runnable is a huge plus, but I certainly wouldn't put a hold on publishing a new version of the site without this.
  2. Either a big UI element (button?) that takes you to a Get Started page, or have that content on the front page. This content should show different ways to use F# but recommend a single way. This way should be portable and as low-friction as possible. Links at the bottom of this to documentation for learning F# (official docs, F# wiki, and F# for Fun and Profit gitbook).
  3. Big link or section dedicated to the F# community and FSSF. This would show slack, community resources, open source projects, and how to get involved with the FSSF.
  4. The front page must load and be usable on a slow internet connection.
  5. Accessibility - there should be links below to view the site in other supported languages.

Unfortunately, I'm absolutely awful at design, so I can't offer up any reasonable opinions about how it should look. I tend to prefer as little clutter as possible, but that's just my personal taste.

jackfoxy commented 7 years ago

I'm going to be iconoclastic.

The F# org site should first and foremost be useful for experienced F# people. The site should emphasize targeting long-term users first. I don't mean to denigrate outreach, there is still room for that on the site. I think useful for the established community and outreach work together.

I don't have specific recommendations right now (and I will be offline for about 10 days).

mathias-brandewinder commented 7 years ago

@jackfoxy I am not sure I understand your reasoning. In my view, F# veterans know where to find resources already, and do not need fsharp.org to find help or information. By contrast, newcomers encounter simple issues, and fsharp.org is likely going to be one of the first websites they will encounter, so to me it seems important to make that a single place where they can find all the commonly asked information, and will make their first hours into F# easy and pleasant, like, "how do I install F# so that I can try it out now", or "what are good learning resources". It seems to me that outreach to newcomers is a priority, if we want adoption to grow. What information for experienced F#ers would you like to see on fsharp.org? Or, perhaps more pointedly, as an experienced F#er yourself, why would you go to the site?

jackfoxy commented 7 years ago

That is the point. I don't go to the site. And I'm not saying we should not have all the amenities for newbies.

As a "veteran" I still have to save off, or search for links of interest to me. I may not have time to keep up on the current Microsoft F# roadmap for 6 months at a time. Then if I suddenly take an interest my search comes up with all the past roadmaps, which could be scattered all over the place.

Does everybody even know about the RFCs? Didn't there used to be an "engineering committee" loosely associated with the foundation?

OK, I don't have great suggestions, I just would like a reason to visit the site myself.

Troxid commented 7 years ago

In my opinion, on main page fsharp.org should be step-by-step tutorial for instantly start work with fshap:

  1. Installing fsharp compiler and build tool (done once)
  2. (Optional) Installation cross-platform IDE (Atom, VCode, or Rider) and plugin (done once)
  3. Creating first project (from terminal)
  4. Adding some simple library (JSON or testing framework). Where can user find libraries? Reference to nuget.
  5. Testing, building and run application (from terminal)

I know, may be it's easy and intuitive if did it in visual studio, but for manual settings need simple instruction.

Look at the good examples: .NET and C# - Get Started in 10 Minutes CREATE AN F# PROJECT IN VSCODE

Also, on main page should be written current version of F# compiler. It's not very important, but would be nice.

MecuSorin commented 7 years ago

Before everything, it should be made in F# and a banner to be available for the github repo.

@cartermp I like the idea to have it translated in many languages, but from my perspective is the least important feature - will generate the most noise that will hinder development of more important features.

My 2 cents:

1. Clear way to reach the Get Started section of the site with links to the the following sections:

1.1. Videos page: a page with 4 sections (list of links - thumbnails) : beginners, advanced, related(fable and other close related to F#) and meta (good video resources for FP, machine learning, etc.) 1.2. Experiment page - a try f# that works in all browsers (this is paramount) 1.3. Setup page - with sections for Win, IOS, Linux (with clear reproducible instructions, ideal setup with a list of plugins that can enhance the experience) and a container solution Vagrant or VirtualBox Linux image with everything setup 1.4. Tutorials page: page splitted in 2 sections:

2. A clear picture of F# usage(where and who - some testimonials) and a road-map

3. A news section (both F# and tooling) that will have a voting section for articles, blogs, tutorials, videos - grouped by month - hope that will gather resources for above 200

4. Section for community/foundation that beside what Carter suggested will have 2 sections:

4.1.1. request features (F# lang, tooling) with voting 4.1.2. easy tickets to grab (minimal context knowledge required) 4.1.3. important tickets to grab

Important: if the veterans don't use this site, why bother?

4.2.1. Future events 4.2.2. F# jobs adds from firms 4.2.3. Developers availability/requests for F# jobs. 4.2.4. A map with trainer/consultancy services (with an overall client experience voting system) 4.2.5. A pretext to see some charts made in F# (link to the 1.2. resource) that shows F# in the ecosystem (remuneration level, stackoverflow interest, etc.)

5. An animated gif with max 10 lines of f# coding that is build, show tests output, show a nice graph (that is linking to the 1.2. sample)

Don't hate me for the following suggestion but is a sign of sanity and maturity:

6. What is bad in F# world with voting system - will help us grow based on real feedback. From my perspective this is a way to gain adopters, not lose them. If those "bad" topics are allowing comments maybe solutions will be provided for common problems (like a stackoverflow question), then we can mark them with tags as solved, work around, to be fixed, etc.

I know I forgot something, but it eludes me in this moment, will come back later and edit.

mathias-brandewinder commented 7 years ago

To piggyback on @MecuSorin comments: besides developers, I think we need to have a strong story for managers. A recurring question is "Who uses F#? Do people use it in production?", and the testimonials page is IMO very important in that regards.

That page is becoming a bit too large to navigate. Perhaps what would help would be:

tpetricek commented 7 years ago

I think the scenarios are still very similar to those we had in mind when starting fsharp.org, but here is my updated list of what I think the page should cover (not necessarily sorted by importance).

  1. Technical decision makers (CTO level people) - they come to the site when someone in their company wants to use F# or when they hear about it somewhere. Here is what we need to have:

    • High-level overview of why F# leads to more reliable software built faster
    • Experience reports/testimonials illustrating this, ideally from someone in their domain
    • Reassurance that they will be able to hire people, get training and consulting if needed
  2. Developers, analysts, etc. who are not F# users - they come to the site after someone on the internet mentions they should look into F#. They need some more motivation to give it a try and solid getting started materials:

    • Some code snippet to show how awesome F# is for their domain (this can be quite a wide range, I'd say we need to cover: client web dev, server web dev, quant or data analyst, .net dev)
    • A way to play with F# easily for 10 minutes (Try F# like thingy or link to good interactive tutorials elsewhere)
    • A guide on how to get started - this can be further differentiated - something along the lines:
      • Client-side developer should use .NET Core/Ionide/Fable (on any system)
      • Enterprise .NET developer should use VS proper on Windows
      • Server-side developer should use Ionide + Suave or VS proper + ASP.NET
      • Data analyst can be either Ionide or VS on Windows with FsLab
  3. F# community members - they come to fsharp.org for information about the foundation, user groups. I don't think they expect up-to-date news or tutorials on everything (there are better sources), but they need things like:

    • How to start a user group, materials they can use, etc.
    • Good materials for evangelising F# in their organisation and companies
    • Info about the activities provided by the foundation (mentoring, diversity, etc.)
dsyme commented 7 years ago

Re “using tags to filter, for instance finance, games...”

I think this is one really important for decision makers – who aren’t looking for “social proof” but “business proof in my domain”

There are tags on all the existing testimonials which could be leveraged

Best

Don

From: Mathias Brandewinder [mailto:notifications@github.com] Sent: 31 August 2017 23:40 To: fsharp/fsfoundation fsfoundation@noreply.github.com Cc: Don Syme donsyme@fastmail.fm; Mention mention@noreply.github.com Subject: Re: [fsharp/fsfoundation] Feedback wanted: fsharp.org redesign (#680)

To piggyback on @MecuSorin https://github.com/mecusorin comments: besides developers, I think we need to have a strong story for managers. A recurring question is "Who uses F#? Do people use it in production?", and the testimonials page http://fsharp.org/testimonials/ is IMO very important in that regards.

That page is becoming a bit too large to navigate. Perhaps what would help would be:

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fsharp/fsfoundation/issues/680#issuecomment-326439231 , or mute the thread https://github.com/notifications/unsubscribe-auth/AG3vPQ8GJcMUgoxZHUJ8JeE2jGygLuryks5sdzYtgaJpZM4PAqZy . https://github.com/notifications/beacon/AG3vPTtJra_fAyiUyWuxpk6v0ZHQK8L5ks5sdzYtgaJpZM4PAqZy.gif

MecuSorin commented 7 years ago

My idea was to have teasers(with clear messages about the linked content) that will take the user to the respective pages.

I was targeting the decision factors with

I must elabore the thought process behind 4.1.: the tickets I mentioned, are for compiler, tooling, important OSS libraries, even the site - why not? Would be even nicer to have a gamification behind those.

mathias-brandewinder commented 7 years ago

As it stands right now, the current learning resources page is messy, and will degrade over time, as more and more links/resources are added. The question "what are good learning resources?" for F# comes up often, so we should figure out a viable long-term solution.

At the very least, there should be a table of contents to navigate quickly to each type of resource, and find what you are looking for. If you don't pay attention, it's easy to miss that there is a big list of books half way down.

On one hand, it is not the role of the FSSF to decide what resources are good or bad, and (appear to) promote any of them; on the other hand, the raw lists are not very helpful in deciding what resource might be more or less appropriate for different audiences. Also, these lists will tend to grow over time, and some items will age and lose relevance - having a mechanism that will gracefully handle that would be helpful in keeping the site well maintained / curated.

As an example, the current order for the books random, as far as I can tell. I don't know what the right way to do this would be - here are some ideas, which may or may not be terrible:

helgeu commented 7 years ago

Does there exist any statistics of the usage of the site? Is it possible to deduce anything highlevel of that statistics? Like whos visiting, why/what are they looking for, etc?

I like the angle of @tpetricek and the stats might help in pinpointing these targets for the site, and make sure some targets are not missed. I guess @tpetricek is more or less spot on with the largest audience, but the stats might be hidding some surprising facts ;-)

The site should not forget its "intention", and mission statement should be the main focus of building the site, to support and drive the FSSF. In my thoughts that means not necessarily be a wiki of F# resources, or a site for learning F#, but at best pointers to top level resources. That also reduces work load on content.

lambdakris commented 7 years ago

Well, I think one area that could be taken into consideration with a site redesign is how to engage and mobilize F# users. This is a broad topic, but one way to think about it is through setting some imaginary goals about what effects or outcomes one might like to see. Here are some example goals that could be of value:

jackfoxy commented 7 years ago

@lambdakris you expressed much better than I the kind of things that will appeal to the people who use F#, and make the site more useful for them.

Especially increasing the visibility of release notes.

Also if the most recent of @cartermp roadmaps was easy to find, and maybe one or 2 roadmaps for high profile OSS projects (FAKE, Paket, Ionide, to name a few). Or perhaps have a section where OSS authors could post roadmaps and high profile "help wanted" bugs.

dsyme commented 7 years ago

@jackfoxy @lambdakris I sympathise, and of course we want to mobilise people in RFCs and give users a voice in engineering/design discussions.

However I personally think most of those responsibilities listed above lie off the core design of fsharp.org - and instead perhaps in the Core Engineering "Group" zone (note: it's not really a "group"), see http://fsharp.github.io. There has been talk of reconstituting that "group" as a core-engineering-mobilization-effort along the lines you suggest.

http://fsharp.org is the community's primary chance to interact with people thinking of adopting F# and people looking to install it, and that's unique opportunity

Krzysztof-Cieslak commented 7 years ago

What those "high profile" OSS projects have to do with Foundation?

dsyme commented 7 years ago

What those "high profile" OSS projects have to do with Foundation?

@Krzysztof-Cieslak Nearly all F# OSS projects are entirely independent of the foundation.

However it seems reasonable for the FSSF to encourage participation in high profile OSS projects. For example, by linking to them appropriately on http://fsharp.org/use/windows, http://fsharp.org/use/linux etc. Or by giving links for how to get involved. Or by mentoring people. Or by some of the techniques mentioned above. At least that's my personal opinion.

eromanowski commented 7 years ago

What specific audiences should fsharp.org target?

This is a moving target based on adoption. Right now, I see targeting the green F# programmer most valuable. This is a brand new strange world with a steep learning curve, getting people comfortable with this paradigm shift will improve adoption rates.

For each audience, what should be the main goals when a user first visits fsharp.org?

Give real world examples of the power of F# beyond just the technical capabilities. An animation that shows how checking in code that compiles but has runtime errors and how much of a ripple effect that has throughout the organization, while showcasing how F# solves those problems could be a way to connect to people unfamiliar with F#.

What major scenarios do we need to support for fsharp.org?

I can tell you what scenarios you shouldn't support. Games, emulators, or anything that requires shared state.

dsyme commented 3 years ago

Closing this old discussion