初心者
システム開発
要件定義
上流工程
creatus

協力会社のぺーぺーPGが要件定義に参画して~上流工程の考え方~


■はじめに

プロジェクトの導入である上流工程の「要件定義」から参画できたので

そこで得たことや感じたことなど自分なりの考えをまとめれたらと思う。

もちろん人それぞれの考えがあるし、そのプロジェクト独自のアプローチなどもあるので

一概には「こう!」とは書けないが少しでも共感できたり納得して頂けたら幸いです。

(逆に「俺はこうだった!」「私はこう思う」など教えて欲しかったりもする。)


経歴

業界歴:2年弱

経験工程:基本設計、詳細設計(外部設計、内部設計)、開発、単体テスト、結合テスト

要件定義はもちろんだがリリースや保守、運用などもまだ経験したことがありません。


■要件定義とは

「要件定義」とはプロジェクトにおける初期段階

どのような機能(動作)を担うシステムを構築するかを明確に整理する工程です。

「初期」や「上流」といった言葉はそのままの意味だが

システム開発には様々な開発工程モデルがあるが

ほとんどのモデルの最初の工程が要件定義の場合が多いのでこのような言い回しをよくしますね。


■要求の明確化

まずこれから作り上げていくシステムで

何を作るのか」「何がしたいか」「既存のものからどう変えたいか」などを

明確に決めて行かなければなりません。

飲食店でカレーライスを注文したのに、ラーメンを出されたら怒りますよね?

もしかしたらお金を払って貰えないかもしれません。。。

そのような認識の齟齬1を回避する為にも

打ち合わせを行い、出された要求を明確に定義します。

そこで重要な資料となるのが「議事録」です。

打ち合わせを行い、すべきことが明確になったとしても

人間の記憶力は曖昧で忘れてしまうこともあります。

・あの時にんじんは抜いてくれと言われた気がする。。。

・ルーを多めでと言ってたよね?

という不明確なまま作業を進めたり、あとから要求自体をひっくり返されたら困ります。

なのでその打ち合わせのお互いの整理のためにも

曖昧な記憶の整理するためにも、難題の回避の盾になるためにも

記録として「議事録」は重要な役割を担います。


■コスト、工数の見積もり

システムを作るプロジェクトを行うのには、お金が必要不可欠です。

ではいったいいくら掛かるのかの見積もりの計算をし、お客様に提示します。

先に行い明確にした要求からどのようなものを作り上げ、作るにあたりどのようなアプローチを行うか

整理をしながらコストを明確にしていきます。

工数、コストには「人件費2」や「材料費(HW3/SW4などの費用)」、「管理費5」、「外注費6」などがあります。

常駐先の規定や他の同会社の既存プロジェクトからある程度の指標を引けたりする場合もあります。

この工程のうちに懸念や課題の解消もある程度は考慮して、そちらも工数に入れたいですよね?

例えば、「膨大なファイルを転送する場合のレスポンス」や「メール転送する場合の認証可否」など

工数に跳ねそうな部分は明確にしておかないと見積もりを提示した後、

問題が発生して稼動を上げて対応しなければならなかったり、そもそも出来ないじゃん。。。なんてことも起こりえます。

なので測定検証が大事になってきます。

それを行ったことで新たに使用しなけらばならないツールやSWが発覚した!なんてこともありえますからね。


■見送り事項や落しどころ

さて、見積もりを出してお客様に「やる」「やらない」の可否を決定して貰います。

まぁ一発でゴーサインを出してくれれば御の字なのですが、大抵は値引き交渉というか初期予算からはみ出してしまうことも多々あります。

そぉなった場合は、「どの部分を削るか」または「予算の追加」などを検討し決定いただかなくては徒労に終わってしまいます。

なので「予算からはみ出た機能は次期開発で行いましょう」とか「この機能のここの一部分だけ削れば」などの落しどころを提案しスタートラインを切って貰いましょう。


■最後に

今回、この要件定義、上流工程に着手させて貰い、普段何気なくただ言われたことを黙々とこなしていればよいという考えでは、進めれる工程ではないと感じた。

お客様が「何を求めていて」「こうすれば実現できる」「どう説明すれば伝わる」「その為にはこんな資料が必要だ」などアプローチへの思考を巡らせながら作業をしていた気がする。

本案件では、各種色々な部署から要望が上がってきていて「こっちではこうして!」「あっちではああして」っと若干食い違っている意見なども出て混乱した部分もあったり、関連機能の説明を各部署ごとにしたりした。

(打ち合わせ日取り合わせてよ~とか、各部署で連携してよ~って思ってましたが…)

ただお客様の意見や思考を直接聞けてとても勉強になりました。

技術屋の目線でない考えや説明の仕方は今後大切なことを得れたと思います。


その他

参照1http://language-and-engineering.hatenablog.jp/entry/20100903/p1

参照2http://www.it-innovation.co.jp/2015/02/23-001454/





  1. 認識されている内容が異なること(ビジネス上、内容の確認やレビューの依頼時などにメールなどでよく使用される用語) 



  2. プロジェクトメンバーへの労働費 



  3. ハードウェア (HW) システムの物理的な構成要素を指す。直訳だと機械、装置、設備 



  4. ソフトウェア(SW)何らかの処理を行うコンピュータ・プログラムや、更には関連する文書などを指す 



  5. スケジュールや進捗管理などのマネージメント業務費用 



  6. プロジェクトには直接関係しないが関連システムへの依頼で発生する費用