2021年5月25日公開

アジャイル手法とはイノベーションに適応するDX時代の開発手法

「アジャイル手法でどう変わるの?」

「アジャイル手法って、何をすればいいの?」

 

ビジネスの現場でDXを推進していくとアジャイル手法というワードをよく聞きますよね。

アジャイル手法はソフトウエア開発の手法の1つで、市場の変革が速いDXにマッチする手法として注目されています。

 

この記事ではアジャイル手法について、下記の5点を中心にまとめました。

 

・アジャイル手法の基本

・アジャイル手法の関連用語

・アジャイル手法の実践方法

・アジャイル手法のポイント

・アジャイル手法の成功事例

この記事ではDXの現場の実践手法であるアジャイル手法について、キッチリ理解できるように丁寧に解説していきます。DX推進の参考にして下さい。

 

アジャイル手法の基本

アジャイル手法とは何なのか、その成り立ちやその他手法と比較しながら概要について解説します。

 

アジャイル手法とは

アジャイルは(Agile=機敏な)という意味で元々はソフトウエア開発の手法です。小人数のチームで設計⇒開発⇒実装⇒テストを繰り返して、プロジェクトを進行します。

 

最初から完全体をめざすのではなく、実装を繰り返して完成を目指す仕組みです。その一つ一つのプロジェクトが小型で機動力があるのが特徴で、一つのサイクルの課題に対して柔軟に対応できるのがメリットです。

 

このような理由から、アジャイル手法は組織の継続的な変化への対応に適していると言われ、市場の変化に柔軟に対応するDXに最適な手法として、DXに取り組む多くの組織に採用されています。

 

アジャイル手法の歴史

従来のソフトウエア開発手法では、一度決めた完成形にむかってすべての計画が組まれていました。そのためプロジェクトの完成までの時間がかかり、市場のニーズの変化に対応できないという課題がありました。

 

2001年初頭、ユタ州スノーバードのワサッチ山脈に、ソフトウエア開発のスペシャリスト17人が集まり、ソフトウエア開発の将来について話し合いました。この集まりの中から「ソフトウエア開発のためのマニフェスト」が提唱されました。

 

これをアジャイルソフトウエア開発宣言といいます。

 

これによりユーザーの目線に立ったソフトウエア開発手法として、アジャイル手法が定義されました。ソフトウエア開発手法としてアジャイル手法は生み出されましたが、今では変化の速い市場のニーズに最適化するDXの実践手法として採用されています。

 

アジャイルの4つの定義と12の原則

アジャイルソフトウエア開発宣言によりアジャイルの12の原則が提言されました。それをもとに4つの定義がなされています。定義は下記の4点です。

 

①プロセスやツールよりも個人や相互作用を大切にすること

②プロジェクトの進行計画よりも動くソフトウェアに価値をおく

③契約交渉よりも顧客との協調を重視する

④計画の着実な遂行よりも変化への対応を重視する

引用元:アジャイルソフトウェア開発宣言

参考元:アジャイル宣言の背後にある原則

 

ここでは、4つの定義について解説します。

 

①プロセスやツールよりも個人や相互作用を大切にすること

アジャイルのアプローチは、プロセスよりも人を重視します。人に主軸をおき、一人ひとりがソフトウエア開発プロジェクトに独自の価値を貢献できればそのエネルギー、革新性、問題解決能力が最大限に発揮されるでしょう。

 

人に主軸をおくことでアジャイルな環境では、新しいアイデアやイノベーションにも容易に適応できます。

 

②プロジェクトの進行計画よりも動くソフトウェアに価値をおく

アジャイル手法では設計や製品の内容など文書化するものを必要最小限とします。その代わりに労力をソフトウエア開発に集中します。またアジャイル手法においては製品が、実際に可動するかでプロジェクトの完了を測定します。

 

例えば従来であればプロジェクトの進行率70%の製品では可動しませんでした。しかしアジャイル手法では70%の機能をみたす可動する製品の完成を目標にします。

 

