支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


はじめに

IT技術が進化する中で、物事の利便性の向上を図るために、ITを用いたシステムの導入が普及しています。システムやソフトウェアの開発を行う際、開発手法を整える事もシステム開発において重要なファクターになります。従来はウォーターフォールモデル型の開発手法が用いられていましたが、2000年以降はアジャイル開発と呼ばれる手法が主流になってきています。この記事ではアジャイル開発について種類とメリット・デメリットについて記載していきます。

アジャイル開発とは?

アジャイル開発は、システムの開発内容を小さい規模に分割し、それぞれの規模での実装とテストを繰り返して開発を進める手法です。従来のウォーターフォール型の手法は、初期段階で全体の構造と計画を決定させ、その通りに進めていく手法でした。その点を踏まえアジャイル開発は、全体の計画を立ててそれを実行する訳ではなく、様々な状況に応じて柔軟に対応しながら開発を進めていく方法であるといえます。アジャイル開発を取り入れることにより、システム開発の期間の短縮を見込むことができます。

アジャイル開発の流れとしては、まずざっくりとシステムの仕様と要求を定めます。開発途中に依頼者からの仕様変更要求が生じたときに柔軟に対応できるようにしておくためです。決定後はイテレーションと呼ばれる要件定義→設計→開発→テストの流れを小さい規模で行い、完結させていくことを繰り返すことで開発を進めていきます。イテレーションごとにチームを分割して開発を行うこともアジャイル開発の特徴です。また、アジャイル開発を円滑に行うための多くの手法が存在します。

  • スクラム・・スクラムは、チームが協力してシステム開発を行うためのフレームワークを指します。チームでの強固たる連携が必須の手法で、イテレーション毎にメンバーで開発計画を練り、実装し制作物を精査する必要があるので、メンバーとの協力関係が必須です。メンバー間で開発プロセスを定義・共有し開発を進めていく必要性も出てきます。いかにメンバーとコミュニケーションを円滑に取り、開発を進めていくかが鍵となります。
  • エクストリーム・プログラミング(XP)・・事前計画よりも途中で仕様変更が行われた際の変更対応に注力した手法になります。初期計画よりも技術力に重きをおいているため、プログラマーの力量に大きく依存する方法であるといえます。
  • ユーザー機能駆動開発(FDD)・・顧客に対してビジネスの可視化を行ないながら開発を進めていく手法です。必要な機能を都度洗い出し、開発を繰り返し行なっていくのが特徴です。
  • アジャイル開発のメリット・デメリットについて

    ここまで、アジャイル開発についての概要について記載してきました。ではアジャイル開発を行うメリット、またそれに伴うデメリットとはどのようなものがあるのでしょうか?ウォーターフォール型の開発手法とのメリット・デメリット比較しつつ、以下に記載していきます。

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

    アジャイル開発のメリットは、まず開発期間を短縮できるところにあります。小規模のイテレーションをチーム分割して複数同時並行で取り組むので、作業待ち時間が発生しにくく、非常に効率よく開発をすすめることが可能です。また、従来のウォーターフォール型であれば過程を大きく戻るため、対応に時間がかかり、リリース時期が大幅に遅れるということがありました。アジャイル開発では小規模で行うので、不具合が生じたときでも戻る過程は少なくて済むので、不具合対応に時間を取られにくくなります。また、上記の開発手法を用いることで、顧客の要求に最大限対応できることもアジャイル開発のメリットになります。

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

    アジャイル開発のデメリットは、仕様変更などが増えた場合もとの仕様からずれてしまう可能性が高いことにあります。ウォーターフォール型では初期段階で綿密な計画を決めるため、それに沿って確実に開発を進めるため元々の仕様とのずれが生じにくいですが、アジャイル開発だと初期段階で計画を綿密に決め切らないため、仕様の追加や変更が多数発生した場合、計画を変更しすぎて、顧客から要求されている元々の仕様とずれてしまう時があります。スケジュール管理や状況の把握の難化が大きなデメリットになります。また、チーム間でのコミュニケーションが不足していると、上記も相まってどんどん仕様とずれた開発を行うことになり、不具合の修正時に大幅に時間をとってしまうことになります。このデメリットを克服するために、チームのリーダーが仕様の軸を理解した後、イテレーションごとのチームメンバーと情報を共有するコミュニケーションが重要になってきます。

    まとめ

    この記事では、アジャイル開発の概要とメリット・デメリットについて記載してきました。仕様変更が多いWebアプリやソフトウェアの開発には柔軟性を持ち、短期でシステム開発を実行できるアジャイル開発を利用した方が手法としては合っているかと思われます。ウォーターフォール開発、アジャイル開発どちらもメリットとデメリットが存在しますが、特徴を理解し、開発手法の検討に入ることがシステム開発において重要なことであると思います。ご拝読いただきありがとうございました。