ゆるいSEのIT徒然草

SE向けナレッジ(ほぼ自分用メモ)。技術以外にも、システム関連のもろもろ雑多なノウハウを公開します。内容保証しません!!!

システム開発手法考察

開発手法の種類

 

▼参考

システム開発の「アジャイル」などの4種類の開発手法とは?
https://onetech.jp/blog/what-is-the-software-development-method-7101

システム開発の手法にはどういったものがあるか | マジックソフトウェア
https://www.magicsoftware.com/ja/enterprise-dev-columns/dev-method/

現代のプロマネが知っておきたいアジャイル開発の基礎知識まとめ (1/2):アジャイル時代のプロジェクトマネジメント入門(2) - @IT
https://www.atmarkit.co.jp/ait/articles/1412/05/news044.html#:~:text=%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E3%81%A8%E6%B7%B7%E5%90%8C%E3%81%95%E3%82%8C%E3%82%8B,%E7%89%B9%E5%BE%B4%E3%81%AE%E4%B8%80%E3%81%A4%E3%81%A7%E3%81%99%E3%80%82

ウォーターフォールじゃない開発について
https://www.cresco.co.jp/blog/entry/6027/

 

開発手法別説明

< ウォーターフォール・モデル>

▼概要

要件定義~外部設計~詳細設計~製造~UT~結合テスト~リリース の流れで各フェーズを順番に実施する方式。

SIにおける最もオーソドックスな開発プロセス

▼メリット

▼デメリット

  • 手戻りのリスクあり(後続フェーズに入った後で前フェーズに影響する問題が発生した場合)

▼個人的所感

大規模開発でマスタスケジュールに従って、各フェーズをキチンと閉じていく場合に向く。

コロコロ仕様が変わるような場合は不向き。

▼参考

 

 

<プロトタイプ・モデル>

▼概要

プロジェクトの途中で試作品を開発し、ユーザーと認識合わせしながら進める。

(どのフェーズで、という定義はないが、要件定義フェーズ(外部設計前)かな)

※プロトは、Webアプリケーションの場合だとhtmlなど。ドキュメントではなく機能制限付きだが紙芝居的に実際に操作ができるレベルのもの。

▼メリット

  • 上流フェーズで認識合わせを行うため手戻りを減らせる

▼デメリット

  • プロトの開発に時間・コストを要する場合がある(大規模開発では不向き)

▼個人的所感

ウォーターフォールの進め方プラス、要件定義フェーズでプロトを見せるイメージの認識。

小規模のフロントエンドの開発(WebやBIレポートなど)では、この方式があっているのでは。

▼参考

プロトタイピングモデルとは
https://medium-company.com/%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%87%E3%83%AB/
システム開発におけるプロトタイプ・モデルのメリットと注意点|スパイスファクトリー株式会社
https://spice-factory.co.jp/management/prototype/

  

<スパイラルモデル>

▼概要

システムを機能(サブシステム)単位で分割し、設計~実装~テスト~リリースを繰り返す。

スパイラルモデルには、さらに以下の2種類がある。
 (1)反復型
  サブシステムに対し、プロトタイプ・モデルで進めるイメージ
 (2)インクリメンタル型
  サブシステムに対し、ウォーターフォールで進めるイメージ

▼メリット

  • サブシステム単位で計画するため、スケジュール変更に対応しやすい
  • 仕様変更に対応しやすい(全機能を先に設計するわけではないため)

▼デメリット

  • プロジェクト全体像を最初に把握しにくい

▼個人的所感

どういう契約になるのかな?サブシステム単位で見積もりする?

少人数で開発を行ってスモールスタートで本番ローンチし、追加開発を順次行うには、この形がよいのでは。

内製で柔軟に仕様変更に対応する場合は、この形が望ましいのでは。

▼参考

アジャイル」と異なる反復型開発「スパイラル」とは | バンブロ!ソフトウェア品質特集
https://blogs.techvan.co.jp/quality/spiral

ウォーターフォール・モデル | Think IT(シンクイット) ※スパイラルモデルのイメージ
https://thinkit.co.jp/article/914/1?page=0%2C1

 スパイラルモデルとは?アジャイル開発など他のモデルとの違いを確認し解説します!導入におけるメリットとは? | A-STAR(エースター)
https://agency-star.co.jp/column/spiral-model

 

アジャイル開発>

▼概要

本来は開発手法を示す言葉ではない(らしい)

サブシステム単位で設計~製造~リリース を行う。

プロトタイプを作るとは限らない。

▼スパイラルとの違い

スパイラルは、対象のサブシステムの機能追加・改善を繰り返し行っていくが、

アジャイルは、サブシステム毎の開発毎の品質は保証する

(この説明、ホントにあってる??)

▼個人的所感

ウォーターフォール的な開発を、サブシステムごとに区切って短期間で繰り返す、という解釈(ほんとかなー)

▼参考

アジャイル開発とは?今さら聞けない開発手法のメリット・デメリット|発注成功のための知識が身に付く【発注ラウンジ】
https://hnavi.co.jp/knowledge/blog/agile_software_development/

 

考察

SIerによる大規模開発は、ウォーターフォール

やや小規模なフロントエンド開発の場合は、プロトタイプ開発、

ユーザーからスピードが求められ、かつ要求変更が多そうな場合はスパイラルまたはアジャイルという感じか?