アジャイル手法では、ドキュメント作成に費やす労力を減らし、プロジェクトチームは開発に多くの時間を費やします。その結果効率的に製品の納品が可能です。

 

③契約交渉よりもクライアントとの協調を重視する

プロジェクトの進行にクライアントが関わるため、課題の発見、質問、理解が容易で顧客とプロジェクトチームはパートナー関係を構築します。

 

例えばクライアントの意見を反映して優先度の高い機能を早い段階で実装します。クライアントの意見が制作過程に組み込まれているため、クライアントのニーズに自然と沿う形になるでしょう。

 

アジャイル手法なら、クライアントと協調関係を築き、変化する要件に対応して、より価値の高い製品を生み出すことができます。

 

④計画の着実な遂行よりも変化への対応を重視する

アジャイル手法では、体系的に変化に対応します。課題は、より良い製品を生み出すための貴重な機会です。

 

人を主軸とするアジャイル手法では課題に対して柔軟に変化しながら対応します。実際、アジャイル手法の柔軟性はプロジェクトに安定をもたらします。

 

新しい変化が起こると、プロジェクトチームはそれらの現実を進行中の作業に取り入れます。新たな変化は、避けるべき障害ではありません。

 

アジャイル手法では、課題による変化を人々が使いたいと思う有用な製品を開発するチャンスと捉え、変化への対応を重視します。

 

ウォーターフォール型開発とアジャイル型開発

ウォーターフォール型とは、従来型の開発手法です。滝(Waterfall)のように水が上流から下流に流れるようにプロジェクトを組み立てます。

 

最初にシステムに実装する機能や仕様など概要を決めてプロジェクトを進行します。その後、1つ工程を完了したら次の工程に進む、という流れです。

 

例えばウォーターフォール型開発では次のような流れで工程を進行します。

 

最初の段階で工程と要件が計画されているため、工程管理をしやすいメリットがあります。

 

一方で、上記の流れの中でシステムに問題があったとしても問題に気づくのは、テストの段階です。つまりシステムの課題に気づきにくく、仕様の変更に柔軟に適応できないデメリットがあります。

 

アジャイル型開発はウォーターフォール型開発の課題を克服するために考案されました。

 

アジャイル(機敏な)の意味のとおりプロジェクトの大枠を決めて設計⇒開発⇒実装のサイクルを繰り返してプロジェクトを進行します。

 

プロジェクトにはクライアントも参加し、動くシステムを完成させフィードバックを反映させながら、プロジェクトを繰り返します。このようにアジャイル手法なら、変更に対していつでも柔軟に対応可能です。

 

アジャイル手法の関連用語

アジャイル手法をより良く理解するために知っておきたい関連用語を解説します。

 

ユーザーストーリー

ユーザーストーリーとは製作するものがユーザーにどんな価値をもたらすのかを示すものです。ユーザーストーリーがあることでどのような機能が必要で、そのために何をすべきかが明確になります。ユーザーストーリーがアジャイル手法の第一歩です。

 

例えば「アカウント保護のためにログインに2段階認証を実装する」とメモ書きしておきます。これを見てこれに必要なコード(プログラミング)を作成します。

 

このようにユーザーストーリーなら、クライアントと制作者が具体的にどんな機能が必要なのかを共有可能です。

 

イテレーション(スプリント)

イテレーションとは反復を意味するワードです。アジャイル手法では、プロジェクトを構成する短い開発サイクルの一単位のサイクルを示します。

 

具体的には、一つのイテレーションは設計・開発・実装・テストで構成します。一つのイテレーションの中で動くシステムを構築してテストするので早い段階で課題が明確になります。

 

ベロシティ

ベロシティとは、プロジェクトチームがユーザーストーリーを達成したことを数値化して評価する方法です。

 

一つのプロジェクトの中で同じチームが何度も取り組むアジャイル手法の評価方法として有効です。また、プロジェクトの全工程が明確に定まっていないアジャイル手法において、進捗状況を測ることができます。

 

リリース計画

