Core Platform Team
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. See MediaWiki Engineering Group instead, since 2023. |
The Core Platform Team has the primary responsibility for the Platform that supports the projects of the Wikimedia Movement. The platform is comprised of MediaWiki and the Wikimedia service infrastructure which provides our services, APIs and tools. Additionally, the team supports MediaWiki as a FLOSS product to be used by 3rd parties to host and share knowledge in a variety of contexts.
This team was formed in July 2018 by merging the MediaWiki Platform team and the Services team. In July 2020, the team was evolved into a larger Platform Engineering group with separate workstreams for "MediaWiki Expedition", "API", "Data", and "Platform Operations and Dumps".
Core Platform
Leading the maintenance and improvement of the MediaWiki platform and Wikimedia service infrastructure
|
Mission
[edit]We shepherd Wikimediaâs essential software and infrastructure technologies enabling our users and developers to unlock free knowledge.
Our values and how we model them in our work
[edit]Knowledge sharing
[edit]- We continually learn and hone our skills to apply the best solutions to challenges
- When learning something new, we aim to share it with both within and outside the team and encourage others to do the same
- We proactively share our knowledge, collaboratively work on solutions, and provide mentoring whenever we can
- We prefer to aid others in achieving their goals, rather than solving problems for them. This both empowers them and makes our team and organization stronger
- We actively and frequently talk to our teammates about their work and challenges over simply asking them if they need help.
Clear and respectful communication
[edit]- We ensure all voices are heard in discussions by asking the opinions of others who have not spoken up.
- We give detailed code reviews and try to communicate the âwhyâ as well as the âwhatâ.
- When we offer criticisms, we also offer help and assistance getting to a solution.
- We volunteer our thoughts and perspectives while considering and respecting the thoughts and perspectives of others
- When we offer criticisms, we are careful to re-evaluate our own assumptions and are open to changing our minds.
Quality work
[edit]- We strike a balance between constraints and long-term implications of our work
- We follow the architecture principles whenever possible and be sure to communicate our rationale to others when we donât
- We focus on projects that deliver clear and measurable impacts
- We use experiments to figure out new paths while minimizing risks in order to overcome challenges
- We use our own products for our work whenever possible in order to better understand and improve our software.
- We do not hold ourselves to perfection, but we do establish good metrics of success that allow us space to experiment while minimizing risks
- We keep the codebase clean and hold others accountable to do the same in order to minimize tech debt.
Effective and Inclusive Collaboration
[edit]- We take time to get input from team members on decisions that affect them.
- We always try to finish what we are working on before starting something new.
- We try to solve problems ourselves first because we value the time of our teammates, but we donât wait too long before asking someone else because we also value our own time.
- We make an effort to promptly respond to messages so to not block other team members.
- We keep our code reviews focused on facilitating merging, minimizing feedback that are not required for the codeâs goal and provide actionable comments
- We collaboratively support other teamsâ goals by proactively asking them for their needs and requirements and providing them timely responses and concrete decisions and feedback.
- We keep our priorities clear and work on what is most important.
- We give people the space, opportunity and trust to grow, even if it means the most skilled person isnât working on a task.
Goals
[edit]- To lead the maintenance and improvement of the MediaWiki platform.
- To assist and encourage feature development on top of MediaWiki by providing developers with a clean and elegant core.
- To provide value for end users by undertaking feature development work which is primarily architectural in nature.
- To create and publish a MediaWiki roadmap to assist planning of internal and external users.
- To establish guidelines and standards for the MediaWiki core code.
- To automate monitoring, metric reporting and logging for Wikimedia services.
- To keep the majority of services simple and stateless by offering general multi-datacenter storage and change propagation solutions.
- To make our infrastructure more flexible, robust and efficient by gradually migrating from a monolithic architecture to micro-services.
Roadmap
[edit]An updated list of projects we're working on is visible in Phabricator on the Platform Engineering Roadmap.
Platform Engineering Team Initiatives
[edit]The Platform Engineering Team work process involves a number of stages that derive from the PET Roadmap, which maps at a high level the layout of all initiatives that the PET is responsible to complete or support. Initiatives are drawn from the PET Roadmap and entered into PET Initiative Planning. The Director, Senior Project Manager, Product Managers, Engineering Managers and Technical Leads are responsible for the work of developing the initial outline to a full proposal decomposed into Epics and Tasks ready to be scheduled and implement by Engineers.
All PET Initiatives are published and updated through out planning and implementation on our wiki.
The PET is composed of 2 functional teams specialising in Distributed System and Storage, and Features, Data and Content. Within PET we break down into 3 core teams, 2 teams focused on product work and 1 Clinic Duty Team. Our work process is agile based using 2 week sprints. The content of the sprints is determined in pre-sprint planning. Product teams are formed based on the functional requirements of the projects to be undertaken while the Clinic Duty team is rotated on a sprint by sprint basis.
Work Processes
[edit]Individual Goals
[edit]Members of our team set goals each quarter in order to support other team members and their own professional development.
Workboards
[edit]- #platform-engineering
- This board contains our Inbox and a set of columns identifying the Initiatives we are working on and the prioritized tasks of work to complete each
- #platform-team-workboards
- This board contains the PET Icebox and each of our sub team work boards
- #sf-contract, our contractor workboard
- #cpt-clinic, our Clinic Duty Team workboard
- #cpt-prod-green, Product Team
- #cpt-prod-arch-review, Architecture Team
- This board contains the PET Icebox and each of our sub team work boards
Documents
[edit]- Platform Design Doc Template: File:Platform Design Doc Template.pdf
Development Practices
[edit]Decisions of Record, Architecture and Research
[edit]Team Improvement Working Groups
[edit]Contact the team
[edit]- wikitech-l mailing list
- #wikimedia-services connect IRC channel
- #mediawiki-core connect IRC channel