Community configuration 2.0/ja

要約
The Growth team developed Community Configuration to help communities customize and scale Growth features. With the success of this feature (that we consider as the 1.0), it has become apparent that other WMF teams, external developers, and other users of MediaWiki could benefit from this tool, so the Growth team is exploring the possibility of moving this feature from the GrowthExperiments extension to a separate extension.

This project will include a community consultation, discussion with technical stakeholders, scalable design improvements, and engineering work to move the Community Configuration feature from the GrowthExperiments extension to a separate extension. Short-term this project supports the Editing and Moderator Tools team projects (Edit check and Automoderator), and long-term this work will help evolve how WMF product and technology teams develop and deploy features.

Prioritizing work on Community Configuration 2.0 acknowledges that each community has unique needs, and invested community members should be empowered to configure features to meet those needs. This approach removes the barrier for non-technical moderators to customize project settings for their communities and fosters a more inclusive and collaborative product development process, thus enabling WMF to better serve the Wikimedia movement.



現状

 * : Growthチーム担当のコミュニティ設定作業に着手
 * : Growth ウィキすべてにコミュニティ設定機能を導入済み
 * : ハッカソンの一コマ：コミュニティ設定機能 – コミュニティがJSON設定を使って制御可能に (ハッカソンのセッションで使ったスライド集、形式は Google スライド)
 * : ウィキマニアで発表した現状の初期案 (Moderator support slides)
 *  Next : Community consultation and collaboratively setting key performance indicators

仮説
'''拡張権限を預かる編集者がもしオンウィキのすべての利用者に関連する重要な機能を仮に透明性を保ちながら容易に設定できるとしたら、コミュニティはそれぞれのウィキで機能群がどのように機能するか自律的に制御でき、WMFの各チームは新しい機能を迅速に出荷できます. '''

Growthチームはウィキメディア財団の年次計画ならびに製品・技術部門の目的と主な成果（OKRs）に従って業務を行います. これらの仮説と関連のプロジェクトはWikiExperiences 1.2 主な成果（KR）に準拠するWMF財団の部署単位のプロジェクトの一つで、拡張権限を預かる編集者の利用者体験の向上を目指しています.

The Growth team and four other Wikimedia Foundation teams are focusing on projects related to this to the WikiExperiences 1.2 Key Result.

Use cases
There are many use cases that highlight the need for a standard way to make features community configurable. The 2.0 version of Community Configuration will be more extensible and scalable, and usable outside of the GrowthExperiments extension, thereby positioning it to be a valuable asset for other WMF teams and their respective features. Community Configuration has been identified as a need by several WMF team’s and their associated Annual Plan priorities:
 * 1) Editing Team: Edit Check
 * 2) * Potential use case: Communities will configure when a reference Edit Check is triggered, and the resulting message and outcome.
 * 3) Moderator Tool Team: Automoderator
 * 4) * Potential use case: Communities will configure the Automoderator to only take action on edits from certain user groups.
 * 5) Trust and Safety Product Team: Incident Reporting System
 * 6) * Potential use case: Communities will configure pathways for different types of incident reports, as well as configure rules on who can use the system in which situations.
 * 7) Campaign Team: CampaignEvents extension
 * 8) * Potential use case: Communities will want to configure which namespaces are permitted for event pages and who is eligible for Organizer rights to set up event registration.
 * 9) Mobile App team: Anti-vandalism tools for the Android App.
 * 10) * Potential use case: Communities can create warning templates that can be displayed across official WMF mobile apps and third party patrolling apps.
 * 11) Web team: Accessibility for reading
 * 12) * Potential use case: Communities may need to configure default font sizes, as certain language scripts need to be larger to be readable and meet accessibility needs.

Many other possible use cases have been brainstormed by community members and are listed in the associated epic: T323811.

目標


達成したいこと

 * Create a tool that is easily understood by any experienced editor.
 * Empower communities to customize wiki features to best suit the local needs of their wiki.
 * Create a tool that helps increase the speed in which WMF Product and Technology teams can scale features to all wikis.
 * Create a tool that helps volunteer developers, gadget creators, and any software developer interested in creating community configurable tools for MediaWiki.

避けたいこと

 * バイアス（偏重）や特定の利用者グループに限定して利益をもたらすツールの作成.
 * 特定の機能限定で動作するツールの作成.
 * 探すのも理解するのも難しいツールの作成.

主な成果
当プロジェクトは拡張権限を預かる編集者と協働して目標と主要な成果を確立していきます. 現状で可能性のある主な成果は次を含みます.
 * 2024年3月末リリースをめどに、複数の Growth 機能の開発においてコミュニティ設定2.0を組み込み、設定変更可能なものに仕上げようとしています.
 * ウィキメディア財団製品技術部門の他の1チーム以上が当コミュニティ設定2.0を採用したプロジェクトに取り組み、2024年6月末をめどにツールの発表もしくは成果を共有すると見込まれます.
 * 当予算年度末までにコミュニティ設定2.0は20件以上のウィキで採用されカスタム化されました. 言い換えるなら、拡張権限を預かる編集者はコミュニティ設定2.0を認知し利用したことになります. 
 * 当予算年度末までにコミュニティ設定機能に関するガイドライン初期案について、ボランティア利用者ならびに関心を寄せる製品チームからの聴き取りと共同作業で盛り込む・あるいは除外するべき機能の種別、利用者権限の種別ををまとめる必要があります.

