ブログ始めました。運営者情報はこちら!click

「アジャイル開発」の特徴をIT業界最大手のSEが説明します!【初級】

お悩み人

・最近よく聞く「アジャイル開発」ってなに…
・PMP試験にアジャイル頻出って聞いたんだけど…
・SEとしてキャリアアップ(転職・昇進)したいよ…

システム開発手法が「ウォーターフォール型」から
「アジャイル型」に移っています。

転職サイトでも「アジャイル経験のある人」の記載も増え、
ニーズは高まるばかりです。

この記事では現役システムエンジニアが、
アジャイル開発について簡潔に説明します。

この記事で分かること
  1. アジャイル開発とは何か
  2. アジャイル開発の特徴は何か
  3. 他のシステム開発手法と何が違うのか
筆者はこんな人
  • IT業界最大手のシステムエンジニア
  • システムの要件定義から運用、保守まで、一連の作業を経験
  • 数億円超プロジェクトのプロジェクトマネジメントを経験
  • 約70名の学生からOB訪問を受け、IT業界やシステムエンジニアについて説明実績あり

宜しくお願いします!

この記事について

アジャイルとは?

アジャイル(agile)は英語で、
「素早い・機敏な・(頭の回転が)速い」などの意味を持ちます。

システム開発における「アジャイル」とは?

「小さな単位で動くソフトウエアを作り、迅速にシステム提供を目指す」手法のこと

アジャイルソフトウエア開発宣言(アジャイルマニフェスト)
というアジャイルの定義を記載している書物があります。

アジャイルソフトウエア開発の「4つの価値と12の原則」
は、アジャイル開発者にとって重要です。

ぜひ一度ご確認ください。

「アジャイル開発」が登場した背景

ビジネスの不確実性

  • 何に消費者ニーズが、市場ニーズがあるかわからない
  • これまで長年かけて作ってるシステムも、ニーズが変わってしまった
  • ITの進歩が進み、これまで使ってた技術が廃れてしまった

不確実な世の中を生き残るために、
企業はITへの投資を急ピッチに進めています。

AI、ブロックチェーン、クラウド、DX(Digital Transformation)
これらは2020年ごろから一気に馴染みのある言葉になりましたね。

現在、IT投資をするにも
「柔軟に」「素早く」実現するのがカギになっています。

  • システム開発のスピード感が高めないといけない
  • 複雑化するニーズに柔軟に対応しないといけない
  • 発展するITをうまく使っていかなといけない

そこで注目されたのが「アジャイル開発」です。

アジャイル開発は

  1. 短い期間、小さな機能単位で開発する。
  2. ユーザーが使用し、フィードバックを得て改善する。

のが大きな特徴。

つまり、

システムの機能を作り一気に作りあげない。
いつ何が起きてそのシステムのニーズが変わるかわからないから。

小さく作って素早く提供し、改善を繰り返す。
これならニーズに柔軟に対応できる。

ビジネスの不確実性に対抗する(影響を少なくする)
ための手法がアジャイル開発

といえます。

マネジメントの不確実性

前章で説明したとおり、
世の中のニーズに対応するには柔軟性が必要です。

それはシステム開発でも同様です。

マネジメントも柔軟に対応できないといけません。

アジャイルの「小さく、素早くつくる」特性が効いてくるのです。

アジャイルはPMP試験の主流になっている

プロジェクトマネジメントの国際的な資格「PMP」でも
2021年頃からアジャイル開発に関する問題が増えています

時代のトレンドにあわせて
資格の出題傾向も変化しているということ。

私は2022年にPMPを取得しました。
合格体験記を別記事に作成したので、よかったらご覧ください。

アジャイルを含む様々なシステム開発手法について

合格には「アジャイル実務ガイド」が必須です。
以降はアジャイル実務ガイドからピックアップした内容です。

各開発手法の比較

システム開発手法は
・予測型
・反復型
・漸進型
・アジャイル型
の4つに分類されます。

各システム開発手法の特徴①
各システム開発手法の特徴②

予測型

予測型のシステム開発

プロジェクトの初期段階で詳細なシステム要求事項や
開発計画を立てられる場合に有効です。

プロジェクトの初期段階でスコープやスケジュール、予算の計画を立て、
計画通りに遂行するようコントロールします。

※以下の記事は「予測型」のプロジェクトを題材にしています。

「予測型」はプロジェクト初期に立てた計画を
計画通りに進められるようコントロールする
ので、

・お客様から追加の要望が発生した
・5月に調達し、6月から使用する予定だった機材が届かない
・円安(円高)によって輸入(輸出)額に変動があり、費用超過になりそう

といった予想外の事象に柔軟に対応することが難しいです。

反復型

反復型のシステム開発

予測型との違いは

