備忘録 (YAPC Tokyo 2013 (はてなのイマドキの開発フロー)
はてなのイマドキの開発フロー
http://onishi.hatenablog.com/entry/2013/09/21/133132
はてなの講演を聞いた時のメモ
(開発プロセス管理)
Perl5.14.2
・githubエンタープライズを中心にした開発フロー
・自動化・効率化・安定化のための取り組み・自動化できるものは自動化
標準化するが
チームやサービスにあったもの
(スクラム、etc・・・)プロセスを試行錯誤。の繰り返し。
・タスク管理 ワークフロー
RedMine::Chan
去年のものがあるのでそちら参照。メッセージでタスク管理。
RedMine管理の問題点
isuueが多発(問題が出てくる)github:enterprise
優先度がないGitHubはレビューツールなので、タスク管理ツールと併用
・テスト・CI
・開発の流れ
○master○staging/master
ここで問題を管理する。○topic branch
3段の管理
issue
誰でも登録していいAssigined Isuue
スクラムでいうスクリングドパックド
優先度をラベルで管理isuue 着手したらすぐPull Request上で
仕様のレビューも
デザイナーも
画像はったりいろいろissueの会話を通してやり取りして進めて行く。アサインしたらレビュー依頼
アサイン
同形等の仕事を同じエンジニアにアサインしつづけると→属人化
アイコンをシャッフルでまわして
クリックで決定。反映されるpull-req-label
githubで公開されているので確認。
レビューが溜まってくる
昼過ぎレビュータイム
毎日強制定期に
レビュー待ちフラグのissueを片っ端からレビューしていく。
○テスト CI
開発者の手元でテスト
ファイル変更を自動で検知pushしたら自動でjenkinsでテスト。
jnekinsは3種類
メイン
リリース
テストモジュール
サーバサイドのテスト
テンプレートのテスト
Xslateのコンプレートのテスト
日本語が含まれていないか自動でテストコートがバレッジ
metricテスト
ネストの深さ
メソッドの長さ のチェック
機械的にチェックしている。
○リリース管理
なるべく早くステージング環境に
開発>テスト>テプロイ(ステージ環境で)早くフィールドバック
定期リリース
(毎週水曜日リリース)
そうすると定期リリースに間に合わせようと早まる↓
継続リリース
staging/masterのテストが通ったら自動実行される
リリースのためのチェックリスト
ローカル開発環境
setup スクリプト
すぐに最新の環境にセットアップされるスクリプト
その他の取り組み
ABテスト
リリース速度が早くなるクリック数計測
ある機能実装したときにクリックされているか
アトリビュートを設定していると自動的にクリック率をIRC利用
ペアプログラミング義務化
やるきっかけないよね→義務化開発フローにコストをかける
行ってきた時に断片的だけど取ったメモ。
これ以上放置していると忘れそうなので
一応残しておいてまた書き直します。