Technical Considerations


コミュニティ設定1.0から得た技術面の学び
Community configuration 1.0 made the following things challenging:
 * Changes: Once a configuration value has been first configured on-wiki, it is challenging to change its format (one has to edit the configuration files and update their format). CC 1.0 is problematic at backwards and forwards compatibility.
 * External access: Configuration values cannot be easily accessed from external clients (such as the Android app), ie. without loading the underlying JSON page, the structure of which can be changed without notice by the Growth team.
 * Extensibility: Adding new fields to the configuration form is not terribly difficult, but it is often forgotten about. The backing JSON files give admins access to more than what Special:EditGrowthConfig offers. Unfortunately, most “hidden capabilities” are only known by Growth engineers.
 * Deletability: Configuration stored as on-wiki JSON files has its disadvantages. The biggest disadvantage Growth team ran into is that they can be deleted (example: T344013). Once that happens, the Growth features revert to extension.json-provided defaults, which disrupts the experience to newcomers (although nothing broke from a technical perspective, the user experience is nearly-unusable).
 * Suddenness: It is worth knowing about certain configuration changes when they happen, so they can be properly reacted to. For example, if a wiki decides to turn off Add link, the Growth team would want to learn why and if possible, resolve issue(s) identified by the community. This is not (easily) possible with CC1.0.



高次の技術要件
コミュニティ設定2.0に求められるもの：


 * Auditable: Any change made to the configuration should be auditable, including the reasons for “who made the change”, “why the change was made” and “what the change consisted of”. The experience should be comparable to the history of MediaWiki pages, as that is what the users are used to.
 * Extensible: Even though we made scoping decisions (eg. to not include gadgets in the MVP), those decisions should not affect ability to extend Community configuration in the future without significant efforts.
 * Externally available: Users external to MediaWiki should be able to access the current setting values configured via Community configuration 2.0. This is needed to ensure Community configuration values can be used from places outside of MediaWiki (such as the Wikipedia Apps for mobile devices, Toolforge tools and similar).



コミュニティの協議
As part of this project, there are three main groups of stakeholders we will consult with:


 * 1) ウィキ・コミュニティ：ウィキペディアの拡張権限を預かる利用者と管理者を含め、Growthチームのコミュニティ設計を試した経験がある、もしくは近々、そのバージョン2.0を試してみたい人たち. またユーザスクリプトやガジェットの開発者の皆さんにも相談します. Wiki communities
 * 2) 技術コミュニティ：技術コミュニティ全体を対象として、より広汎な協議をします. （wikitech-l、メディアウィキのコアな技術者）. Technical community.
 * 3) WMFの各チーム：ウィキメディア財団製品・技術チームは今後の複数のプロジェクトに関してコミュニティ設計2.0に関心を寄せています.



未解決の質問集

 * 今後、複数のWMFチームがさまざまな機能を開発し、皆さんのローカルウィキの管理者が採否や設定を任されるとしたら、どう感じますか？ ちょっと待ってほしいと抵抗感を感じたり、当プロジェクトに何か懸念はありませんか？
 * これらのツールを管理者にもれなく伝えて理解してもらうには、どんな方法がありますか？
 * 管理者はコミュニティ設定の変更に自信を持てるでしょうか？ 手順に曖昧もしくは不明瞭な箇所はあるかないか？
 * コミュニティ設定2.0は誰に対しても可視化する必要があるものの、その修正は経験を積み選ばれたウィキメディアンの手に委ねるべきでしょうか？ 設定のオプションは全て管理者もしくはインタフェース管理者の権限がないと編集できないようにするべきですか？ このツールの特定のオプションに限り、利用者のアクセスをレベル分けすると適切でしょうか？
 * 当プロジェクトの最善の目標設定と成果計測に関して、何かお考えやご指摘はありませんか？
 * コミュニティ設定2.0の範囲：ユーザスクリプトやガジェット、外部アプリの対応をするのかどうか（Android／iOS 版のウィキペディア・アプリを例に想定）.
 * 設定ファイル config の変更点を全て／ほとんどのウィキメディアのプロジェクト群に適用する場合、どう取り扱うか？

Wiki communities
The Growth team's Community Relations Specialist contacted admins who had recently edited Growth's Community Configuration (T336608). The main ideas admins communicated are as follows:
 * The usual roles and processes to monitor and edit the configuration are preferred:
 * All configuration pages should be readable by anyone.
 * Admins (or Interface Admins) should be able to edit because they have enough knowledge.
 * Admins can apply requests made after a community discussion.
 * The need for a history of requests and tracking of changes is necessary.
 * This configuration page may impact a lot of users, and should be handled with care. Several ways to prevent issues were suggested:
 * The creation of a new role, for trusted admins who understand Community Configuration.
 * The creation of a reviewing process to validate a change made by one admin.
 * A clear and centralized history page is needed to spot any changes made on the different configurations.



