【アジャイル経営のススメ】第2回 アジャイル型開発とは?
作成日:2023.07.13 更新日:2023.07.13 公開日:2023.07.13
■「アジャイル型開発」をもう一度復習してみよう
最初は、前回述べたアジャイル型開発の復習です。
アジャイル型開発とは、下のような進め方をする方式です。
まず、開発担当者やプログラマーなどが数人程度の開発グループを組みます。
そして1サイクル2週間程度で、企画 ⇒設計 ⇒実装(プログラミング) ⇒テスト を行い、完成品をリリースします。このサイクルを「イテレーション」と呼びます。
このイテレーションを何回も繰り返して行い、徐々に製品の完成度を上げていくのです。
■アジャイル型開発で出てくる要素
アジャイル型開発というのは、個性的な開発方法です。まず、開発に必要な少人数のメンバーが集められます。プログラマー、テスター、インターフェイスのデザイナー、プロダクトマネージャー、顧客側の担当。といった感じですが、それぞれがウォーターフォール型のように厳密に役割が決まっているわけではありません。
常にそれぞれの役割はあいまいで横断的です。つねに共同し、密にコミュニケーションを取りながら、作業を行っていきます。
(1)ユーザーストーリー
まず、ウォーターフォール型の「要件定義」にあたるものは、「ユーザーストーリー」と呼ばれます。これは、顧客が実現したいこと、顧客にとって価値があることを簡単な文章にまとめたものです。
ユーザーストーリーは、小さなカード(付箋でもかまいません)に、短くまとめられます。それらをたくさん書き、ブレインストーミングで重要さや、開発に時間がかかる程度でグルーピングします。
たとえば、このユーザーストーリーは簡単に開発できそうだから1ポイント、これは中くらいだから3ポイント、これは開発に長くかかりそうだから5ポイントというように分類しておきます。
(2)イテレーション(iteration)
「反復」といった意味です。イテレーションは、アジャイル型開発の1サイクルという意味です。1回のイテレーションが終わるごとに何らかの完成物のリリースを行います。1イテレーションのサイクルは、おおむね1週間から2週間といったところです。
(3)ベロシティ
そのチームが、どれくらいの開発速度を持っているかの尺度です。1回のイテレーションで、どれくらいのユーザーストーリーを完了できたかで図られます。たとえば、2週間のサイクルで、1ポイントのストーリーを3つ、5ポイントのストーリーを1つ完了させられたら、そのチームの開発速度は8ポイントとなります。ベロシティは、次のイテレーションでの開発計画の目安になっていきます。
(4)スコープ
「範囲」というような意味です。プログラミングでは、ある変数などの名前を参照できる範囲のことを言います。アジャイル開発では、全体の作業内容のように考えればよいでしょう。ユーザーストーリーの合計値と考えてもよいかもしれません。また、見積りなどで、あらかじめスコープの上限が決まってくることもあります。
■アジャイル型での日程見積り
このような要素から、アジャイル型の日程見積りは立てられていきます。
たとえば、達成すべきユーザーストーリーの合計、つまりスコープが100ポイントで、1回のイテレーションでこなせる量が10ポイントだとしたら、システムの完成までは100/10=10で、10イテレーションがかかることになります。
ただし、開発作業には、期限がつきものです。完成までに20週間(10イテレーション)、ほぼ4ヶ月かかるとして、その間にこなせる量は100ポイントです。ただし、当初に決めた100ポイントのユーザーストーリーに、後で何らかの機能の追加要請があるかもしれません。そうした場合には、全部で120ポイントの作業をこなす必要が出てきます。
このような場合、チームのベロシティは1イテレーションで10ポイントなので、期間を長くするか、期限内に納めなければならない場合は、完成させる機能を減らす必要があります。このタイミングで削減された機能は、いずれ余裕が出た時に完成させるリストに移したりします。
こうした意味で、各ユーザーストーリーは、最初に優先順位を立てておくことが重要です。
アジャイル型開発では、優先順位が高いものを先に実装していき、低いものについては後回しにしていきます。こうしたスコープの柔軟性が、アジャイル型開発の特徴でもあります。
■アジャイル型でのミーティング
アジャイル型開発は、コミュニケーションが密なことも特徴です。1つのイテレーション(サイクル)の間に、いくつかのミーティングを行い、完成度を確かめていきます。
(1)事前ミーティング
イテレーションが始まる前のミーティング。行う予定のユーザーストーリーの準備が整っているか、適切かを確認します。
(2)イテレーション計画ミーティング
リリースが終わった後に、次回のイテレーションで何を行うか、顧客と一緒に話し、計画するミーティングです。
(3)日々の振り返り
定期的に集まって、10分程度で行う小さなミーティング。進捗状況や達成度を簡潔に見直し、皆で共有します。
(4)デイリースタンドアップ
重要な情報をチーム内で共有することを目的とした集まりです。朝礼のようなもので、毎朝、昨日やったことと今日やること、重要な伝達事項を短く話します。
ただ、ミーティングが多くなり過ぎると、実際の作業時間が削られ、本末転倒になってしまいます。ミーティングは適宜まとめるのもよいでしょう。
このようにして、アジャイル型開発は進んで行きます。
次回は、また別の側面から、アジャイル型開発について説明していきたいと思います。