2024.08.29
- 技術情報
- テックブログ
技術投稿│要件定義で感じたこと
自己紹介
ニックネーム:姉さん
経験年数:7年
大学卒業後、東京のSES事業の会社に3年勤務し、2019年11月にアクロクレインに中途入社。転職前はPerlでのcgi開発をメインにし、現在はPHPでのシステム開発を行っている。要件定義から保守・運用まで長期のプロジェクトに携わってきた。
ここ数年、技術を磨くため開発からテストまでの工程に携わっておりましたが、現在は機会をいただき、要件定義から案件に携わっています。久々の要件定義となり、苦戦もしておりますがその中で感じたことを今回記事にさせていただきます。
要件定義と成果物について
要件定義ではお客様の要望とその要望をどのように叶えるかをまとめたものを成果物としてドキュメントを作成していきます。ドキュメントは主に3つの要素を明確にする必要があると考えています。
業務要件
現状の業務がどのように流れているかを可視化し、整理し、正しく把握する上で大切となります。
また、技術によって解決できること・できないことが出てくる場合もあるため、業務の中にどのようにシステムを落とし込むのか、解決できる課題を見極め、これからの開発の方向性を定めることが主な目的です。
機能要件
機能要件とは、業務要件に沿って具体的にどのような機能を実装するのかを決めることが目的です。
機能要件を元にして基本設計が作られていくため、必要とされる機能、または最低限実現すべき要件は何か、明らかにしておくことが大切です。
非機能要件
機能以外でお客様がシステムに求める要件を指します。主にセキュリティ、可用性、性能・拡張性などが該当します。
必要とする機能を実現しても、処理性能があまりに悪かったり、障害から復旧するのに時間がかかったりするようでは、運用時に耐えられません。そのため、これらについても要件をきちんと定義することが大切です。
この要素の中でも業務要件の把握が不十分なまま開発に着手すると、お客様が求めるシステムとは程遠いものになってしまう、開発規模が大きくなり、後続のスケジュールに大きな影響を与える恐れがあります。今回は業務要件で整理する上で最も大切となるフローの記載についてご紹介します。
フローの種類
フローの書き方には種類がいくつかあり、代表的なフローチャートを紹介します。
JIS(日本工業規格)
「情報処理流れ図」の規格は情報処理の手順を表すフロー図ではありますが、業務フローにも応用して使われることがあります。
業務フローとして落とし込む場合は、もともと業務の流れを規定したものではないため、各記号の定義を決めておき、認識の統一が必要となります。
BPMN(Business Process Model and Notation)
業務の開始から終了までの手順を表すフロー図になります。日本語では業務プロセスモデリング表記法と訳され、国際標準(ISO19510)になっています。
BPMNは表記ルールが明確化したもので、記号や流れから業務の全体流れ・ステップを可視化することができます。
DFD(データフロー図)
もともとデータの入力元、出力先や格納先を表すフロー図ではありますが、業務フローにも応用して使われることがあります。
業務よりも主にデータの流れを明確化するために使われます。
スイムレーン図
スイムレーン図は各部署・部門や業務の担当とその業務のタイミングを明確に表した図を指します。
他のフローとは異なり、部署・部門の概念があため部署・部門間内の処理の流れを1つの図で表現できます。
次に私が業務でよく見かけるBPMNをご紹介します。
BPMNの基本
特徴
BPMNで表された業務フローは、When(いつ)・Where(どこで)・Who(誰が)・What(何を)・Why(なぜ)・How(どのように)の5W1Hで表現できると感じています。
・When(いつ):処理や作業をするタイミング
・Where(どこで):処理や作業をする場所
・Who(誰が):処理や作業を誰が担うのか、関係
・What(何を):処理や作業の内容
・Why(なぜ):何のために、目的
・How(どのように):どうやって処理や作業を行うのか
業務全体の流れを可視化され、誰が見てもわかりやすく表現することができます。
次に基本的な記号をご紹介しています。
記号
イベント
開始と終了に利用される記号です。どちらも円形で、終了の方は太線になっています。
これらは、ひとつのフロー図の中にひとつしか利用されません。
アクティビティ
業務内容を表す記号です。実行すべき業務・タスク名を中央部分に入力して使用します。
ひとつの業務・タスクにつきひとつの記号を配置します。
ゲートウェイ
条件分岐や並行処理を表す記号です。ゲートウェイは、交差する点に配置します。
シーケンスフロー・メッセージフロー
シーケンスフローは業務の順序を表す矢印です。関連するイベントやタスクなどの記号を結びます。
メッセージフローは別のフロー図へのやりとりが発生する場合に、コメントを書いて繋いでおくための矢印です。
プール・スイムレーン
プールはフロー図全体の範囲を表します。
スイムレーンは部署・部門ごとに分割したレーンを表します。レーンを設けることでそれぞれの業務・タスクの担当者が明確にできます。
書く時のポイント
1. 業務・タスクの範囲を決める
業務・タスクの目的を明確にしたうえで、フローに記載する範囲を決めることが大切です。目的が曖昧だとフローが複雑になってしまったり、不明瞭な部分が出てきてしまいます。
2. 関係する部署・部門、業務・タスクの洗い出し
業務・タスクに関係する部署・部門、業務に関わる人を洗い出します。また、その人たちがどんな業務・タスクを行うのかを手順の他に使用するドキュメントや道具まで洗い出すことでフローにする際に書きやすくなります。表や、リスト化するなどして簡易的に整理しておくとフローにしやすくなります。
この工程を踏まずにいきなりフローにすると認識の違いが生まれ、フローの書き直しが発生しやすいように感じます。
3. 記号を使いすぎない
BPMNには複数の記号が用意されていますが、すべて使わなければならないわけではありません。相手にわかりやすく、伝わりやすくを意識してシンプルなフローの記載を心がけることが大切です。
まとめ
経験から思うことを中心に個人的な観点での業務フローの紹介内容となりましたが、皆様の経験では要件定義についてどのように感じていますでしょうか?
お客様によってはITを専門にしない方もおり、説明やドキュメントの表記の仕方については都度工夫してわかりやすくする必要があります。
また、ドキュメントを作成している自分では気づかないことも多く、要件定義の中でお客様に言われたときや会話の中で気づいたときに都度修正することでお客様との認識合わせが行えるため、わかりやすく書くこと以外にもやり方・進め方も工夫していくことも大切だと感じています。
とは言っても、まだまだ不慣れで苦戦することも多く、何度もドキュメントの作り直しもしてきました。ここに書いてあることを意識するだけではうまくいかないこともあります。少しでも頭の中に入れておけば、作業を進めやすくなったり、ドキュメントの作成の手助けになってきたと感じています。私自身、これからも精進していきます。
ここまで読んでいただき、ありがとうございました。また次回お会いしましょう。