備忘録 (YAPC Tokyo 2013 (はてなのイマドキの開発フロー)

はてなのイマドキの開発フロー
http://onishi.hatenablog.com/entry/2013/09/21/133132

はてなの講演を聞いた時のメモ

開発プロセス管理)

Perl5.14.2

Plack

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利用
ペアプログラミング義務化
やるきっかけないよね→義務化

開発フローにコストをかける

○質問
・背策はトップダウンボトムアップ
 ボトムアップ。誰かやろうといいだしてそこから始まる。

行ってきた時に断片的だけど取ったメモ。
これ以上放置していると忘れそうなので
一応残しておいてまた書き直します。