アジャイル開発

新サービスの開発に向けて、チームの生産性を高めるためにアジャイル開発をすることになった。

今回はアジャイル開発の概要についてざっくり書いていく。

アジャイル開発とは、
「ソフトウェア開発のプロジェクトの進め方の一つ。短期間で開発を見直す手法のこと。」

なぜ、アジャイル開発を取り入れることになったのか?
ベンチャー企業のため、開発チームは15人程度(インターン生も含めて)。

フロントエンド、バックエンド、iOSと3つのチームに分かれている。

そのため、マネージメントもデザインも開発もテストもする。チーム全体で開発していく必要あるから。

前置きはこの辺りで、アジャイル開発とは何なのかを書いていく。

押さえておきたいポイントが6つある。

1. 大きな問題は、できるだけ小さな問題にする ⇨小さな問題に分割していくことで短期間での開発を可能にする。やるべきことが具体的になる。

2. 本当に大事なことに集中し、それ以外のことは忘れる ⇨ユーザーにとって価値のあるもののみに焦点を絞る。無駄な開発は一切省くことで短期間での開発が可能になる。

3. ちゃんと動くソフトウェアを届ける ⇨クライアントには確実に動くソフトウェアを届ける必要がある。そのためテストはこまめに実施していかなければならない。

4. フィードバックを受ける ⇨定期的にフィードバックを受けずに、本当に求めているものを開発することはできない。

5. 必要であれば進路を変える。 ⇨現在の計画を乱すような現実が起きた場合は、現実を変えることはできない。計画を柔軟に変化させ対応していく必要がある。

6. 成果責任を果たす。 ⇨仕事の質に責任を持つ。スケジュールを守る。クライアントの期待をマネジメントする。身銭を切るかのようにクライアントのお金を使わなければならない。

この6つのポイントを、まずは押さえておく必要がある。

アジャイル開発をする上での理想は、
チームはリモートよりも同じ空間で仕事をするのが良い。チームの意思疎通がしやすいから。遠隔地にいても、テレビ会議のシステムを使ってコミュニケーションを多めにとる必要がある。

アジャイル開発の進め方。
ストリーボード、リリースボード、ベロシティとバーンダウンチャート、インセプションデッキを可視化して、全員が共有認識を持って進めていく。

ストリーボードとは
ソフトウェアにおいてユーザーが行うストーリーの一覧を可視化するボード

リリースボード
チームがどれだけストリーボードを完成させているのかを可視化するボード

ベロシティとは
一回のイテレーション(開発サイクルの単位、1週間から4週間で設定される)でチームが完了できるストリーの量。つまり開発速度

バーンダウンチャートとは
進捗のチャート。縦軸が作業量。横軸が時間。開発が進むにつれ右肩下がりのチャートとなる

インセプションデッキ
プロジェクトの全体像を端的に伝えるための全体像

最も重要だと感じたのが、インセプションデッキ。
プロジェクトを始める前にこれだけのことを明確化しておかないと、いい加減にプロジェクトが立ち上がり、そのままプロジェクトが進んでしまう危険性がある。

今回はアジャイル開発のポイントだけになっているが、今後実際に開発が進んでいって理解が深まったことも書いていこうと思う。