はてなブログの実例で学ぶ「はてな流」大規模Webサービス開発の勘所
supporterz-seminar.connpass.com
これにきた.はてなのイベントずっと行きたいと思っていたけど今日になった.講師はmasawada(id:masawada)さん
メモ
はてなのサービス
社員118人.ブログチームは東京の方が多い
企画とキックオフ
企画を仕様に落とし込む
こよみモード
- ミーティングを重ねて仕様を検討
- ひとまずデザインモックを作成
- ドックフーディングをした
最初は手を動かし過ぎない,なるべく小さい工数で
インセプションデッキ:プロジェクトで確認しておくべきことをまとめておくテンプレート.
プロジェクトの方向性の合意を形成する
予想できる問題点を事前に洗い出す
仕様の判断時のコミュニケーションパスを定める.相談する相手を相談する.
- 我々はなぜここにいるのか:何のためにチームを組むのか,顧客は誰なのか,プロジェクトが始まった理由は何なのか
- やらないことリストを作る
- ご近所さんを探せ:顧客以外の関係者を事前に見定める,仕様を決めるときに相談すべき相手.
- 夜も眠れなくなる問題は何だろう
- 期限を見極める
- 何を諦めるかをはっきりさせる:トレードオフスライダーを書く,スコープ,予算,時間,品質の4点のどれを優先するか
開発
- 梅案(必要最低限),竹案(いい感じの中間点),松案(作り込みが最大の仕様)を用意する.機能を追加するのは簡単,減らすのは難しい.ひとまず梅,竹を追加する.
- リリースできる時間を決める:アクセスが多い時間にリリースしない.
- テストとデプロイをシンプルに,素早くする.:なるべく自動化する.自動化できない場所は手順書を自動生成する.デプロイを高速化し障害の時間を短くする.はてなは結構な頻度でデプロイしている.「はてなブログ デプロイ」で検索
- リリースアンチパターン:開発の全てを1つのプルリクで作業する,リリース大会場ブランチを作って細かく作業して,最後にマージ
- リリースパターン:UI以外の部分かr作ってちまちまmasterにマージ,UIをページごと隠して作っておいて最後に動線をだす,HTMLの一部分だけユーザーに隠して開発を行う
- 常にタスクを分割できないか考える,1日1プルリクくらいまでは細かくできるといい.
- 撤退は大変.ライブラリなどは撤退が予期できるので見ておく.
KPT(keep problem try)で振り返ろう
アクションプランを立てる会.月に1度全員京都に集合.スプレッドシートで. +をつけて行き多かったものについて議論する.
YWT(やったこと わかったこと 次にやりたいこと)もある.
PGUでサービスの変異を察知する
なぜやるのか:アプリケーションの以上を察知するため.システムの限界を予想するため.障害などの振り返り
1ヶ月ごとに開催.WebアプリケーションエンジニアとWebオペレーションエンジニア.司会は持ち回り.
Mackerelおもしろ活用術
サーバー管理.監視ツール.
- デプロイにかかった時間
- Pull Request数:エンジニアの忙しさがわかる
- アップデートが必要なnpmモジュールの数
内定承諾も終えて,実際にチームWebアプリケーションプログラミングに生かす気持ちで聞けた.