Wikimania presentation
The Growth Team's Product Manager presented at Wikimania Singapore to share initial details about the Community Configuration project along with other projects WMF teams are completing to support moderators. We answered the following questions from session attendees:


 * Is the Special page available for non-admins in a read-only mode?
 * Yes, the special page is currently available for anyone to view. Only admins can actually edit the configuration. Example: Special:EditGrowthConfig.
 * Will Community configuration 2.0 be available on other wikis outside of Wikipedia?
 * Currently the 1.0 version of Community Configuration is part of the GrowthExperiments extension and therefore only available on wikis that have that extension enabled. We hope to build the 2.0 version in a way that is more extensible and flexible so that it can be used on any wiki that installs the Community Configuration extension.
 * Our goal is to scale the extension up to all Wikimedia projects. Having Community Configuration enabled across all Wikimedia projects would make it easy to integrate with, as you could rely on the extension always being available in a Wikimedia context.
 * If we know of specific use cases for Community Configuration, where can we share this information so that the Growth team considers the use case?
 * Although we can't make promises that we can support everything in the initial release, we are compiling a list of use cases in the Community Configuration 2.0 Epic. Any community member with ideas is welcome to add comments to that task with the use case (of course we welcome feedback and comments on the talk page here too).
 * Will there be cases in which there are additional restrictions or warnings as to what a Admin can change?
 * This project will include creating guidelines on the use of this feature. We will create better onboarding for Admins, as well as developer guidelines for engineers supporting Community Configuration of non-Growth features.
 * There will also be error checking and warnings in place to ensure Community Configuration is as stable as possible. For example: if the form expects a positive integer in a certain field, the form will present an error if a negative integer or non-integer string is added.
 * We have considered Community Configuration eventually supporting a process in which more than one admin needs to approve a change if the change could be controversial or high-impact. This won't be part of the MVP, but something we may consider in the future.
 * Will Community Configuration 2.0 work for external apps, like the Wikipedia Android and iOS apps?
 * Community Configuration 2.0 will be readable by external apps, but the actual Community Configuration form will not be adjustable by admins from within the apps.
 * Will interface admins still be able to make changes to JSON configuration files if they are also Community Configurable, or will these changes now be restricted to updates via Community Configuration?
 * Community Configuration 2.0 will not restrict interface admins from making changes to JSON configuration files.  However, in the future, there may be some configurations that admins should not be able to edit. If that happens, we would need to restrict manual editing of any raw JSON file associated with that configuration.

WMF Teams
We have completed an initial listening tour with nine WMF Product teams. Some key takeaways are:
 * All teams have either a short-term or long-term need for Community configuration, the short term needs have been documented as Community Configuration 2.0 use cases.
 * Several teams noted the importance of data transparency in making configuration decisions.
 * Several teams mentioned the need for metrics and the community ability to evaluate Community Configuration decisions.
 * Teams mentioned several social concerns, including: accountability and transparency, balancing legal requirements with community autonomy, discoverability, permissions and user roles, and the need to avoiding increasing patroller burden.
 * Teams mentioned a few technical concerns, especially the need for Community Configuration to be nuanced and flexible.

Technical consultation
Once initial technical plans are documented, we will conduct a wider discussion with technical stakeholders (T344144 )

Research
The Growth team's designer completed a short comparative review of Admin tools in use on other platforms (T338386). The full report is available here: Comparative review: Configuration / Admin tools. The following is a summary of the relevant insights that relate to the Growth team's Community Configuration 2.0 project:
 * Most tools make use of a ‘Dashboard’ as the first thing you see when you enter the panel – you can access things like recent activity, quick links, actionable insights.
 * In terms of organization/layout, most tools make use of modules while having a sidebar on the left, with menu items on it being expandable in some of the tools.
 * Some platforms let users/communities customize modules and how they’re presented - for example, modules being draggable to different parts of the screen, or being able to hide modules that you or your community don’t use.
 * Settings UI: for most of these, tools use components like toggle switches (turn on/off), text inputs, and dropdown menus.
 * Typology of settings:
 * Display settings: being able to change the color/layout/etc. of a feature
 * Feature access: being able to activate/deactivate (turn on/off) certain features
 * Thresholds/Limits: e.g., a certain activity can be done no more than X times per day.
 * User access/permissions: only certain user groups having access to a feature
 * Audience-specific or other conditional customisation: e.g. links to resources being different from community to community.

Design
We will utilize what we've learned from the existing Special:EditGrowthConfig page to make the new Community Configuration page more user-friendly, intuitive, and scalable. We are currently exploring two main design concepts for the Community Configuration 2.0 page: an accordion style layout or a dashboard style layout. We will gather community feedback to determine which design we pursue, and how we can further improve the Community Configuration design and UX.