MDN/Archives/Projects/Development/CompatibilityTables/Vision
FOR DISCUSSION: This document is currently a re-hash of the deliverables. It will most likely be updated after a discussion with the development team.
Vision
Objective of this document
In order to help us structure the work and communicate better with other stakeholders, we may want to follow the Agile Manifesto guidelines
This document should be viewed as a summary of the project priorities to assist us in the decision process.
It is meant to follow the objectives of a Project Vision document defined by the Scrum Alliance.
« Every Scrum project needs a product vision that acts as the project’s true north, sets the direction and guides the Scrum team. It is the overarching goal everyone must share – Product Owner, ScrumMaster, team, management, customers and other stakeholders. As Ken Schwaber puts it: “The minimum plan necessary to start a Scrum project consists of a vision and a Product Backlog. The vision describes why the project is being undertaken and what the desired end state is.” (Schwaber 2004, p. 68) »
Please keep this document as short as possible to reflect the current project direction regardless of the phase we are in.
Vision Board
Serve feature compatibility information across multiple outlets and formats without data duplication
Target group | Needs | Product | Value |
---|---|---|---|
|
|
|
|
Expanded vision notes
Which customer needs will the product address?
Priorities are marked by a star (☆)
- View up to date feature support tables embedded within MDN content ☆
- Add/Edit a given feature entry using tools within MDN ☆
- A way to input/import data
- Scraping existing MDN compatibility tables ☆
- Manual contribution by users using external tools
- Bulk data entry that may span many features (both changing existing features and adding new ones)
- A way to maintain the data (outside of MDN)
- Search by feature, contributor, or specification
- Individual contribution (i.e. contributor, time of contribution, contribution data) not clear what this means
- Bulk data entry that may span many features (some features may or may not exist)
- Erase one or many contributions
- Localization of labels in the UX and the tables so we can support displaying the data in multiple languages
Which product attributes are critical to satisfying the needs selected, and therefore for the success of the product?
- Seamless communication flow between separate web applications: the database, the API, and the MDN production content should always present the same data
- Every translation of a given article should display the same compatibility data, just presented according to the user's locale
- Erasing contributions should adjust internal data representation to the sum of data entries between an initial state and the entry events applied in an ordered manner, modulo what's been erased
- Import data should be structurally identical to the data Export output What does this mean??
- data entry format should be structurally identical for both bulk and individual contribution
- Data should not store localized labels; these should be stored in a centralized manner which supports localization of those labels
- Ability to snapshot the database ("export") into appropriate formats (json, HTML...?)
- Ability to restore service quickly
- Easy to maintain the service
- Easy to restore backups of the data to roll back if a data irregularity occurs
How does the product compare against existing products, both from competitors and the same company? What are the product’s unique selling points?
No feature for feature equivalent found yet
What is the target timeframe and budget to develop and launch the product?
TODO
System properties
Components
(most likely incomplete)
- Display data at most recent state
- Search current data, by Feature, Author, Browser
- Search data entry events, by Feature, Author, Browser
- Compile data view as the sum of data entries between an initial state and the entry events applied in an ordered manner
- Render an HTML representation of the data (may or may not have more than one HTML format)
- Accept writes only if authenticated to trusted authentication provider
- Contribution data types:
- Feature (e.g. border-radius)
- Supports (e.g. Basic Support of border-radius)
- Specification
- Browser
- Browser Version
- Note
- Feature (e.g. border-radius)
- Frontend JavaScript client
- add editing capabilities from MDN embed
- Convert a given data entry into a "contribution packet" to send to the API
Properties that has common attributes
Common properties should indicate the system dependencies and, therefore, makes them critical to supporting other features of the system as a whole.
Data entry events
As stated in critical attributes above;
Erasing contributions should adjust internal data representation as the sum of data entries between an initial state and the entry events applied in an ordered manner, modulo what's been erased
The following type of data is subject for edit events and moderation may be required on a given event.
In their respective contexts;
- Bulk (i.e. event data adds/edits more than one data type)
- Individual entry
- Individual entry, triggered from external site
- Initial import
It means we may want to focus on a system that helps us browser data entry events.
Search
Search capability is required for two different contexts: Current data, Contribution event log.
Compile a data view as the sum of data entries
Each visualization of the data, regardless of their format, is the result of changes that has been made on a given resource (e.g. Feature, Specification, Browser, Labels)
In order to support moderation, and the underlying need to allow removal of unaccepted data, we must have a system that handles ways to apply changes in an ordered manner.