こんにちは。
システムを開発する際、最初に行うのは要件定義です。
そして、1番難しいのも要件定義です。
要件定義で大事なのは何?
お客様が納品したシステムに満足してくれない。
プロジェクトがうまくいかない。
私は、10年以上のシステム開発を経験し、いろんな顧客とプロジェクトを行なってきました。
そんな、私でも、やはり要件定義では悩みます。
ただ、以下の点に注意すれば、失敗はしないようになりました。
- 顧客の要望をそのままシステム化しても使えません
- システム化で改善したい事を明確にしましょう
- プロジェクトの明暗は要件定義で決定されます
以下、その詳細を書いていきます。
顧客の要望をそのままシステム化しても使えません
顧客の要望をそのままシステム化しても使えません。
顧客は業務につてプロでも、システムについては素人です。
そして、システム化には、それなりのコストがかかります。
そのため、顧客の要望をきちんと聞くことで、もっといい方法を提示できるかもしれません。
良くあるのが、既にあるツールを使用した方が良かったり、表計算ソフトで十分な場合が多いです。
「顧客が欲しいと言うものを作るのがプログラマの仕事じゃないの」と言う声もありますが、
必要のないシステムを開発しても誰も喜びません。
なので、顧客の要望をそのままシステム化しても使えないのです。
システム化で改善したい事を明確にしましょう
システム化で改善したい事を明確にしましょう。
顧客が提示してきた要望が、顧客の業務でどのように使われるのかを知らないと、
システムを作ったとしても、顧客が満足するシステムにはなりません。
良くあるのが、業務の概要から、システムの要件が作成されている場合です。
その場合、現場で行われている細かい作業に、システムが対応できなかったりして、
使えないシステムとなってしまう可能性が高いです。
「業務の概要から作成されたシステムでも十分使えるのではないか」
と思うかもしれませんが、
実際に、作業している現場では、いろんな手順があり、
手順を変更するとパフォーマンスが低下するのです。
なので、まず、システム化で改善したい事を明確にしましょう。
プロジェクトの明暗は要件定義で決定されます
プロジェクトがうまくいく、
つまり、開発したシステムが、顧客に喜んでもらえるには、
欠かせないものがあります。
それは、
- 現場で働く人をチームに入れること
- 業務の流れを整理すること
- システムを作る事で起きる変化を確認すること
です。
現場で働く人をチームに入れること
現場で働く人をチームに入れること。
これが1番重要です。
上でも書きましたが、現場では細かい手順があります。
その手順を熟知しているのは、現場で作業している人です。
顧客のシステム部のみと要件定義をまとめずに、
現場の担当者を入れることで、システム部の知らない作業に注意することができます。
現場の人が入ると、非機能仕様が入るから嫌がるエンジニアもいます。
でも、使えないシステムを導入するよりも、
現場の意見を取り入れた要件定義とする方が喜ばれます。
なので、現場で働く人をチームに入れるようにしましょう。
業務の流れを整理すること
業務の流れを整理することも重要です。
顧客の要望をもとに、業務全体の流れを整理することで、
エラー条件などが明確になっていきます。
実際の作業では、この条件になった場合は、
この値をチェックするなど、細かいチェックが存在します。
エラー条件などの内容は、要件定義の工程で洗い出しておく方が、
後の工程で、漏れを防ぐことが容易になります。
なので、業務の流れを整理することは重要なのです。
システムを作る事で起きる変化を確認すること
忘れがちなのが、システムを作る事で起きる変化を確認することです。
システムが実際に導入されると、多かれ少なかれ業務手順が変更されます。
それによる効果や問題を先に想像してもらうことで、
顧客のシステム開発へのモチベーションを維持することができます。
例えば、業務の流れを整理しながら、
「この作業がシステム化されるので不要になります」
などと言うと、結構、よろこばれます。
また、「そのためなら協力しましょう」となります。
現場では、システム化されることは聞いていても、
具体的なイメージができていない場合がよくあります。
その場合、業務が優先となってしまうため、
質問やチェックの回答に時間がかかってしまいます。
なので、システムを作る事で起きる変化を確認するようにしましょう。
まとめ
今回は、システム開発の最初に行う、要件定義で大事なことについて書きました。
- 顧客の要望をそのままシステム化しても使えません
- システム化で改善したい事を明確にしましょう
- プロジェクトの明暗は要件定義で決定されます
顧客の要望をそのまま、システム化しても、
業務では使えないシステムになってしまいます。
そのために、以下のをことを行うことで、
失敗しない、要件定義が作れます。
- 現場で働く人をチームに入れること
- 業務の流れを整理すること
- システムを作る事で起きる変化を確認すること
そもそもなのですが、
システム開発の失敗とは、
顧客が望むシステムが開発できないことです。
プロジェクト自体が黒字や赤字とは別ですので悪しからず。
では、今日はこの辺で。
ーーー<システム開発工程の記事>ーーー
●設計については、以下のブログで詳しく書いてます。
>>>システム開発で設計書は必要なの?【アジャイル開発でも設計書は必要】
●テストについては、以下のブログで詳しく書いています。
>>>システム開発のテストで大切なことは?【技法が先行するとテストにならない】
ーーー
コメント