Wikimedia Technical Conference/2018/Session Guide

Overview
The sessions for TechConf are designed to answer specific questions which will enable the Platform Evolution Program team to develop and execute a 3-5 year technical roadmap for the platform.

The sessions and questions were created through aggregating feedback from stakeholders throughout the Wikimedia Foundation, Wikimedia Deutschland, movement volunteers and 3rd party users of the platform.

Questions range from gathering use cases, discussing architecture principles, planning to solve technical problems, uncovering steps to remove blockers, and developing processes that will allow us to make changes to the platform over the next 3 years in a systematic way which is inclusive of feedback from stakeholders and is respectful of our communities.

In order to have a wide array of viewpoints, the conference committee has invited product managers, designers, community members and 3rd party developers along with engineers. Additionally, many budget owners for teams within the WMF are also invited to ensure any outcomes are grounded in the context of our resources and time.

Conference Structure
The conference is designed around several themes. Each theme has several topics, which themselves are broken down into sessions. Each session has multiple questions to answer.

The flow of the conference looks at our platform from the outside, inward. This means we look at the users we serve and the products we build, move into features and then into technical problems. At the end of the conference, we will regroup and review what we have answered and discuss how to turn our work from the conference into a roadmap.

Much of the conference is focused on enabling engineers to solve problems after the conference. Sessions are designed to get agreements on use cases, requirements, and principles that can be used as a guide when developing technical solutions.

Session Structure
The sessions themselves are very much about problem-solving and not writing code. We want to use the rare opportunity to have face to face discussion which can lead to concrete next steps for moving our platform forward to support our movement strategy.

In addition to having a topic and theme, sessions also have a type to describe the general purpose of each session. Session types are listed below in this document.

Each session also has several questions to answer. To provide context for each question, we have also attached a description of the significance of that question and why it is important to answer for technical planning.

In order to answer questions, sessions will have one or more activities that will be used to answer questions. Session leaders will develop the activities along with members of the TechConf committee.

Session Leader process before TechConf
Session Leaders will be provided a session sheet which will be used to guide the session. Each sheet has several questions which the session should try to answer along with the significance of each question.

Committee members and session leaders will discuss and refine the questions prior to the conference. They will also work together to select the appropriate activity or activities to uncover the answers to questions.

While working to refine sessions, session leaders are expected to provide the domain knowledge for each session, ensuring that questions make sense and will actually achieve the desired goal. Committee members are expected to make sure that sessions remain true to solving the issues outlined by stakeholders and that each session fits into the rest of the conference as a whole.

Session Process at TechConf
Each session will have one or more leaders, a facilitator and a scribe.

Full role descriptions TBD, see: https://www.mediawiki.org/wiki/Good_meetings#Roles

Setup
Each session starts out with handing out of session setup notes. Groups can read together before starting.

Activities
After everyone has an understanding of the session, the session leader and facilitator will begin the activity (or activities) designed for the session. This may involve breaking the session into smaller groups. Try to keep groups small to have productive discussion.

Documenting
Each session will have a dedicated scribe to document the session. When breaking into smaller groups, please note that the scribe may need some help to keep up with note taking.

Publishing notes
At the end of each day we will have dedicated time to take scribe notes and publish them in Phabricator.

Creating morning briefs
Also at the end of each day Conference Committee members will work with session leaders and scribes to create morning briefs for the next day that attendees can read as they get coffee and settle in

Session Guidance for facilitators

 * Activities should be inclusive - get opinions from different viewpoints
 * Activities should be active
 * Activities should be designed to answer questions, try to avoid open discussion
 * Keep discussions small - large discussions tend to be unproductive and slow
 * Keep discussions focused on answering the questions, allow brainstorming, but bring
 * If work is too much, divide and conquer. Break into small groups and work on
 * Computers closed :)
 * For brainstorming activities, hold off thinking about constraints such as resourcing
 * If you can’t answer a question, make sure you know why and write it down
 * If the question is wrong, make it right so you can answer it
 * If you uncover more questions, answer them if you can, and if not write them down and figure out who can answer them
 * Agreement is good, but if you can’t agree:
 * list the trade-offs of competing answers
 * provide action items and questions to get to unblock the answer
 * Say who you think can answer questions and make the decision

Product Vision
These sessions provide an opportunity for product owners to communicate vision for products that they build. The information from these sessions provide context for both the use cases we serve and the technologies we choose.

Evaluating Use Cases
This type of session is examining at a set of use cases that have the potential to generate requirements which significantly impact the architecture. The questions are designed to remove ambiguity about the use cases and identify key features that will result in us being able to unblock architecture decisions.

Technical Challenges
This type of session is looking at a current technical challenge which is impacting our ability to deliver software and/or maintain our infrastructure. The questions are designed to get alignment on issues and goals and identify concrete actions that we need to take to implement a solution.

Status Updates
Practically we won’t have time to discuss all subjects that stakeholders and attendees feel need to be discussed. In addition, some projects are already in process to address some of our major issues and we just need to provide space for updates to be given. These sessions are the venue to do both of these activities.