Status: Open for feedback
Following initial updates and research into the Metrics Platform docs, design a cohesive information architecture that meets users' information needs and includes spaces for future features.
Approach
The Metrics Platform is a rapidly evolving set of tools, workflows, and conventions. Because of this high rate of change, the approach to the documentation must also be incremental. This task summarizes how this approach has affected the design of the information architecture and my proposal for the information architecture going forward.
Prior to the MPIC alpha release, the process for creating a Metrics Platform instrument used only code and config changes, without any UI assistance. Because of this code-focused process, the docs were the primary entry point for users creating instruments, and the initial goal of this docs project was to support this workflow.
This pre-MPIC information architecture centered on a primary guide to creating an instrument, with supporting documents branching off it, as shown in the documentation user journey diagram from T370335:
In September 2024, the Growth team used the updated docs to create an instrument. Growth engineer Sergio Gimeno Saldaña stated that the docs were very helpful and that Growth was able to set up their instrument without asking Data Products questions about documented functionality. This means that the pre-MPIC docs were able to successfully accomplish their goal.
However, as the development of the Metrics Platform progresses, the information architecture of the docs needs to evolve. The purpose of MPIC is to provide an abstraction layer over the instrument-creation process to create a better experience for users. As such, MPIC will replace the docs as the entry point for users creating instruments. To adapt to this change in the platform, the information architecture of the docs should shift from focusing on the docs as the primary entry point to focusing how the docs can support MPIC. Specifically, this means designing the docs around places where MPIC will need "Learn more" links.
Post-MPIC, the goals of the Metrics Platform documentation will be to:
- provide supporting documentation for users of MPIC, allowing those users to independently create instrumentation without direct support from Data Products teams, except in edge cases
- provides places to document the functionality of the system as it evolves, so that both system users and maintainers can understand current capabilities
To support this, I've designed an information architecture that:
- is modular enough to be integrated with future UI experiences
- reduces complexity by using minimal levels of subpaging
Note that the information architecture below a work-in-progress based on my current understanding of the capabilities of the system. It will likely need to evolve as new capabilities are added to the platform.
Navigation
This section shows what users will be shown on the Metrics Platform homepage on Wikitech.
Guides
- Measure product health (directs users to MPIC/other UI)
- Conduct an experiment (directs users to MPIC/other UI)
- Local development setup
- Data collection guidelines (link to Foundation Wiki)
Templates
- Measurement plan
- Instrumentation spec
- Experimentation scorecard
API docs
- JavaScript
- PHP
- Java
- Swift
Reference
- App schema
- Web schema
- Custom schemas
- Configuration
- Analytical sampling
- Contextual attributes
Maintainer docs
- Getting started
- Deploy a new client library version
- Validate events
- Administration
- Decision records
- Deprioritize Custom Data
- Single Table Per Base Schema
Contributing
Glossary
About
Rationale
With MPIC taking the place of the docs as the main entry point for users of Metrics Platform, this information architecture focuses on:
- API docs for engineers integrating with Metrics Platform clients
- docs to support MPIC flows, such as templates and reference docs, for users of MPIC
The schema pages and contextual attributes page will be separate so they can be linked to from different sections in the MPIC forms, but these pages will also share content via transclusion to avoid duplication. For example, a list of contextual attributes supported by the JavaScript client could be transcluded into both the Contextual attributes and App base schema pages.
Overall, this information architecture proposes an approach that can evolve alongside the platform more so than a finalized set of pages.
Data contract docs
To document the data contract, I propose a page for each of the base schemas that lists the available properties by type (interaction data, contextual attributes, or core properties), but does not duplicate the property types or descriptions from the schema definitions. To make the property types and descriptions from the schemas easy to read, I propose creating a bot that, on a regular cadence, pulls the schema definition from schema.wikimedia.org, converts it to JSON, and publishes it to a wiki page. MediaWiki will render the resulting page as a single, full-page table. Based on my research, this is the simplest way to deliver a readability improvement. Update: In T372680, Dan recommended moving forward with rendering human-friendly version of the schemas on schema.wikimedia.org instead of using a bot. See T376841: Render human-readable schemas on schema.wikimedia.org.
Examples:
Product user flows from @VirginiaPoundstone
- User flow #1 goal: measure product health metrics
- Configure instrumentation to start collecting data via MPIC UI > use client libraries to add instrument code based on measurement plan > monitor instrument landing page (via MPIC catalog)
- User flow #2 goal: conduct a controlled experiment
- Configure experiment instrumentation to start collecting data on select percentages of traffic on select wikis via MPIC UI > use client libraries to add instrumentation based on experimentation scorecard > monitor experiment progress on its landing page (via MPIC catalog)
Page list (WIP)
Metrics Platform/About
Metrics Platform/Analytical sampling
Metrics Platform/API (disambiguation)
Metrics Platform/App schema
Metrics Platform/Conduct an experiment
Metrics Platform/Contextual attributes
Metrics Platform/Contextual attributes/Java (transcluded)
Metrics Platform/Contextual attributes/JavaScript (transcluded)
Metrics Platform/Contextual attributes/PHP (transcluded)
Metrics Platform/Contextual attributes/Swift (transcluded)
Metrics Platform/Contributing
Metrics Platform/Core properties (transcluded)
Metrics Platform/Glossary
Metrics Platform/Interaction data (transcluded)
Metrics Platform/JavaScript API
Metrics Platform/Java API
Metrics Platform/Measure product health
Metrics Platform/PHP API
Metrics Platform/Sampling
Metrics Platform/Swift API
Metrics Platform/Schemas (disambiguation)
Metrics Platform/Web schema