BLOG

【脱初心者】上流工程やってみよう!【Todoアプリ】-#1上流工程とは-

2024-05-22

どうもロックシステムのみなみです!
今回からYoutube新シリーズ『【脱初心者】上流工程やってみよう!』がスタートしました!
【AI開発チャレンジ】顔認識機能つくってみよう!』と並行して進めていきますよ~
テーマは上流工程
これまではアプリを作りながらプログラミングについてレクチャーしてきましたが、今回はその前段階、アプリ開発の全体像を決定する上流工程について勉強していきます!

上流工程とは

一般的なアプリ開発のプロジェクトは、上流工程下流工程といった2つのプロセスに分けられます。
これまで勉強してきたプログラミングは下流工程。アプリをどういった仕様・作り方で進めるかを決めるのが上流工程です。
上流工程では直接ユーザー(お客様)と話しながら、どんなシステムや機能が欲しいのかを聞いたり、それらをどうやって作るのかを決めていきます。
上流工程ができるようになると、要望を聞いて技術的に考えて設計書に落とし込む力がついたり、システムの全体像を深く理解することができるので、エンジニアとしてのレベルアップが期待できます!

開発プロセスモデル

アプリ開発には効率よく進めるための開発プロセスモデルというものが存在します。 今回はそのうち4つを紹介していきます!

■ウォーターフォールモデル

フェーズごとに順番に実行していくのが特徴。「Water(水)がFall(落ちる)」ように戻りがなく、1つのフェーズが完了してから次のフェーズが開始。大規模プロジェクトに採用されることが多い。
メリット:ステップが完了してから次のステップに移るため進捗管理がしやすい。
デメリット:「手戻りが発生しない」前提でステップを進めるため手戻りが発生したときに追加コストと工数がかかってしまう。

■アジャイルモデル

開発を機能単位に分解して小規模な実装とテストを繰り返して短期間でリリースを目指す。
メリット:要件の変更に柔軟に対応できる。素早いリリースが可能。
デメリット:要件や設計の変更が頻繁にあるため、プロジェクトの方向性を保つのが難しい。

■プロトタイプモデル

開発初期に試作品(プロトタイプ)を作成し、システムを発注したユーザーに確認してもらう開発手法。
メリット:上流工程の段階でユーザーに確認してもらうため要件が固めやすく、手戻りが発生しにくい。
デメリット:プロトタイプを作成するために追加のコストや時間がかかる場合がある。

■スパイラルモデル

1つのシステムをいくつかのサブシステムに分けて開発を進める。
メリット:要件の変更があった際は次のサブシステムで対応可能なため手戻りが発生しにくい。
デメリット:プロジェクト開始時に工数が不明なため、スケジュール管理がしにくい。

今回のシリーズはウォーターフォールモデルで進めていきます!
理由は、フェーズを順番に進めるから今進めているフェーズがどこか分かりやすく、大まかな要件を決めてから細部の設計に入るから理解が深まりやすいためです◎

要件定義について

要件定義とは、システムを発注したユーザーからの要求を踏まえて、具体的なシステムの仕様を決定する作業のこと。
製品やサービスを開発するうえで実装すべき機能や要求を明確にしていきます。
要件定義は要求定義、基本設計と合わせて上流工程と呼ばれています。

要件定義の流れ

  1. 要求定義:開発会社と発注会社で十分な打ち合わせを行い、システムを発注したユーザーからの「こんな機能が欲しい」「〇〇が...したい」といった要求と認識のすり合わせを行う。
  2. 要件定義:要求定義の内容を受けて、具体的なシステムの仕様を決定する作業。納期と予算を踏まえて要求を整理して本当に必要な機能のみに絞る。
  3. 要件定義書の作成:要件定義の内容をドキュメントにまとめる。開発メンバーと要件の共有がしやすくなり、開発をスムーズに進められる。


以上!今回はざっくりと上流工程について学びました◎
次回は要件定義書の詳細や書き方について勉強していきましょうー!

株式会社ロックシステム

「ブラック企業をやっつけろ!!」を企業理念にエンジニアが働きやすい環境をつきつめる大阪のシステム開発会社。2014年会社設立以来、残業時間ほぼゼロを達成し、高い従業員還元率でエンジニアファーストな会社としてIT業界に蔓延るブラックなイメージをホワイトに変えられる起爆剤となるべく日々活動中!絶賛エンジニア募集中。