Slide 1

Slide 1 text

グローバル
 リモー ト業務を
 ⽀える技術とUI LENA MORITA

Slide 2

Slide 2 text

@mirka Software Engineer at Automattic Co-Director at
 Women Who Code Tokyo LENA MORITA

Slide 3

Slide 3 text

パーソナル
 リモー ト業務を
 ⽀える技術とUI LENA MORITA

Slide 4

Slide 4 text

@mirka ! Bluetoothボタン

Slide 5

Slide 5 text

@mirka PROBLEM

Slide 6

Slide 6 text

@mirka Bluetoothボタンを テーブルに貼っておく 朝⾷時に押す SOLUTION

Slide 7

Slide 7 text

@mirka 昼⾷、 ⼣⾷、 就寝の ⽬安時間が カレンダーに登録される

Slide 8

Slide 8 text

本題

Slide 9

Slide 9 text

and more!

Slide 10

Slide 10 text

WordPress.com — React/Redux SPA 2014–present

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

@mirka Uruguay United States UK (from Spain) Slovakia Romania Japan Philippines Denmark MY TEAMMATES BY COUNTRY

Slide 13

Slide 13 text

@mirka ⾃由な時間と場所で働ければ 多様で優秀な⼈材が集まる 新しい働き⽅を可能にする
 ツール・仕組みが必要 WHY?

Slide 14

Slide 14 text

@mirka リモートワークの弱みを 強みに変える

Slide 15

Slide 15 text

ワークツールの内製ってどうなの

Slide 16

Slide 16 text

@mirka BOUNDARIES OF SCALE Users Supply chain Remote work

Slide 17

Slide 17 text

@mirka • 雑に開発される • メンテされない • デザイナー不在 ツール内製あるある

Slide 18

Slide 18 text

@mirka 社内で必要なものを サービス化前提で開発するメリット ✓ 開発リソースが割ける ✓ ドッグフーディング ✓ 本事業も強くなり好循環 Cloud infrastructure Logistics

Slide 19

Slide 19 text

作ったもの

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

@mirka PROBLEM リモートで働く カスタマーサポートの スケジュール管理

Slide 22

Slide 22 text

@mirka カスタマーサポートの特徴 • 時間ごとのニーズ予想に基づいた⼈員配置 • メール、チャットなど複数の持ち場 • 担当プロダクトがいろいろある

Slide 23

Slide 23 text

@mirka Automattic カスタマーサポートの特徴 • 300⼈いる • タイムゾーンばらばら(ノマドも) • ⾃由シフト制 • 有休無制限(休みは申告制で規定の祝⽇なし) 既存ツールでは ちょっと無理ぽ

Slide 24

Slide 24 text

@mirka SOLUTION 徹底的な タイムゾーン対応

Slide 25

Slide 25 text

@mirka 従業員のタイムゾーン ユーザごとの設定

Slide 26

Slide 26 text

@mirka 従業員のタイムゾーン ユーザごと ▸ 1⽇ごとの設定

Slide 27

Slide 27 text

@mirka 従業員のタイムゾーン シフト未提出の 週から変更される ユーザのタイムゾーンを変更すると?

Slide 28

Slide 28 text

@mirka 表⽰に使うタイムゾーンを 切り替えるだけでいいのでは? 従業員のタイムゾーン

Slide 29

Slide 29 text

@mirka 表⽰に使うタイムゾーンを 切り替えるだけでいいのでは? Timestamp 1592085821 14 Jun 2020
 7:03 UTC+9 13 Jun 2020
 22:03 UTC+0 従業員のタイムゾーン

Slide 30

Slide 30 text

@mirka “⽇付”に紐づいた情報も必要 • 従業員Aにとって、“4⽉10⽇” は休みだった • 従業員Bにとって、“6⽇1⽇” は6時間働いた 従業員のタイムゾーン

Slide 31

Slide 31 text

@mirka “⽇付”に紐づいた情報も必要 従業員のタイムゾーン シフトの時間データ 表⽰時にタイムゾーン変換 1592085821 UTC+9 ▸ 14 Jun 2020 7:03 UTC+0 ▸ 13 Jun 2020 22:03 ⽇付ごとのデータ タイムゾーン固定 2020-06-01 Africa/Lagos +

Slide 32

Slide 32 text

@mirka 全員の俯瞰図(1⽇) 従業員のタイムゾーン

Slide 33

Slide 33 text

@mirka 全員の俯瞰図(1⽇) 従業員のタイムゾーン

Slide 34

Slide 34 text

@mirka 全員の俯瞰図(1⽇) 従業員のタイムゾーン 24 h June 3rd in UTC 12 h 12 h

Slide 35

Slide 35 text

@mirka PROBLEM スケジュール作成作業が だいぶ煩雑

Slide 36

Slide 36 text

@mirka Start Jun 3, 2020 10:00 End Jun 3, 2020 12:00 既存のシフト管理ツールは ⽇時の⼿⼊⼒がほとんど

Slide 37

Slide 37 text

