Slide 1

Slide 1 text

A Support Engineer for Small Starup サポートエンジニア Night vol.3 presented by TRESURE DATA “PLAZA” Akito Kasai Sider, Inc., 2018/7/18

Slide 2

Slide 2 text

Akito Kasai (笠井 彰人) - @a_ksi19 - @akito19 - Sider, Inc - SideCI - 2016.8 ~ 2017.3 - 2017.4 ~ - Support Engineer - 2017.4 ~ Introduction

Slide 3

Slide 3 text

Agenda 1. What is Sider 2. How we support for customers 3. Support Engineer for Sider 4. Tools we’re using for support 5. There are problems for us

Slide 4

Slide 4 text

What is Sider?

Slide 5

Slide 5 text

Sider ● Automated code review service ● Supports 8 languages ● Supports 20+ linters ● 15人くらい ○ サポートは1人 ● 旧名 SideCI ○ ~ 2018-06-13

Slide 6

Slide 6 text

Sider checks ● Pull Requests(only diff) ● チーム固有のルール ○ Querly ○ Goodcheck

Slide 7

Slide 7 text

Tailor-fit Checks for Teams ● Querly ○ https://github.com/soutaro/querly ● Goodcheck ○ https://github.com/sideci/goodcheck

Slide 8

Slide 8 text

How we support for customers

Slide 9

Slide 9 text

遥か昔のサポート(~2016.12) ● 気がついた人がやる ○ だいたい CEO or VPoE ● エラーメッセージがそもそもあまり出ない ○ 長年の経験と勘によるエスパーが必要 ● 1-3 questions / week

Slide 10

Slide 10 text

以前のサポート(2017.1 ~ 2017.3) ● ラウンドロビンを導入してみる ○ 開発者が1週間ずつ持ち回り ○ 当時は4人いたのでだいたい月1で回る皮算用 ● サポート担当週に重めの開発タスクが重なるとつらい ● Admin上でトラブルシューティングできるようなる ● 担当になった人が不在の場合困る ○ 結局以前のお気持ちでやる体制に戻る ● 専任者を置こう

Slide 11

Slide 11 text

「サポートエンジニア」ロール登場

Slide 12

Slide 12 text

今のサポート(2017.4 ~) ● 自分が専任になった ○ 重めの開発とサポートの担当が重なる問題は解消 ● 現状1人 ● 自分が不在のときは誰かに手伝ってもらう ○ 今日とか ○ 誰がやるのか問題は未解決

Slide 13

Slide 13 text

やっていること ● 問い合わせに対する調査・返答 ○ Sider導入 ○ 料金・決済 ○ 解析エラー/失敗 ○ その他の不具合 ● ドキュメントのメンテナンス ○ 職務範囲というわけではない ○ 自分が行うことが多い ● 期日が特に決まっていない開発タスク

Slide 14

Slide 14 text

Support Engineer for Sider

Slide 15

Slide 15 text

Siderのサポートエンジニア ● さまざまなプログラミング言語を扱う機会がある ● さまざまな解析器を扱う機会がある ● コードに触れない日はほぼない

Slide 16

Slide 16 text

さまざまなプログラミング言語を扱える ● サポートしている言語の数だけ対応する必要がある ○ Ruby, JavaScript, PHP, Java, Python くらいの順 ○ RubyとJavaScriptで全体の半数くらい ● たぶん業務で扱える数としては多い方 ○ Siderのアプリケーションは概ねRuby ■ Ruby, JavaScript以外を書くことは多くない ○ 今は挙動の確認やテストの用にサンプルを書く程度

Slide 17

Slide 17 text

さまざまな解析器を扱える ● サポートする解析器 ○ 23個(2018年7月18日現在) ○ すべてOSS ■ 英語力 ● 1番多い問い合わせは解析結果に関するもの ○ トラブルシューティングのためにみる機会が多い ○ コード読んだり動かしたり ● あわよくばコントリビュートチャンス

Slide 18

Slide 18 text

コードに触れない日はほぼない ● 開発タスクもある程度行う環境 ○ ≒ 問い合わせ件数が少ない? ● 説明のために、Siderの動きを把握する必要がある ○ Webアプリケーション ○ ソースコードの取得・差分管理用アプリケーション ○ 解析器を動かすアプリケーション ■ 解析器(OSS) ■ 解析器をラップするアプリケーション ● 日常業務がそのままドッグフーディングになる

Slide 19

Slide 19 text

Tools we’re using

Slide 20

Slide 20 text

Tools ● Intercom ● Sider(Admin) ● Inspectlet ● Bugsnag ● Loggly ● AWS CloudWatch

Slide 21

Slide 21 text

Intercom ● チャット ● メッセージ送信 ● Email送信

Slide 22

Slide 22 text

Intercom

Slide 23

Slide 23 text

Intercom

Slide 24

Slide 24 text

Admin ● 解析結果関連 の問い合わせ

Slide 25

Slide 25 text

Admin ● 各解析ごとに9つのステータスがある ● 解析結果の問題は、Statusで原因の絞り込みが可能 ○ Siderの問題(サーバ、コンテナの実行エラー等) ○ 解析器の問題(解析器の不具合等) ○ 設定の問題(設定ファイルの文法エラー等)

Slide 26

Slide 26 text

Inspectlet ● 行動トラッキング ● UIの問い合わせ ● セキュアな情報はマ スクできるので便利

Slide 27

Slide 27 text

Bugsnag ● バグトラッキング ● エラーがスパイクし ているかの確認

Slide 28

Slide 28 text

Loggly ● ログ解析ツール ● Sider起因のトラブル シューティング ● Jobの挙動を見るとき ● 最近の利用は減った ○ Adminの拡充

Slide 29

Slide 29 text

AWS CloudWatch ● アプリケーションのモニタリング ● マイグレーション後の確認 ● 最終手段 ● サポートで利用したことはほぼない(1, 2回) ● Logsくらい ● Metricsはサポート時は使わない

Slide 30

Slide 30 text

There are problems for us

Slide 31

Slide 31 text

問い合わせ件数が増えてくる ● 前年同期間比 123.83% ○ 2018.1.1 - 7.17 / 2017.1.1 - 7.17 ○ 7.5ヶ月で291件なので、まだ当分1人でいけそう

Slide 32

Slide 32 text

指標がなにもない ● 気持ちドリブン ○ なるべく早く返す ○ 不具合の回答は、なるべく詳細や経緯を含める

Slide 33

Slide 33 text

時差 ● だいたい10-20%は国外 ○ アメリカ東海岸〜中東あたりまでのタイムゾーンからの問 い合わせはすぐ返せないことが多いので、離脱が増える ■ 労働基準法 ■ 原則翌日に返答 ■ 取締役に任せる

Slide 34

Slide 34 text

まとめ ● さまざまな技術(主にプログラミング言語・解析器)を扱う ● サポートするとき複数のサービスを組み合わせて行う ○ 推測したりお客さんの手を煩わせる回数を減らせる ● サポートを行う上での指標等はまだない ○ どれくらいの規模のときに導入するものなのか...