システム開発の場で最近よく使われるようになってきた「アジャイル」という言葉。聞いてどういう意味だろう?と思った経験はありますか?意味を分からずに使用すると問題になる場合があったり、この人無知だな~と思われてしまう要因になりかねません。
そこで今回は、「アジャイル」という言葉の正しい使い方や意味をまとめてみました。
「アジャイル開発」とは
アジャイル開発 は、ソフトウェア工学において迅速かつ適応的にソフトウェア開発を行う軽量な開発手法群の総称です。またアジャイル(Agile)とは、直訳すると「素早い」「機敏な」「頭の回転が速い」という意味です。
アジャイル開発と従来のシステム開発との違いとしては、大きな単位でシステムを区切ることなく、高頻度でPDCAを回しながら実装とテストを繰り返して開発を進めていくというよな過程の違いがあります。
この過程の変更により、従来の開発手法と比べて開発期間が短縮されました。
それによりアジャイル(素早い)と呼ばれるようになりました。
「アジャイル開発」のメリット・デメリット
アジャイル開発で、開発期間が短縮されるなどのメリットは、ありますがシステム開発やソフトウェア開発の際には、それぞれに合った開発手法を選ぶ必要があるためメリットだけでなくデメリットもしっかりと把握しておきましょう!
メリット
アジャイル開発のメリットとしては、システムなどの開発工程で問題が発生した際に戻る工数が少ないく済むことです。従来の開発手法(ウォーターフォール)では初めの設計・計画を重視するため、トラブルの発生個所によっては修正までに時間やコストが多く掛かる可能性があります。
アジャイル開発では機能毎に設計→開発→実装→テストを繰り返しているのため、リリースのタイミングが早く、問題が発生した際にも修正にかかる工数が少なくてすみます。
また初めの計画を綿密に決めないため、開発途中でユーザーとコミュニケーションを取りながらフィードバックを行い、ユーザーと認識の違いがなかを確認しながら仕様変化や追加の対応などユーザーのニーズに最大限応えることができるのもメリットでしょう。
デメリット
計画段階で綿密に仕様を決めていないため、開発途中でユーザとの方向性がづれていたりスケジュール管理がキッチリ決められていなかったりすることが多く。開発当初の目的からずれてしまうことが多くあります。
また開発途中での全体像を把握しきれずに、気づいたら納期に間に合わないということも起こりえます。
ウォーターフォールとは
ウォーターフォールは、計画段階で綿密に設計やスケジュールを決め、各工程毎に要求定義→外部設計(概要設計)→内部設計→(詳細設計)→開発(プログラミング)→テスト→運用までの各工程を段階的に完了させていく開発手法になります。
前の工程には戻らない前提であることから、下流から上流へは戻らない水の流れにたとえてウォータフォールと呼ばれています。
特徴としては、各工程の同時進行が出来ず1つ1つを完了させてから次の工程に進むことです。
例えば、外部設計と内部設計を同時に進めることは出来ず、外部設計でOKが出てからでなければ先の工程に移ることは出来ません。
ウォーターフォールのメリット・デメリット
アジャイル開発が流行するまでは、よく使われていたウォーターフォール型の開発手法でがこちらの手法もメリット・デメリットがありますのでしっかり理解した上で活用していきましょう。
メリット
制作するものが明確で各工程で成果物ができるので進捗状況の確認がしやすく計画的な開発なため品質の担保がしやすいです。
デメリット
開発途中での仕様変更や追加の対応が難しいく、同時並行で各工程を実行できないため、多く時間を使う可能性がある。
また開発最終段階にならないと実際に動作するシステムなど目に見えるものがないため、ユーザの意見を反映しにくいです。
製品の完成後に初期段階のトラブルに気が付いた場合、戻るための工数が大きくなることです。それによって開発をやり直す時間やコストが膨らんでしまう。
「アジャイル開発」の関連用語
ここまで説明してきました。アジャイル開発につきまして大体理解できましたでしょうか?
続きましては、アジャイル開発に関連する用語をご紹介していきます。
ユーザーストーリー
ユーザーストーリーは、ソフトウェアの機能定義や開発マネージメントを容易にする、アジャイルソフトウェア開発方法論です。
またユーザーストーリーはユーザーが実現したいことやユーザーにとって価値があることを簡潔にまとめた文章です。
イテレーション(スプリント)
イテレーション(iteration)とは「反復・繰り返し」という意味。短期間で反復しながら効率的に開発を進めるアジャイル開発の1サイクルです。
イテレーションの平均反復期間としては、1〜2週間程度で、イテレーション毎に機能をリリースします。期間の設定は開発チームによって変化するので注意が必要です。
ベロシティ
開発チームが1回のイテレーション内に完了できたユーザーストーリー(要求)の規模の合計値をベロシティと言います。つまり、チームの開発量を表したもので進捗状況を計る目安になります。
リリース計画
アジャイル開発を行う場合、初めに「いつまでにどの機能をリリースできるか」というプロジェクト全体を管理するためのリリース計画を立てることを言います。
まとめ
アジャイルとは、開発手法の一種で開発工程の各工程を小さいサイクルで繰り返すのが大きな特徴です。また開発途中も定期的にコミュニケーションを取りながらフィードバックを行うので、途中でミスがあった際もすぐに立て直しができる点が利点としてよく使われています。
またウォーターフォールは、プロジェクトを各工程に分け、確実に工程を進めていく開発手法のことです。エンジニアの間では古くから用いられてきました。
品質を重視するケースや人員を大量に確保しなければいけないケースで活躍し、テストを重ねて行うため、手戻りが発生した場合はその分手間や工数が余分にかかってしまう点が特徴です。
その他にも、アジャイルの関連用語を紹介いたしました。アジャイル開発を進めていく上で大切な用語ですので合わせて覚えておきましょう。
コメント