リリース計画とはプロジェクトチームがどのくらいの期間でどの機能を作成し、ユーザーストーリーを達成してリリースできるかを見積もることです。

 

目的であるユーザーストーリー、制作単位のイテレーション、制作量を評価するベロシティがあればリリース計画を見積もって、プロジェクトがどのくらいの期間で完成するのかを測定可能になります。

 

またリリース計画によってプロジェクトチームは、途中経過を確認可能です。アジャイル手法においては、リリース計画は変化に応じていつでも変更します。

 

アジャイル手法の実践方法

アジャイル手法を構成する実践手法を解説します。

 

スクラム

スクラムとはアジャイル手法を実施するためのフレームワークです。ラグビーのスクラムをヒントに日本人によって着想されました。

 

スクラムの特徴は次の5点です。

 

1)短い期間に区切ってプロジェクトを進行する

2)プロジェクトチームはできるだけ小人数で構成する(スクラムチーム)

3)常に現状と課題を明らかにする     (透明性)

4)定期的に進行状況をチェックする    (検査)

5)良い方法があれば柔軟に取り入れる   (適応)

これらを基本にして、さまざまな手法を取り入れてプロジェクトを組み立てます。

 

かんばん

進行中のプロジェクトの中で例えばホワイトボードなどにプロジェクトの進行の流れに合わせてタスクや要望を書き出して一覧できるようにしたものです。アジャイル手法における情報共有手段です。

 

もともとトヨタ自動車の製造工場で採用されていた在庫管理の手法でしたが応用して、様々な分野で活用されています。デジタルツールや付箋などを使った方法があります。

 

かんばんにより次のことが可能です。

 

・プロジェクトを一覧にして見える化する

・チーム内の進行状況が把握できる

・ふりかえりに有効(課題の洗い出し)

・課題やその解決方法を共有できる

付箋があればすぐにでも導入できます。手軽に導入できることと、どんな分野にでも活用できるのがメリットです。

 

エクストリームプログラミング

エクストリームプログラミングとは、クライアントとの関係性を密にして柔軟に仕様変更に応じる手法です。もともとはソフトウエア開発の手法です。プロジェクトにクライアントが参加して、随時フィードバックを受ける仕組みです。

 

短期間の開発サイクルを推奨してテストの回数を増やします。増えたテストから多くのフィードバックを受けて適応します。

 

クライアントの要望を随時反映させることで、品質を向上させることが可能です。

 

ユーザー機能駆動開発(FDD)

ユーザーの機能に価値に重点をおいた手法です。ユーザー機能駆動開発(FDD)は次の手順で進行します。

 

最初に全体像を定めて必要な機能を明確にするのが大きな特徴です。ユーザー機能駆動開発(FDD)の目的はクライアントの求める機能が実装された高い品質にするためです。

 

アジャイル手法のポイント

アジャイル手法を導入するために抑えておきたいポイントを解説します。

 

アジャイルについて経営陣が理解する必要あり

アジャイル手法を導入して成果を出すためには、明確な目的と経営陣の理解が必要です。

 

他社がやっているからという目的では、手法をなぞるだけで従来の方式との差も感じられずアジャイル手法のメリットを享受できません。その結果お試しで終わってしまうことになります。

 

また、アジャイル手法では部門を超えた協力関係が欠かせません。そのため経営陣が直接アジャイルのプロジェクトに関与して、場合によっては組織の文化を大きく変革させる必要があります。

 

自社にあったアジャイルの形をみつけること

アジャイル手法には小さなプロジェクトを反復するという特徴があります。それゆえ、実際の取り組みにはさまざまな形があります。そのため初めて実施する場合、どのような取り組みをしたらいいのか分からないことも多いでしょう。

 

しかしながら、『独立行政法人情報処理推進機構(IPA) アジャイル開発の プラクティス・リファレンスガイド』の調査結果から、アジャイル開発を行う場合、下記の4つの取り組みを必須だといえるでしょう。

 

引用元:独立行政法人情報処理推進機構(IPA) アジャイル開発の プラクティス・リファレンスガイド

 

