DEVELOPER INFRASTRUCTURE
— Wantedly Culture —
About me
• Kodai Sakabe@koudaiii
• インフラチーム
• 2015 - Wantedly
• 2010 - 2015 TIS
http://qiita.com/koudaiii/items/bc89368e1279649f2498
WANTEDLY— シゴトでココロオドルひとをふやす—
自分の寿命が縮むことを願う人々
�� �����������
働くを面白くする ビジネスSNS
月間
60万 ユーザ
月間
70万 ユーザ
Wantedlyの提供するサービス
• プロフェッショナル・プロフィール
• 会社訪問・インターン探し
• ビジネス用の人脈管理
• グループメッセンジャーSync←New!
https://www.wantedly.com/users/310906
プロフェッショナル・プロフィール
(= )
Sync
利用社数約
10000社以上
利用社数約
13000社以上
http://jp.techcrunch.com/2015/11/09/wantedly-open-api/
http://japan.cnet.com/news/service/35073141/
Wantedly OpenAPI
https://www.wantedly.com/developers/
本日お話する内容 「現場のDiff = 文化の違い」
Wantedlyの文化 インフラチームの文化
Wantedly Value
Wantedly Value
• Owner Ship
• Leader Ship
• Wantedly Way
コップに水を貯めよう
• 空のコップがひとつあったとして、何かに失敗して、PDCAサイクルを一度回すと、失敗から学んだ分コップに水が溜まっていく
• 最終的に水があふれる時が成功
• その人の姿勢で水の入り具合は変わる
• 意思決定や経験値が高まると、コップも大きくなるし、水の量も変わる
• 誰もが Owner Ship と Leader Ship を発揮していこうとする文化
Owner Ship Leader Ship
Wantedly Way
Wantedly Way
• Code Wins Arguments
• User First
• Simple is Not Easy
Code Wins Arguments
• チームで1時間MTGするならcodeを書いて検証しよう
• エンジニアの場合
• 限られた情報で決断をして、前に進んでいるか
• 仮説をあれこれ考えるより、まずプロトタイプを作って早く学習しているか
• 爆速で動けているか
• 営業の場合
• 自分で良い機能が浮かんだからエンジニアに頼むのではなく
• 企画書を書いて会社を回って、5社程度を確約して、これなら行けると思ったらエンジニアに頼むことが出来るか
User First
• 「もっと速い馬車がほしい」というユーザの声を聞き続けるのではなく、「速く移動したい」というユーザの本質的な欲求に応える行為
• 「言葉 < 行動」
• ユーザーテストで3人間違えるようだったりまごついたりしたら改善して、もう一回試してもらって違う人にも試してもらう
Bad(例: ユーザテスト)
• どうやって●●(機能名)探しますか??
• どうやって改善にしたらいいですか?
• 仮説がなくて、意見をひたすら聞きまくる
Good(例: ユーザテスト)
• 操作している状況をイメージさせる
• シチュエーション・シナリオを描く
• goalを明確に伝え、答え合わせポイントを明確に
• 考えてることを口に出してもらう
• 担当者が答えをいわない
• 困惑した部分をメモる
Simple is Not Easy
• 作る側が使う側の事を徹底的に考え抜いているか
• 足すよりも引いてフォーカスをしているか
• 上限10%も改善しないような施策をしない(KPIが取りにくいのと、その掛けた工数分でもっと有効な改善はなかったのか?)
• 仮説をたてて、その仮説のコアとなる部分だけにフォーカスできているか
Wantedlyのインフラチーム仕事の考え方と進め方
インフラチームが目指していること
スタート時
数年前までエンジニアが少なかった頃
開発チーム インフラチーム
タスク依頼 作業
時が経つと。。。。
エンジニアの増加、サービスの増加
開発チーム インフラチーム
タスク依頼 作業
課題
• 依頼タスクが増加
• 新たなサービスローンチ
• サービスの分割
• 気づいたらインフラチームの作業待ちがボトルネックに。。。
• インフラチームも日々追われる仕事ばかり自分たちのプロジェクトが進められない
どうする?• 一つは開発チームみたいに人を増やす
• もう一つはインフラチームの力をあげること
• 一人あたりどれくらいのサーバ、どれくらいの種類のアプリ、どれくらいのユーザ数を支えているか
• 例: 1万台のサーバを一万人で見ていたら結局1人1台の力しかない
• 1台のサーバー1人で見ていたものを、100台見れると力上がった
• 2011 年の時点で Facebook のインフラチームはわずか 5 人ほどで 10 万台を超えるサーバを管理
Wantedly は後者を目指す!!!!
WHY:何を実現するか?
• Code wins Arguments を可能にするインフラ
• 既存のアプリでも新規アプリでもどんどんデプロイできるように = 変化に強いインフラ
• 変化を避けるインフラではなく、むしろ変更を前提としたインフラ
• 議論や権力ではなく、まず出してみて結果を見る文化を可能にする
WHY:何を実現するか?
「スピード感ある組織にしていくために必要なものは何か」
”「文化とインフラだと思う。どんどん前に進もうとする文化と、それを可能にするインフラに投資をすること」” Mark Zuckerberg
HOW:どう実現するか?
• 自動化
• セルフサービス化
HOW:自動化/セルフサービス化
• インフラの自動化(Code化)
開発チーム インフラチーム
Pull request
インフラを操作できる APIやcode
HOW:自動化/セルフサービス化
• インフラを操作出来るAPIやCodeにする
• 開発チームが自分たちだけで進められる
• インフラチームも開発チームも自分たちの自分たちの仕事に集中出来る
計測方法
• deploy(変更)回数 / 日
• Container数 + ホスト数 + AWS Resources数 / インフラチーム
• 要件を満たしつつインフラコストを下げる
Default CoreOS
仕事の進め方
• 情熱プロジェクトと痛み分けタスク
• GitHub Issue Driven
• GitHub Flow
情熱プロジェクトと痛み分けタスク• インフラチームのタスクは大きく 2 種類
• やりたいと思っているプロジェクト
• 障害対応や開発チームからの依頼などアドホックに生まれるタスク
Issue Driven
• Issueタイトルは直感的なもの
• 説明には必ず「WHY」と「WHAT」を書く
なぜWHYとWHAT
• 自分以外の人とのコミュニケーションに用いているので他人が理解できなかったら Issue を立てる意味がないし、3ヶ月後の自分は他人。
• 集中して作業している同僚への配慮(非同期コミュニケーション+情報共有)
• コメントは粒度の細かい「報告」とも考えられる = マイクロマネジメネントも避けられる
• 突然別のタスクをすることになって、あとでその issue に戻ってきても思い出せる => 「なぜそうしたのか?」 意思決定を忘れずに書いておこう
• チームメンバー間で Issue のバトンタッチが可能になる
GitHub Flow
• シンプルで制約のあるプロセスは、完璧だけど複雑なプロセスに勝る
• RailsだけじゃなくてNginxの設定でも topic branch ->
PR -> merge -> deploy で進める
• 資料作成も基本的にこの方法に従う
• プロジェクトが別でも同じ開発フローなら join しやすい
Github FlowShellScript
インフラチームのWHY
• 創業者のWHYを実現するため、場(仕組みと文化)を新しく作ることに価値を置きます。
• FacebookやTwitter、Appleといった歴史を変えてきた企業には必ず他にはない新しい仕組みと文化となるHOWが支えています。
• より良い仕組みと文化がイノベーションやキャズムを越えることが出来ると信じています。
インフラチームのHOW
• 良い仕組みとは時流にあったシンプルでかつ美しくユーザーフレンドリーで生き生きできるもの。
• 文化は、普遍的な行動指針であり価値観です。組織として共有されていることで文化として表に出てきます
• 私たちは良い仕組みを模索し提供し続けること、大切にしている価値観・行動指針を伝え続けることが大事だと思っています。
インフラチームのWHAT
• 「情熱的に働く手助けをする」という理念は自分たち自身も例外ではなく自分たちが情熱的に働いてなければ周りの人の力になれるはずがありません
• インフラチームでは、各自情熱的に取り組めるプロジェクトを必ず 1 つ持ちます
• 同時に、事業に貢献する必要もあるため、そのプロジェクトは会社としてやるべきことと、やりたいことが重なる領域を選びます
最後に• インフラチームはより多くのユーザーに価値を届けられるよう挑戦しています
• Infrastructure as codeが世の中に定着していますが、そのほとんどが既にあるツールの利用したものが多いと感じています。
• Wantedlyのインフラチームでは、自分たちにとって必要なツールは何か?を考え、必要であればツールの開発行うことをしています
インフラチーム募集中https://www.wantedly.com/projects/33465
ご静聴ありがとうございました
Recommended