High level summary of meeting
Mihaela kicked off the meeting by presenting some research she has done in the past week to help identify personas in the Drupal community that would be served by this Initiative.
She first acknowledged that there is a hurdle to installing contributed modules in Drupal 8, due to Composer, and the four types of personas identified were differentiated along those lines:
- The "Manual Installer." This persona might be a small site/business owner who manages their one website through FTP, possibly without the use of a staging or dev environment. Generally they would be using shared hosting. While comfortable with tinkering, they can get "module happy" and install many modules, assuming that they all are of the same quality and all work nicely together, which may not be the case.
- Laid back Drupalers. These people don't mind not being on the cutting edge. Maybe they're a little more technologically advanced than the Manual Installer, but if they're not using composer, they are OK with that. They are probably pretty comfortable with Drupal 7 and are happy to stay there as long as they can.
- Eager Drupalists. These people know they're not on the cutting edge, but they want to be. They know they're not where they need to be, and may want/need/seek help getting there.
- Advaced Drupalists. These people are on the cutting edge, using all the best practices for installing and maintaining a Drupal site, including version control, Enterprise hosting, advanced features of Drupal, etc.
When looking at these audiences, they may have different needs, and it's hard to dissociate their needs from the installation methods they're using to install Drupal modules. It may be that for MVP, the Project Browser gives you several instructions for install methods, such as a link to the tar.gz file, a Drush command, and a Composer command. Installing modules is one of the biggest barriers for power-users/site builders. Solving problems like these at the Manual Installer level can still solve problems and make life easier for those at other levels.
People at higher levels might want to see some Drupal-specific information in their browsing/shopping experience, like:
- How many maintainers on the project
- How many outstanding / unresolved issues
- How secure the module is
- How many installs
Open Discussion
After opening the discussion up after presenting these personas, conversation quickly evolved into a discussion around "curation" of modules to be presented by this system. There are some very common use-cases for Drupal that are installed nearly everywhere: projects like Pathauto & Metatag for example. So any algorithm or criteria which recommends modules should take into account popularity. Factors to consider:
- Popularity (downloads)
- Complexity (number of dependencies, etc)
- "Freshness" - last contibuted to or last activity by maintainers in the issue queue, ex.g. This can be complicated by the fact that some modules "just work" and are of high quality, so don't need maintenance or have issues. Other times, referenced libraries are linking from d.o to spam sites.
- Security - we need to ensure bad actors are not let into the featured/promoted/curated tier.
With that said, others expressed the desire to "turn on the fire hose" and just see everything. So, we should consider a flag or way to see all the projects if that is what the "shopper" chooses. Whether this refers them to Drupal.org or turns on more projects inside the Browser is TBD. There are many technical considerations for which is better, which can be delayed until we have defined the MVP.
One side effect of having criteria for "top-tier" modules is our ability to shape how project maintainers may behave. For example, we can require that documentation exist in the Drupal handbook in order to be in the tier.
We spoke about the need to revamp the search functionality of the existing Drupal.org project browser. Sometimes even searching for the module name doesn't pull it up in the initial results. Sometimes we have names like "ctools" that aren't as descriptive of what they are used for or do. There may be some things on drupal.org projects that may need to be changed. We talked about the need for more screenshots on many projects, as well as robust user-friendly descriptions for modules that are written for the global audience and not developers.
By the end of the project, we were mostly in agreement that some form of "curation" (language TBD) would be helpful to these personas, because of decision paralysis. We also talked about helping to serve audiences new to Drupal by also guiding them toward the Project Browser on install, or by recommending some initial popular modules that most sites may want or need.
We brought back the idea of the Apple App Store and Google Play Store when discussing "what would make this project feel like a success?" but acknowledged that those stores don't do things to help you necessarily decide which to install; sometimes you just "download all three" and try each of them out.
We need to do more research on how people are currently browsing/"shopping" for modules. We may produce user surveys/polls in the coming weeks, but are not putting one out quite yet.
Meeting recording
See https://youtu.be/G3fJ0ZeMGQs
Next steps
TBD
Comments
Comment #2
kevinquillen commentedModule Promotion
There was some discussion as to how to present the promoted modules in the project browser, without seeming to favor one module over the other.
As an initial MVP, I think a curation team can decide pretty quickly on the top modules to show that nearly every Drupal install has - projects like Pathauto, Redirect, Metatag, Robotstxt, Webform come to mind. These are useful, value-add projects that most users seek out of their CMS and one of the first things a majority of us install in a new project.
Possible Module/Theme Curation Requirements
Curation would provide vetted modules to allow to be displayed in the project browser with the goal of aiding end users and also ensuring quality projects are displayed.
Curation also would be required to prevent bad actors / bad packages from making it to users, thus preventing site hijacking, security issues, or Drupalgeddon-like events.
Possible criteria:
Curation questions:
Project Browser "Filters"
By default I think most agree that only vetted projects should show. There has been discussion however of configuration to override this, to show 'all' or 'show beta' or 'show alpha' releases. IMO for the benefit of the users I believe this initiative is targeting, it may be safer to not allow that at all. But in some cases, it is unavoidable.
Part of my opinion that modules must be stable tagged releases (above) would be to combat that issue where modules seemingly live as beta forever, despite being quite stable, and also where curation members could intervene in such a case. It may also have a side effect of encouraging maintainers to finish their module up so they can be included. One of the long running stigmas with Drupal 8 is "modules are all beta/yellow" which scares end users and perhaps this can be a positive effect on that.
Comment #3
chrisfromredfinComment #4
narendrarComment #5
portulacaOne way of getting feedback might be to implement a rating for current projects on d.o. worded something like:
This way we might gather info about which projects need polishing, even before Project Browser takes off.
If data is available the analysis of the results could connect Drupal experience based on the Drupal account and the answer stats, maybe it would show the expected difference between what we perceive as "global audience" and "drupalists".
Clearly that would still be biased towards drupalists because there are a lot more people not knowing Drupal that are excluded from gathering data only through Drupal channels.
Comment #6
rubyjiI am neutral on the question of whether the Project Browser lives on d.o or on people's sites, but just after the meeting I thought of one possible benefit of having it integrated into the admin UI, which is that the project browser would be able to detect whether a module's dependencies already exist on the site where it's running.
For example: if I'm evaluating two possible solutions for something and they both have dependencies, but the requirements for one of them are all modules and libraries that I already have, I wold very much like to know that. I can think of lots of other ways that integration in this way could surface information that would be useful for the site builder.
Thanks to everyone for the good discussion today!
Comment #7
rubyjiOh and one other thought about ratings. I feel like my ratings might not be that relevant for a different type of user with different needs, and vice versa. I'd love to see if it could be implemented as a set of ratings that get at different aspects of the module. For example: how is the interface, how is the functionality, how extensible is it, how well does it play with others, and probably a lot of other things I am not thinking of. Or at the very least maybe we could separate the scores and see that front end devs rated it differently than site builders or coders.
Comment #8
gábor hojtsyComment #9
gábor hojtsyAdded meeting recording for now. Will add embed when we are ready to close the discussion (that requires full HTML summary I think, which will make it impossible to further edit the summary).
Comment #19
gábor hojtsyAdding missing credits.
Comment #20
gábor hojtsy