見出し画像

課題解決型プロジェクト:アジャイルにも色々あるシリーズ(その1)

アジャイル開発やアジリティが重要と言われて久しいですが、アジャイルといっても色々あるのです。
この記事(その1)では、「課題解決型プロジェクト」の「アジャイル開発」にフォーカスします。

「アジャイル開発」の目的と特徴

プロジェクトの進め方を決定する際に、開発手法として「アジャイル開発」を選択する、という流れの説明が一番わかりやすいかもしれません。

ソフトウェア開発手法は2000年代になり「アジャイル開発」が注目を浴びるようになりました。
それまでは「ウォーターフォール開発」と呼ばれる手法が主流でした。これから作ろうとするシステムの機能や開発段取りをあらかじめ計画し進めるもので、製造業などで適用されている方法です。これが、ソフトウェア開発にも適用されていました。

一方、アジャイル(Agile)とは、「素早い」とか「機敏な」という意味で、「アジャイル開発」は主に開発期間の短縮を期待して適用されるものです。

大きな特徴として「開発中にもシステムの機能変更があることを前提としている」ことがあります。
そのため、おおよその機能仕様や要求事項を確認した後開発を開始しますが、イテレーション(iteration)(「反復」の意味)と呼ばれる小さな単位(1週間、2週間などの単位)で開発を管理します。
イテレーション内では、機能リリースを前提とした設計、実装、テストの一連の作業を行います。イテレーションの最後にはそのイテレーションの振り返りをして、次のイテレーションの計画もします。
この繰り返しを数度行うことにより、開発初期の段階で明確な仕様が決まっていなくても優先度の高い機能からリリースしていき、顧客のニーズに最大限応えることが可能になる、という訳です。

また、「アジャイル開発」は「ウォーターフォール開発」と対比して説明されることが多いのですが、開発手法が何であるか、ということより、何のための開発手法か、の方が重要です。
プロジェクト計画を立てる際に、プロジェクトの性質や対象システムの特徴に合わせて開発手法を決定します。

ここで、「アジャイル開発」の説明に使われるキーワードをいくつか。


スクラム
チーム・コミュニケーション重視の開発フレームワークです。
メンバー自身の立案により、イテレーションの問題点を話し合い、開発したシステムの品質を確かめ合いますので、ラグビーのスクラムのようにチーム全員が協力して開発を進めます。

エクストリーム・プログラミング(XP:Extreme Programming)
プログラマー中心の開発手法で、計画の途中変更も柔軟に行います。
4つの価値(コミュニケーション、シンプル、フィードバック、勇気)の共有を推進、初期計画の通りに進めるという従来手法に対して、技術面の視点で開発途中でも仕様変更や設計変更に立ち向かう「勇気」を挙げていることが特徴です。


「アジャイル開発」とプロジェクト管理

「アジャイル開発」は短期間で機能がリリースできるというメリットがありますが、プロジェクト管理の必要が無いということではありません。

例えば、もっと良い機能にしようとして顧客からのフィードバックを追加し続けることにより、当初のプロジェクトの目的から外れてしまうことがあります。

小さなチーム単位での開発活動を繰り返すため、プロジェクト全体の進捗確認が上手くできずに、最終的なプロジェクトの納期に間に合わないということも起こりえます。

適切なプロジェクト管理がされていないと「アジャイル開発」のデメリットの部分が顕在化することがありますので注意が必要です。


課題解決型プロジェクトへの「アジャイル開発」適用例

「アジャイル開発」が適しているプロジェクト例を説明します。

店舗で支店従業員が専用端末を操作し提供しているサービスがあり、店舗の営業時間外でも同様のサービスを受けたいという顧客ニーズがあることがわかりました。

ここで、組織としては「顧客自らのタイミングでサービスが受けられない(つまり、顧客ニーズに対応したサービス提供ができていない)」という課題に取り組むことになり、顧客がスマートフォンから手軽にサービスを受けられるようにする「スマホアプリ開発プロジェクト」が必要という結論に至ったとします。

この組織のビジネス課題を解決するためのプロジェクトである「スマホアプリ開発プロジェクト」では、スマートフォン上のアプリケーションのユーザーインターフェースを検討する必要があります。
アプリケーションの見た目の印象や、アプリケーションの操作性などを検証しながら、顧客から見た使いやすいサービスになるように改善を繰り返します。

このようにビジネス上の課題や解決策が組織として明確に定義されていて、ユーザーインターフェースなどを繰り返すリリースで最適化したいケースは「アジャイル開発」が向いていると言えるでしょう。

以上です。お読みいただきありがとうございました。

この記事では、「アジャイル開発」の目的、特徴、プロジェクト管理、適したプロジェクト条件について書きました。
価値創成型プロジェクト:アジャイルにも色々あるシリーズ(その2)もご参照ください。

サポートいただけると嬉しいです。 次の記事投稿への活力になります。