@mirka SOLUTION 複雑な作業が苦にならない UI インタラクション

Slide 38

Slide 38 text

@mirka ネイティブ級のマウス操作 作り込んだUI

Slide 39

Slide 39 text

@mirka ネイティブ級のマウス操作 作り込んだUI Gesture recognizer compose( selectRange, resize, drag, hover, fillRange, ... ) Gesture object { type: "drag", startContext: { time: 40320, row: 3, x: 1116, y: 245, }, ... } Raw browser events Apply gesture applyGesture( options, gesture, blocks ) MouseEvent KeyboardEvent

Slide 40

Slide 40 text

@mirka ネイティブ級のマウス操作 作り込んだUI compose( selectRange, resize, drag, hover, fillRange, ... ) { type: "drag", startContext: { time: 40320, row: 3, x: 1116, y: 245, }, ... } applyGesture( options, gesture, blocks ) MouseEvent KeyboardEvent Gesture recognizer Gesture object Raw browser events Apply gesture

Slide 41

Slide 41 text

@mirka ネイティブ級のマウス操作 作り込んだUI compose( selectRange, resize, drag, hover, fillRange, ... ) { type: "drag", startContext: { time: 40320, row: 3, x: 1116, y: 245, }, ... } applyGesture( options, gesture, blocks ) MouseEvent KeyboardEvent Gesture recognizer Gesture object Raw browser events Apply gesture

Slide 42

Slide 42 text

@mirka ネイティブ級のマウス操作 作り込んだUI compose( selectRange, resize, drag, hover, fillRange, ... ) { type: "drag", startContext: { time: 40320, row: 3, x: 1116, y: 245, }, ... } applyGesture( options, gesture, blocks ) MouseEvent KeyboardEvent Gesture recognizer Gesture object Raw browser events Apply gesture

Slide 43

Slide 43 text

@mirka 隣接ブロックのマージ 作り込んだUI

Slide 44

Slide 44 text

@mirka ⽇付変更線のスライド 作り込んだUI ↑ 従業員ごとの⽇付変更線

Slide 45

Slide 45 text

@mirka 作り込んだUI

Slide 46

Slide 46 text

@mirka Product Hunt デイリー2位

Slide 47

Slide 47 text

いま作ってるもの

Slide 48

Slide 48 text

@mirka コミュニケーション プラットフォーム

Slide 49

Slide 49 text

@mirka リモート組織の真のすごさは “在宅で働けること”
 ではない

Slide 50

Slide 50 text

@mirka 同期&⼝頭 から ⾮同期&⽂章 へ Sync → Async
 Verbal → Written リモー ト組織のポテンシャル オフィスでの働き⽅を オンラインで再現

Slide 51

Slide 51 text

@mirka ⾮同期・⽂章型コミュの強さ • 思考の明晰化 • その場にいなくても
 誰でも読める・参加できる • いつまでも残る • 検索可能

Slide 52

Slide 52 text

@mirka WITHIN AUTOMATTIC COMMUNICATION TOOLS 1:1 Pair coding Team call ⼤事なこと 残しておくこと 流れてもいいこと プライベートな会話 同期性が⾼い ⾮同期

Slide 53

Slide 53 text

@mirka

Slide 54

Slide 54 text

@mirka FEED WIKI フォローすれば勝⼿に流れてくる タイムリーに読みたい 書き⼿が明確 知りたいときに読みに⾏く ⻑期的に有⽤ 誰でも編集できる Notion, Google Docs Blogs, Twitter, Slack +

Slide 55

Slide 55 text

@mirka チームやトピックごとに1つのP2 Team A Team B Design Marketing 組織ごとのP2ネットワーク

Slide 56

Slide 56 text

@mirka Team A Team B Design Marketing 組織内のユーザはどこにでも投稿できる Write

Slide 57

Slide 57 text

@mirka Team A Team B Design Marketing 組織内のユーザはどこにでも投稿できる Write クロスポスト

Slide 58

Slide 58 text

@mirka Team A Team B Design Marketing 興味のあるトピックをフォロー Read

Slide 59

Slide 59 text

@mirka Fei Wong Jessie Fortman Event supplier contract Reply Follow Like • デザイン考察 • 新機能の計画 • 契約書の確認願い • 新しいプロセスの提案 • 質問、意⾒、感想 • 完了報告 投稿の例 コメントの例 FEED

Slide 60

Slide 60 text

@mirka Fei Wong Jessie Fortman Event supplier contract Reply Follow Like FEED @Fei Wong #contracts • デザイン考察 • 新機能の計画 • 契約書の確認願い • 新しいプロセスの提案 • 質問、意⾒、感想 • 完了報告 投稿の例 コメントの例

Slide 61

Slide 61 text

@mirka Fei Wong Jessie Fortman Onboarding tasks Contributors • FAQ • オンボーディング • ドキュメンテーション ページの例 WIKI

Slide 62

Slide 62 text

@mirka 圧倒的 ⾒える化

Slide 63

Slide 63 text

最後に

Slide 64

Slide 64 text

THANK YOU!