~アジャイル開発セミナー編~

シリコンバレーインターン中のはむへいです。
今日は会社で"Agile Software Development"という研修を受けました。
話を聞くだけでは退屈なので、もなかにちょこちょこ覚え書き。

        • -

Agile Development Cycle

プロジェクトの参加者:
プロジェクトオーナー、プロジェクトマネージャー、ストックホルダー、スクラムマスター、チームメンバー(含む、エンジニア、デザイナー、テスター)

1. Release Planning Meeting

偉い人を交えてプロジェクトのリリースプランと、その合意と承認をえるためのミーティング。プロジェクトの第一歩。やっほーい。

2. Iteration 0

プロジェクトを始める為ののセットアップ。
大雑把な仕様書のようなものをここで作ってしまう。
※因みに、Iterationというのは開発期間の1単位で、僕らの場合はだいたい1週間くらい。これの繰り返しでサービスをブラッシュアップして行く。

3. Iteration N Planning

Itereationの計画フェーズ。
今後一週間のIterationで、プロジェクトのどの部分を作って、どこを次回以降のIterationに後回しにするか、誰がどのタスクにアサインするかを、みんなで合意の元に決めます。
タスクを割り振るときに、スクラムマスターが担当開発者に「このタスクは何ポイントか?」と聞きます。
各開発者は1Iteration(フルタイムで週5日)につき8ポイントを持っていて、そのタスクにどれくらいのポイントを消費するかを前もって自ら評価するのです。
※「こんなのは1日あれば充分だろう!」って押し付けるのは絶対NGらしいです。
タスクが8ポイントより大きくなるようなら、そのタスクは粒度が大き過ぎるということなので、その場でタスクの分解作業に入って振り分け直します。
(ところでなんで8ポイントなんだろう?フィボナッチ数列が関係しているらしいけど、何故かは分からない...)

4. Iteration N Implementation

各自割り当てられた機能をひたすら作っていくフェーズ。
...と言っても、1週間ずっと放置される訳ではなく、前の日の進捗とその日にやることを朝の5分くらいで報告し合う"Daily Standup"というミーティングがあります。
なにか問題や気付きがあればここで共有し、解決策を聞くなり次回以降のタスクに加えるなりします。

5. Iteration N Testing

開発フェーズと平行して進める個々で各タスクのテスト。
うちは兼任だけど、専属のテスターがいることも。

6. Iteration N Demo/Acceptance

1週間のIterationの最終日に、各自割り当てられたタスクをどのように解決したかをデモで発表。
それまでに個々でテスターとテストもしてるのできっと大丈夫!ここでOKが出れば、そのタスクは終了。次週はもっと楽しい仕事が出来ればいいな。

7. Pre-Release

Iterationを何度も回して、プロダクトが最低限ミニマムな形で実装されれば、ついにプレリリースです。
最終のシステムテストやユーザアクセプタンステストを経て、限定的にリリースされます。
※プレリリースしている間も開発チームは改善の為にIterationを回し続けてます。タスクには優先度が設定されていて、プレリリースを済ませても、優先度の低いタスクは
まだまだ殆ど無限と思えるくらい残っています。
プロダクトが真に完成することは無い!ということですねー。

8. Production

プレリリースで問題が無ければ、製品として日の目を見ます。
それまでの苦労が報われました。これで明日からもがんばれますね! いえーい☆

Agile Key Principles

アジャイル開発をする人間に求められる精神☆

Early delivery

一番重要なのは、優先度の高いいくつかの機能だけに絞り、それらを高いクオリティ実装し、それらをとにかく早くユーザに届けること。

Frequent delivery

アップデートは頻繁に。数週間に一回とかがいいでしょう。

Intense Collaboration

開発メンバー間のface-to-faceのコミュニケーションをできるだけ持つようにしましょう。問題を一人で抱え込んで時間を無駄にしないように!

Keep software simple

アジャイル開発に変更はつきもの。どんな仕様変更でも受け入れられるように、ソフトウェアの構成はシンプルに!

Welcome changing requirements

そして改善するための仕様変更は、例え開発の終盤だろうが、喜んで受け入れる精神を!

Just enough documentation

そんな長いドキュメント誰も読まないよ。
どうせちょくちょく書き直すことになるんだから、必要なことだけスパっと書きましょう。

        • -

と、こんな感じのことを言っていたと思います(英語なのであまり自信はありませんが)。
ああ、毎日楽しいな!^^