6月19日,
イベント開会の挨拶 ~DevLOVEとは
DevLOVE主催者である市谷聡啓氏
HangarFlight
飛行機乗りにとって,
「チーム開発をスムーズにするために何ができるか」
「言いたいことは本に全部書いてある」,
今回は本の中身に少し触れつつ,
チーム開発の課題
チーム開発について語る前に,
- プロジェクトの目標が定まっていない
よくある過ちで
「プロジェクト達成の定義」 がされていない状態でプロジェクトが進むことがある。これでは, いつまでたってもプロジェクトが完了することはない。 - 誰が要件を決めるのか不明
誰がOKと言えば良いか,
決裁者が不明のままプロジェクト進行することがある。また確認する人が居ない状態でプロジェクトが進むと, 最終成果物が思っていたものと違う可能性もある。 - 価値を提供できているのか不明
プロジェクトの目標や要件が決まっていても,
そこに価値がなければ成功とは言えない。プロジェクトを進める意義はあるのか, 利益が度外視されていないかなどの共通認識で持っておく必要がある。 - リスク管理ができていない
いわゆるプランBが無い場合に一つの失敗ですべてが破綻するプロジェクトもある。プロジェクトを進める上で,
リスクヘッジのための代替策は用意しておくべき。 - チームがパフォーマンスを出していない
一人で開発していた時のパフォーマンスが100%の時,
2人になったからといって200%にはならない。
これらを言い換えると,
- ゴールはどこ?
- 決めるのはだれ?
- 利益は出るの?
- リスクは見えているの?
- チーム開発はうまくいってるの?
「見ての通り,
「チーム開発を始めるにあたって考えるべきこと」
- 方法論はどんなものを使うの?
- コミュニケーションプランはどうする?
- 成果はどう測るのか?
- チームビルディングはどうする?
- 開発ツールはどう使うのか?
ツールで解決できる問題
このようにツールはあくまでチーム開発を進める上で考えるべき事象の一部でしかない。そしてチーム開発は,
プロジェクト > チーム開発 > ツール
チーム開発をしていく上では,
- 市場の変化は早い
- 計画は容易に変わり得る
- 臨機応変に変化に対応しなければならない
これらの課題に対応するためには,
- 遅すぎる開発サイクルはNG
- 複数人が素早く並行して開発できること
- でもデグレードは起こしてはいけない
そして,
- 重要メールが多すぎて優先順位が決められない
- テスト環境で動かしてみるまで,
アプリが壊れていることに気づかない - 自信を持ってリファクタリングできない
- バグの発生時期,
修正時期がわからない, 追跡できない - 開発環境で動くものが本番環境では動かない
- リリースが複雑で属人的,
時間がかかる, よく失敗する
本を執筆するにあたって気にしたこと
ここ3~5年Webを見て実践し続けている人なら新しいツールを活用できるだろうが,
また,
- 予算管理の話
- 工数管理,
見積もりの話 - チームのモチベートの話
- 採用の話
これらはもちろん大事ですが,
逆に
- ツールの紹介
- インストール方法,
コマンド解説 - 事例紹介
- チケット管理,
バージョン管理, CI, CD等々をバラバラに解説
池田氏は,
2012~2013年に起きた開発環境の変化
執筆の話を受けた2012年頃の池田氏の開発環境は次のようなものでした。
- SVN/
Backlog/ Bugzilla/ ReviewBoard/ Jenkins - Git/
Githubはまだ試している段階 - Chef/
Vagrantはまだまだ本格的ではなかった
この当時に執筆していたら今回のような本には仕上がらなかったと言います。なぜなら
自身のトラウマが克服するための自叙伝でもある
特に第2章
「
という言葉で締めくくっていました。