こんにちは。セルネッツの竹本です。
今回は「システム開発の工程と流れ」というテーマで解説をしていきます。
業務システム開発という意味では特定の開発言語に特化した内容ではありませんので、プログラミングを勉強中のかたはぜひ最後までご覧ください。
今ご覧いただいている先頭のシート、開発の工程のお話です。エクセル開発を例にお話をさせていただきます。
前提条件に書いたのですが、12月末をターゲットにしたようなケース、グレーの色がついているところが作業工程です。
赤枠で囲った12月末をデッドラインとした場合は20日過ぎてクリスマスの感じになるので、ここをターゲットにすることはまずありません。その1か月前ということになりますが、そこもキリが悪いのでだいたい11月末をターゲットにして、なにかあっても12月20日には間違いなく終わるような開発のスケジュールを送ります。
左から順番に工程が流れていきます。基本的に全部重要なのですが、まず区分のところでお話をすると、超上流では要求の分析、「このシステムはなんのためになにを解決するシステムにするのか」というお話をすることがあるので打ち合わせが中心で一番重要になります。
重要度の星がひとつずつ減っていくだけですが、続いて重要なのが設計の工程です。上流工程と言われるところです。基本設計からテスト設計まで。
ここまでできればあとはプログラム開発ということで下流という呼び方をすることもあります。
ちなみにその下は操作ガイドや制作物の話になるので必要に応じて制作をしたりしなかったりという形になります。
システム開発の流れ・工程は、超上流の要求分析、要求定義、要件定義。この3つが非常に重要になってきます。
順番に解説をします。
まず超上流のお話です。
超上流の3つですが、要求分析という意味ではまずお客様から実現可否を問わず現在の課題を洗い出し、リスト化していただくと良いと思います。
今回は大きめなシステム開発を例にしたのでこうなりましたが、1、2時間の打ち合わせで拾い上げられるものであればここまでかしこまった正式なものは省略することが多いです。エクセル開発の場合は大規模にはなりえないのでこういう作り方をしていくことがあります。
いずれにしてもなにを課題として、どういうご要望を反映することでなにが解決されるのか、ここが明確になっていることがとても重要になります。
お見積もりのご提示に関しても、そもそもなにを実装していくのかが見えていないと見積もりというよりは参考価格、それ以前の根拠のない金額提示になってしまいますので、なにをするためのシステムを作っていくのかは非常に重要になります。
超上流の3つに関しては次回の動画で詳しく解説をしたいと思います。
続いて画面設計3つ。
これまで動画で紹介をさせてもらいましたが、画面設計という意味ではこういう画面を作る、たとえばセミナーのお申し込み登録フォーム、これまでは手作業でやっていたので、システムでとなった場合はどんなインターフェースで登録をしたいか、お申し込み番号、自動採番が良いのか、検索のキーは日付と氏名以外になにが必要なのか、このフィールドで過不足がないかなどを決めていきます。
それを細かく定義するのが「画面設計2」のシートで、グレーのところはこれまでの動画でお話をしました。フィールド名や属性の定義から、すべて定義をしていきます。
たとえばデータエントリー系です。追加をして修正をして削除する。データベースにデータを登録して呼び出すものに関しては左上の「どんなフォーマットでやっていきますか?」、それから「データベースに溜まったものを使ってデータを出力、帳票を出していくときにどんな出力指示画面が良いですか?」ということも話し合いで決めていきます。
IO設計、インプットアウトプットのIOです。
入出力ファイル設計と呼ばれるものですが、プログラムの11番21番31番、それぞれがどのファイルを入力としてなにをアウトプットするのか、そのアウトプットを使って次のプログラムがなにをするのかということで、プログラムの単位で入出力ファイルを決める必要があります。
齟齬のないように消し込んでいくことが非常に重要になります。
コード設計に関してはたとえば画面設計のところで申し込み番号を自動採番、手作業だと間違ったりすることがあるので自動でやる場合、たとえば23年7月であれば今の番号、1番から振るようなイメージです。
1番を振ったら次が2番目、次が3番目。これを外部のマスターとして採番マスター、これを外部に置くことでクロスです。クロスされたところの番号にカウントアップをしていくような考え方が採番マスターです。
原始的にそういうやり方になるので難しいものではありません。
いろいろなデータベースがあると思いますが、たとえばメジャーなところで得意先・仕入れ先・商品マスター・採番マスター・従業員マスター。あとは下、トランザクションという日々溜まっていくデータですが、上が台帳、マスターです。
これらに対してひとつずつフィールド、どの順番でどういう要素に切り分けていくかも決める必要が出てきます。
それから差し込みでフィールドが追加になることは日常茶飯時だったりするので、大きな改修にならないように予備フィールドを持ったり、不具合のことを考えてデータレコードが発生したときの作成日・作成時刻・作成者はうしろのほうに追記するのが良いと思います。
このあたりを決めるのがDB設計です。
テスト設計ということで、3つあります。
まずは先ほどのプログラムでいうと単体テスト。自分が作ったプログラムがあらゆるパターンで問題がないか、それからプログラム同士を連結していったときの結合による結果が正常値をもたらすかどうかの結合テスト。それから総合テストがあります。
重要なのは非機能要件と呼ばれる性能テストです。
ここに書かれている信頼性・堅牢性・高速性・利便性拡張性・ユーザビリティに関しては、お客様から「ここをよろしくお願いします」と言われることはまずありません。これは暗黙の了解になりますので担保する必要があります。
責任という意味でもきちんとやるべきことに含まれるので、非機能要件ではそれぞれの求められることを理解して改修性・メンテナンス性の高いツールにしていく必要があります。
超上流に関しては主に打ち合わせが中心です。大事なポイントは、打ち合わせには実務担当者の参加が必須です。
偉い人ばかりが集まる打ち合わせでは実務担当者の要望が反映されないものができあがる可能性がかなり高いので、経験上、実務担当者は最初から出ていただくことがおすすめです。
設計のところでイメージを作っていきますが、どんどん叩き台をリリースして見ていただいて進めるのがポイントです。
設計がほぼ終われば下流の工程ということで、開発あるのみということですが、エクセル開発の場合は規模が小さいということと、小さな業務効率化がメインになるので、基本的には1人の担当者がすべてやることになり、上流と下流が同時進行ということも普通にあります。
ということで、早ければ発注をもらった翌日に動作確認可能な叩き台を出すことも珍しくありません。
最後にシステム開発の手法のお話です。
大きく2つに分かれますが、エクセル開発は下のほうのB(アジャイル)です。小さく作ってリリースをする。リリースの都度確認いただいてイメージを高めていってもらう、深めていってもらう。
そしてゴールに近づいて最後は最終要件、たとえば10個の要件が持たされるものであれば消し込みながらやっていきますが、すべての要件が実装されて正常動作をするということで運用可能になるので、その段階で納品という流れになります。
ということで、超上流・上流・下流という流れ方をするわけですが、必ずしも期間がちょっとずつずれていくものでなければ同時に走ることもあります。
工程ではこういった項目が基本になるのでシステム開発をするかたにとっては知っておくべき情報になります。
システム開発を発注する側であってもこういう流れが元になるということを理解しているとわりと交渉・折衝しやすいものになってくるので参考にしていただければと思います。
解説は以上となります。少しでも参考になったかたはぜひチャンネル登録・高評価をお願いします。
エクセル中心の業務の効率化であったりシステムの導入についてお困りのかたは無料相談も受け付けていますので詳しくは概要欄をご覧ください。
動画は毎週金曜日の夜9時に投稿しています。ありがとうございました。
タケモ塾では、今後も皆さんのVBA学習に役立つコンテンツを作成してまいります。
ブログ記事、Youtubeチャンネルのご質問・ご感想・ご要望などお気軽にお問合せください。
お問合せはこちらから ✉
タケモ塾運営:株式会社セルネッツ