・日次ミーティング

・ふりかえり

・イテレーション計画ミーティング

・イテレーション

グラフにあるこれらすべてを取り入れるのではなく、プロジェクトを円滑に進め、想定されるリスクを避ける手法に取り組む必要があります。プロジェクトの状況や人的資源・環境に応じた手法を選択しましょう。

 

アジャイル手法の成功事例

デンソーは車のエアコンやエンジンの部品などのハードを主に作る会社です。デンソーにとってアジャイルやスクラムは新しい試みでした。

 

2017年に新たに車のカーシェアリングのサービスを手掛けることになりプロジェクトを立ち上げました。プロジェクトには3つの柱がありました。

 

・デザイン思考  問題解決に価値を置く考え方
・早く安く作る オープンソースやクラウドプラットフォームを活用する
・内製化 アジャイル開発

 

結果として「mobi-crews」というサービスを約一年でリリースしました。「mobi-crews」とはドライブレコーダーなどの情報をクラウド上に集め多数の車両位置や運転状況をリアルタイムで一元管理するシステムです。具体的には走った場所・距離、運転者免許の有無・有効期限・運転適応状態の確認を自動化します。

 

■開発のベース

・ハード面は自社のドライブレコーダーなどを使用

・開発現場はスクラム開発

・開発環境にオープンプラットフォームを活用

・ヒューマンエラーが入らないように自動化するシステムを採用

■アジャイルの取り組み

・専用の開発ルームを用意

・メンバーを専任化

・スクラムコーチを入れて専門家の意見を聞く

・プロダクトオーナーが顧客の情報・車載器の管理者を兼任して全体を把握

■アジャイルの浸透

・クライアントに動くソフトウェアをみせる

・一緒に検討

・アジャイル専門家の意見を取り入れる

こうした取り組みによって開発期間約一年で「mobi-crews」をリリースしました。

 

参考元:DENSO『デンソーのアジャイル開発チームができるまで チームビルディングにおける工夫と実装の裏側

 

ヴァル研究所

ヴァル研究所は経路検索アプリ「駅すぱあと」などを提供するIT関連企業です。ヴァル研究所の総務部には業務の多さと人手不足の課題がありました。

 

■主な課題

・担当者がいないと処理できない業務

・情報共有する手段がない

・業務のかたより

・割り込み業務への対応

アジャイルの取り組み

ヴァル研究所は、課題を解決するために3つのステップでアジャイルに取り組みました。

ステップ1

・ふりかえり手法としてKPTを採用 

・かんばんで情報共有

・ニコニコカレンダーでコンディションを見える化

ステップ2

・アジャイルコーチを招聘して外部の意見を求める

・業務を分析

・HR

ステップ3

・スクラムに取り組む

・全員が同じ業務をこなせるようにスキル共有

このようにアジャイルに取り組んだ結果、チームが活性化し、メンバーの成長が促され、業務のカイゼンに取り組む環境ができあがりました。ヴァル研究所の総務部のアジャイルへの取り組みは、製造だけでなくあらゆる部門においてアジャイルが有効な手法であることを示す好例といえます。

 

参考元:『「総務」×「アジャイル」=「可能性は∞」』

 

まとめ

この記事ではアジャイル手法について下記の5点を中心にまとめました。

 

・アジャイル手法の基本

・アジャイル手法の関連用語

・アジャイル手法の実践方法

・アジャイル手法のポイント

・アジャイル手法の成功事例

アジャイル手法はあらゆる組織に導入する価値のある手法です。しかし、ただプロジェクトを細かくすれば良いものではありません。

 

自社に合ったアジャイルを見つけ出す必要があります。そのためには目的を明確にすることと、経験豊富なコーチを招聘(しょうへい)してアドバイスを受けるのが大切です。

 

アジャイル導入の一歩として、まずはかんばんから取り組んでみてはいかがでしょうか。ぜひ、DX推進の参考にして下さい。

 

この記事のすべてのタグ