どうも。つじけ(tsujikenzo)です。このシリーズでは、2021年5月から始まりました「ノンプロ研GAS中級講座5期」について、全8回でお届けします。もう8回目で最終回なのですが、最終回を全3回に分けてお送りしています。今日は最終回の2回目です。(ややこしや)
前回のおさらい
前回は、「ノンプログラマーによるGAS開発モデルとは」 をお届けしました。
今回は、「プロの開発を知ろう」 をお届けします。
GAS中級講座のゴールとプロ
GAS中級講座のゴールは 「GASの開発・保守を楽に&スマートにできる知識とスキルを身につける」 でした。
プロの世界でも、発注者と開発者の認識のずれ が、開発・保守に悪影響を与えることが指摘されてきました。
出典:『発注者ビューガイドラインの活用と拡張』IPA
業務アプリケーションの開発は、1つとして同じ事業所がないように、規模や要件を統一できません。
なので、発注者と開発者の認識のずれをなくすために、プロの開発は、「機能要件の合意形成を目指す」 という試みを行っています。
機能要件の合意形成とは
「機能要件」とは、業務アプリケーションに「こんな機能が欲しいな」(=機能)を、決める(=要件)ことです。
機能要件の合意形成とは、かんたんに言うと 「なにを作るのか合意するために資料などを作成して共有しましょう」 ということです。
出典:『発注者ビューガイドラインの活用と拡張』IPA
では、プロの開発がどのように行われているのか、その世界をのぞいてみましょう。
プロによる開発
「プロによる開発」の定義
プロの開発では、業務アプリケーションの機能を1つ1つ、難易度によってポイント化します。(かんたんであれば1、むずかしいなら5など)
そのポイントを加算して、開発予算を見積りしたり、規模の大きさを可視化します。(FP法、またはファンクションポイント法と呼ばれる手法です)
このLTでとり上げる「プロによる開発」は、このように定義します。
– ファンクションポイントでは、300ポイント以上
– 金額では、5000万円以上
– プロジェクト構成では、10名以上
– 工数では、50人月以上
ノンプログラマーが、このような規模の開発と接点をもつことはないかもしれませんが、1つの目安としてください。
工程
プロによる開発の一連の流れを、工程と呼びます。
工程のうち、最初の「企画」「要件定義」「外部設計」の3つを、上流工程と呼びます。
要件定義
企画とは、開発で取り組む業務全体像の確認と、開発計画の立案を指します。
企画が固まると、次は、要件定義です。
企画で見えてきた開発計画をもとに、発注者の要望や課題を分析し、その他の利害関係者の整理や、「この開発ではなにをしてなにをしない」 などを決めます。
出典:『ユーザのための要件定義ガイド』IPA
そして、対象となる要望・課題によって、作成しなければならないドキュメントはさまざまです。大変多いです。
出典:『ユーザのための要件定義ガイド』IPA
大変ですが、よく 「仕事は段取り8割」 といいまして、要件定義が、開発全体をスムーズに行えるかどうかの重要な工程になります。
外部設計(基本設計)
要件定義が固まると、次は、外部設計です。
外部設計とは、発注者と開発者の間で、実現すべき情報システムの仕様を確認する最後の工程です。
業務アプリケーションから見た業務の流れや、利用者が使うインターフェイスなどを、発注者と一緒に確認します。
出典:『機能要件の合意形成ガイド』IPA
外部設計が対象とする技術領域は、このようになります。
対象となる技術領域によって、作成しなければならないドキュメントはさまざまです。大変多いです。
出典:『機能要件の合意形成ガイド』IPA
外部から見たシステムの仕様を定義する工程ですので、外部設計と呼びますが、別名、基本設計とも呼ばれます。
内部設計(詳細設計)
外部設計が固まると、次は、内部設計です。
内部設計とは、外部設計で決まった動きをどうやってプログラミングで実現するか決める工程です。
プログラマに開発を依頼するために、作成しなければならないドキュメントはさまざまです。大変多いです。
ユーザーから見えないシステムの重要な仕様を定義する工程ですので、内部設計と呼びますが、別名、詳細設計とも呼ばれます。
ここまでできたら、コーディング(実際にプログラミングを行うこと)工程に進みます。
テスト
コーディングが終わったら、必ずテストを行います。
記事スペースの都合で詳細は割愛しますが、「設計通りに正しく動いているか」などをテストしていきます。
まとめ
以上で、「プロの開発を知ろう」 をお送りしました。
プロの開発現場では、多くの利害関係者がいますし、工程によって決めなければならない要件も増え、ドキュメントが増えていきいます。
近年では、ドキュメントだらけになってしまい、開発が見えづらくなることや、変化に柔軟に対応できないことが、新たな課題となっています。
その課題解決のために「アジャイル開発」や「オブジェクト指向開発」も研究が進んでいます。
わたしもいつか考察してみたいと思いますが、まずは今回ご紹介したプロの開発を、ノンプログラマーによる開発に落とし込んでみたいと思います。
次回は、「ノンプログラマーによる開発」 をお届けします。
このシリーズの目次
- [ノンプロ研]GAS中級講座5期 事前課題
- [ノンプロ研]GAS中級講座5期Day1 スコープと関数
- [ノンプロ研]GAS中級講座5期Day2 クラス・ライブラリ
- [ノンプロ研]GAS中級講座5期Day3 組み込みオブジェクト
- [ノンプロ研]GAS中級講座5期Day4 ScriptServices1
- [ノンプロ研]GAS中級講座5期Day5 ScriptServices2
- [ノンプロ研]GAS中級講座5期Day6 HTTP通信・API
- [ノンプロ研]GAS中級講座5期卒業LT ノンプログラマーによるGAS開発モデルとは
- [ノンプロ研]GAS中級講座5期卒業LT プロの開発を知ろう
- [ノンプロ研]GAS中級講座5期卒業LT ノンプログラマーによる開発