= Session Themes and Topics=
* Theme: Increasing our technical capabilities to achieve our strategy
* Topic: APIs (+asset delivery)
=Session Leaders=
* Sam Smith (@phuedx) & Joaquin Hernandez (@Jhernandez)
=Facilitator=
* Greg Grossmeier
=Facilitator Instructions=
**Session type: 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.
**Session structure**
Intro
Session format and facilitation instructions
Time: 5 minutes
Get all platforms/clients we want to support with APIs
Format: Small Group Discussion - Reconvene into post-its on walls
- Time: 10 minutes + 2 minutes for context switch
List considerations/constraints (e.g. network characteristics, size of display, whether there’s a display at all, browser available, etc.)
- Format: Working Groups - Group by platform expertise, and write considerations
- Time: 10 minutes + 2 minutes for context switch
Data needs for the different platforms
- Format: Station rotation (group by data expertise who visit different platform stations) or working groups?
- Time: 15 minutes + 2 minutes for context switch
Lead into follow-up session about API tech (optional)
- Format: Presentation
- Summarize information collected
- Explain the next session and what will be discussed
- Ask for participants to attend followup
- Time: 5 minutes
=Description=
In order to define the future APIs of the platform, we must first understand how the APIs will be used and what behaviors they must support. This session will primarily be concerned with APIs supporting client user interfaces.
=Questions to answer during this session=
|**Question**|**Significance: Why is this question important? What is blocked by it remaining unanswered? **
|Which client “UIs” do we support with our APIs? How can we support apps, mobile and desktop use cases? What about upcoming platforms (watch, voice-enabled devices, VR, etc.)? Any others? |We want to identify as many potential use cases for our APIs as possible, new or upcoming. These varying use cases constrain possible solutions.
|What data should be decomposed and exposed through APIs? How will data be composed into rendered HTML or other UIs? Any considerations regarding: Where does localization of data (e.g. dates) occur? What about authenticated vs unauthenticated users? What about low bandwidth/intermittent network environments? Are there any exceptions to decomposing data in this way? |A decision on this workflow is required in order to make decisions on implementation and supporting technologies. Example pages that can’t be decomposed cleanly: maybe some special pages
|To support existing clients, what technologies do we need given the API first and data first architecture? |The level of support required for existing clients must be decided so that a solution can be architected. Trade-offs will need to be made in order to support existing clients while still providing support for advanced modern use cases.
=Scribe Instructions=
Please make a copy of the notes worksheet located here to take notes: https://docs.google.com/document/d/1J-wTeelHFGeXw6dO1ywkGr0NfnzG-cUykowc6aSKoWE/edit?usp=sharing
=Facilitator Instructions=
Use this document for reference: https://docs.google.com/document/d/1pFQvlcFZ4AdJjvnxH5YPOFqloOpB_rORfgrmiNRZX1w
= Resources: =
* Session Guide: https://www.mediawiki.org/wiki/Wikimedia_Technical_Conference/2018/Session_Guide
= Session Structure =
* **Define session scope, clarify desired outcomes, present agenda**
* Discuss Focus Areas
** Discuss and Adjust. ''Note that we are not trying to come to a final agreement, we are just prioritizing and assigning responsibilities!''
** For each proposition [add etherpad link here]
*** Decides whether there is (mostly) agreement or disagreement and the proposition(s).
*** Decide whether there is more need for discussion on the topic, and how urgent or important that is.
*** Identify any open questions that need answering from others, and from who (product, ops, etc)
*** Decides who will drive the further discussion/decision process (ie: a four month deadline)
* Discuss additional strategy questions [add etherpad link here]. For each question:
** Decide whether it is considered important.
** Discuss who should answer it.
** Decide who will follow up on it.
* **Wrap up**
= Resources: =
* ...
----
**Session Leaders** please:
[] Add more details to this task description.
[] Coordinate any pre-event discussions (here on Phab, IRC, email, hangout, etc).
[] Outline the plan for discussing this topic at the event.
[] Optionally, include what it will //not// try to solve.
[] Update this task with summaries of any pre-event discussions.
[] Include ways for people not attending to be involved in discussions before the event and afterwards.
----
Post-event Summary:
* ...
Action items:
* ...