設計工程〜試験工程でフィードバックをもとに
改善を繰り返す作業が発生すること

予測型と同じく、工程を後戻りすることはありません。
しかし、

工程を進んでよいと判断されるまで試行錯誤を繰り返し、
改善してユーザの求める要件の品質を突き詰める

これが反復型の大きな特徴です。

つまり、スピードではなく品質重視の手法です。

漸進型

漸進型のシステム開発

リリースまでのスピードを重視した方法が「漸進型」です。

プロジェクト初期に決めたシステム要件をいくつかに分解

優先度の高いものから順にスピーディにリリース

これが漸進型のシステム開発に求められることです。

優先度を誤ると漸進型の目的は達成できないことに注意。

アジャイル型

「反復型」と「漸進型」のいいとこ取りが「アジャイル型」です。

  • 優先度の高い機能から順にスピーディーにリリース
  • リリースした機能のフィードバックをもとに改善

アジャイル型は細かく分けると2通りありますが、
どちらも共通するのは「スピードと品質の共存」です。

反復(イテレーション)ベースのアジャイル

イテレーションベースのアジャイルは、
タイムボックス(通常、3~4週間)で完成できる、
優先度の高い機能からリリースし、

フィードバックをもとに改善していく手法
です。

  1. システム要件を小さな機能(フィーチャー)に分ける。
  2. タイムボックス」と呼ぶ期間で完了できる、
    優先度の高いのフィーチャーを作り上げてリリースする。
  3. リリースした機能のフィードバックをもらう。
    (追加要件をもらう場合もあり)
  4. フィードバックから改善事項を検討し、残フィーチャーに加える。
  5. 残フィーチャーを再度優先付けして、以降、2〜5の繰り返し。

フローベースのアジャイル

フローベースのアジャイルは、
WIP制限という同時に進めてよい作業量の制限値を定め、
その制限内で優先度の高い機能からリリースし、
フィードバックをもとに改善していく手法
です。

WIP制限を設けることで、同時進行による非効率な作業を予防します。

  1. システム要件を小さな機能(フィーチャー)に分ける。
  2. WIP(Work In Progress:進行中の作業)制限を定める。
  3. WIP制限内に収まる量、かつ優先度の高い
    フィーチャーを作り上げてリリースする。
  4. リリースした機能のフィードバックをもらう。
    (追加要件をもらう場合もあり)
  5. フィードバックから改善事項を検討し、残フィーチャーに加える。
  6. 残フィーチャーを再度優先付けして、以降、3〜6の繰り返し。

「フィーチャー」「イテレーション」
「タイムボックス」「WIP制限」
は頻出です。

予測型とアジャイル型の併用も1つの手段

これまで紹介した開発手法は、
プロジェクトで1つ選択すればよいものではありません。

状況に応じて併用することがベターな場合があります。

※PMP試験では
「予測型とアジャイル型を併用したプロジェクトのマネジメント」
が多く出題されます。

予測型とアジャイル型の併用プロジェクトの例

要件がプロジェクト初期から明確、
スケジュールや費用もブレないなら「予測型」がよい
です。

一方で、要件もスケジュールも費用も
何かしらブレる可能性が高いなら「アジャイル型」がよい
です。

プロジェクトによっては、
一部機能の要件が不明確なこともあります。

部分的にアジャイル型を使って
リスク回避することも少なくありません。

アジャイル開発のメリット・デメリット

メリット

  • プロジェクト初期に要件が固まっていない場合に有効
  • プロジェクト途中で、イレギュラーな仕様変更が発生した場合に有効
  • ユーザのフィードバックをもとに、ユーザに満足度向上に繋げられる
  • 優先度の高い機能(フィーチャー)からスピーディーにリリースするので、開発期間の短縮が可能

デメリット

  • プロジェクト初期に要件を固めることができる場合は予測型が適切
  • プロジェクト途中で発生するイレギュラーな要件に、柔軟に対応しなければならない
  • スケジュールや、進捗状況の把握が予測型と比べて難しい

中級編の予告

中級編では以下をご説明します。

  • アジャイル開発の全体像
  • アジャイルを理解するうえで知るべき用語
    (例えば、バックログやサーバントリーダーなどの用語をご紹介します。)

まとめ

今回は、システム開発手法で注目されている「アジャイル」の基礎をご説明しました。

アジャイルとは何か、他の開発手法と比べて何が特徴なのかをご説明しました。

時代のニーズに沿って、今後「アジャイル開発ができる人材」になれるよう、

いまから基礎を習得していきましょう。

知っていて損はありません。

中級編以降もご覧いただけると嬉しいです。

最後までご覧いただき、ありがとうございました。

この記事が気に入ったら
フォローしてね!

シェア頂けると嬉しいです!よろしくお願いします!
  • URLをコピーしました!

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

この記事について