システム設計書

システム設計書


システム開発における設計書。

名前の付け方、内容の記述の仕方、実はこれ、ベンダーによってまちまちなんです。

名前の付け方に関して言えば、外部設計書/内部設計書というベンダーもあれば、基本設計書/詳細設計書というベンダーもあります。

場合によっては、それらを一纏めにして設計書というベンダーもあります。

内容に関して言えば、ユーザが理解しやすいように要件定義(業務の視点)からブレイクダウンしていき、システムの内部処理までを関連付けした設計書もあれば、コンピュータ/プログラムの視点を重視した設計書もあります。

対象のシステムにより記述内容が異なるので、一概にどちらが良いとは言えませんが、困るのは内容が充実していない設計書です。

ユーザの中にシステム開発に精通した人がいれば内容の不足をチェックできるでしょうが、精通した人がいないユーザはベンダーから示された設計書が全て。

でも、ちょっとまってください。

システムの検証をするときに、何を根拠に検証するんでしょうか。

そこに書かれていないことが納品されたシステムに実装されていなくても、何の証拠もないんですよ。

仕様凍結の手順を踏んでしまうと、設計書に書かれていないことは、後から『これは仕様追加です』と言われても、その内容でユーザ/ベンダー間で仕様の合意をしてしまっているのですから、ユーザには分が悪くなります。

設計段階でシッカリと打合せをし、仕様詰めをしたから大丈夫だろうと根拠のない安心をしていると、後でしっぺ返しを食らう事もあります。

また、数年後システム更改しようと思っても、システムがどの様になっているか分からなければ、何処をどう更改するのかも判断できなくなります。

要するに、設計書ってそのシステムのバイブルなんです。

システム開発をお願いしたベンダーに全てを任せるから大丈夫!

と言う声も聞こえてきそうですが、そのベンダーは『絶対』なくなる事はないでしょうか?

システム開発を担当し、そのシステムを熟知しているSEが『必ず』面倒を見てくれるのでしょうか?

ユーザ側も、システム開発プロジェクトに携わった人が、システムが稼動している期間『必ず』面倒を見れるのでしょうか?

社内にチェックできる人がいないユーザは、第三者の力を借りてでも設計書は整備するように心掛けるべきです。


システム検収

システム検収


プロジェクトも後半になると、ユーザ企業ではシステムの受入検収や運用テストやら、考えなくてはならない事が増えてきます。

実際に関与しているプロジェクトの一つが大詰めを向かえ、主だった議論が

◇業務移行について

◇システム検収について

◇運用テストについて

◇本稼動開始時期について

など、本稼動までにユーザ企業が行わなければならない事にスライドしてきました。

その中で、ユーザ企業としてわかり難いのが、システム検収(検収手順)についてのようです。

そもそもユーザ企業にとって 『システム検収』 とは何をすべきなのでしょうか。

簡単に言ってしまえば 『確かに要望した通りにシステムが出来上がっている』 事を確認し、承認する事です。

しかし、闇雲にシステムを動かしてみても、まんべんなくシステムの検収が行えるものではありません。

ですから まんべんなくシステムの検収を行うためにも 『何をどの様に確認するか』 という視点で 『検収手順』 を明確にすることはとても大切な事なのです。

ベンダーとしては、検収完了をもって売上に計上するなどの事情もありますから早めに検収を完了したいでしょうが、ユーザとしては安易に検収を完了してしまうと取り返しのつかない事になることがあります。

バグであれば契約上、瑕疵担保責任の条項が入っているでしょうから何とかなりそうですが、システムへの実装漏れがあっても検収を完了してしまっていては、漏れの取扱いついて揉め事になるのは必至です。

要求事項がシステムへ実装されていることを確認すると共に、正確にシステムが稼動する事を確認してから、検収完了とすべきなのです。

※但し、システム設計段階で漏れがない事を確認し、ユーザとベンダーでシステムの範囲とその実装機能について合意しているということが前提です。

それが 『システム検収』 というものです。

当たり前の事ですが、システム検収を行う前にベンダーによる各種テスト(単体テスト/結合テスト/総合テストなど)が実施され、システムが 『まともに動く』 状態になっていなければなりません。

そうでなければ、システム検収をやる意味がありません。(システム検収段階ではないという事です)

それでは、システム検収はどの様な手順で行うべきでしょうか。

闇雲にシステムを動かしても、システム全体をまんべんなく動かせるものでもありません。

システムは 『入力』 『処理』 『出力』 の3つの組み合わせで出来上がっているのです。

その組み合わせは、業務フローを意識して出来上がっているはずです。

と言う事は、業務の流れ(業務フロー)を意識して、システムを動かしてみる事が肝要ということになります。

そして、組み合わせの正確性を確認するために、

◇システム全体をまんべんなく動かすための 『データ』 を用意する

◇想定結果の通りに、システムが正しい結果を出すかどうかを確認する

事を意識した、業務の流れ(業務フロー)に順ずる検収シナリオを作る事が肝要ということになります。

納期延期

納期延期


納期に間に合わないシステム開発プロジェクト。結構多いんです。

納期遅延を引き起こす原因は様々ですが、最近、実際のコンサル現場で発生したプロジェクトを例にしてみると、

遅れの原因として、

◆プロジェクトの立ち上げ遅れ

ベンダー側のプロジェクトが発足したのは発注後1ヶ月。元々タイトなスケジュールがより一層タイトに・・・

◆プロジェクト要員の確保遅れ

ベンダーが必要数の要員を確保できず?

ただこれは、このシステム開発規模からすると何人のSEが必要かという私の経験からの感覚なので何とも言えませんが・・・

◆要求事項に対する理解度

一般的に考えると特殊な業務であり(但し、その会社では当たり前の業務ですよ)、なかなかユーザ側の意図する事が理解されず・・・

ベンダー選定にあたり当該業界での経験を重視したのですが・・・

◆ドキュメント纏めの遅れ

ベンダー側の要員が揃わず、担当SEが何役もこなさなくてはいけない状況。逆にこちらが心配する有様・・・

でも担当SEは焦りからどんどん先へ進めるが、その内容が設計に反映されない・・・

結局は、仕様が後戻りしてしまう事に。

◆対策の遅れ

経験上、諸々と対策を立てなければならない状況になり、イエローカードを出しました。

早速、ベンダーより体制強化などの対策案が出されましたが、結局は思うように体制強化が出来ず・・・


悩み多きユーザ企業

悩み多きユーザ企業


多くのユーザ企業が、システム開発で悩みを抱えているのではないでしょうか。

システム発注の前段階では、

(1)コンピュータの事はよく判らず、システム導入するために何をしたらよいのかわからない。

(2)システムの開発をどの会社に頼んだらよいのかわからない。

(3)契約書にはどのような条項をいれるべきなのか。

などなど。


システム開発段階、導入段階では、

(1)納期通りにシステムが出来上がらず、いつになったら導入されるのかわからない。

(2)当初の予算を大幅にオーバーしてしまい、いったいいくら掛かるのかわからない。

(3)出来上がったシステムを、どの様に受け入れ検収したらよいのかわからない。

などなど。

実際にシステム調達のコンサルをやらせていただく際、ユーザ企業はシステム発注までに何をすべきか、そしてどの様に段取りを立ててベンダーにシステムを発注すべきなのかを明確にします。

そして、システム開発段階、導入段階でのユーザ企業のすべきことも。

それでも、システム開発の様々な工程で問題は発生するものです。

私は、指導者面した表面的なコンサルをするのではなく、ユーザ企業のエージェントとして効率的なシステム調達のお手伝いをすることを目的とし、一緒に作業を進めていく方法をとっているので、ユーザ企業の内実にドンドン突っ込んでいきます。

そのため、一緒に悩みを抱えてしまうことも度々ありますが・・・

その原因がユーザ企業側にあるのか、ベンダー企業側にあるのかによって対処の仕方は変わります。

その都度、問題解決に向けた対策をたてて調整をするのですが、ベンダー側の原因による問題でかなり厄介なものもあります。


作業段取り

作業段取り


システム関連のコンサルをさせていただいているユーザ企業(A)の話です。

システム開発を担当するベンダーが、迷走状態と思える状況です。

ベンダー側の諸般の事情で、システム設計に関するユーザ合意(確認)を得られていない機能が存在するにもかかわらず、ベンダーの思い込みで勝手にプログラム製造を進めてしまい、そのシワ寄せが現れ始めているのです。

更に納期も近づき、本稼働に向けてやらなければならない作業も積み重なり、二進も三進も行かない状況を作り出してしまったのです。

今更ではありますが、作業段取りを立て直すべく、WBS(Work Breakdown Structure)などにより作業を洗い出し、現状を正確に把握するようアドバイス。

しかし、そもそも段取りを立てることに不慣れなようで、結局は業務に追われてしまい空回り状態。

そうなると、当然ながらスケジュールは遅れます。

ところが、この状況をベンダーの営業担当や技術部門の責任者は正確に把握しておりませんでした。

プロマネから正確な情報が伝えられていなかったのです。


逆に、スケジュール遅れの原因は

◇製造したプログラムの仕様変更が発生した

◇ユーザ側の検収が遅れている

などと捉えており、あたかもユーザ側に責任があるような言い様。


追加費用は、どちらが負担すべきか(その5)

追加費用は、どちらが負担すべきか(その5)


システム開発過程におけるシステム開発費の追加。

今回は 『納期遅延』 に係わる追加費用について取り上げてみたいと思います。

◇◇◇◇◇◇◇◇◇◇

システム開発がスケジュール通り進行せず、その結果、納期に間に合わなかった事に付随する費用はどうすべきでしょうか。

ベンダーが納期に間に合わなかったのだから、ベンダーが負担して当たり前であり、それよりも、納期遅延に対するペナルティを科すべきだ!

との声がユーザ企業から聞こえてきそうです。


ベンダーからは、ユーザ企業側は自分の落ち度は棚上げし、全ての責任を押し付けるのか?

と反論の声が聞こえてきそうです。


そもそも、納期遅延を引き起こした原因は何だったんでしょうか?

ユーザが要件を確定しない?

ベンダーの能力?

理由は様々でしょうが、それぞれの立場により主張が異なるのは当たり前です。

どの様な経緯で納期が遅延してしまったのか、事実を明確にしなければ、その責任の所在すら明確になりません。

その為には、納期遅延はシステム開発のリスクの1つと認識し、常に状況を把握できるプロジェクト運営が望まれます。


追加費用は、どちらが負担すべきか(その4)

追加費用は、どちらが負担すべきか(その4)


システム開発過程におけるシステム開発費の追加。

今回は、『システムテスト/検収時に発生する追加費用』 を取り上げてみたいと思います。

◇◇◇◇◇◇◇◇◇◇

システムテスト/検収工程

この段階で追加費用が出てくるというのは、明らかに 『要件漏れ』 『考慮漏れ』 『設計ミス』 が原因の大半を占めることでしょう。

基本的には、ユーザ企業またはベンダー企業のどちらの 『落ち度』 で発生したかによって、追加費用の負担先が決ることでしょう。

ただ、どの様な経緯でこの工程まで進んできたのか、その間にどの様な合意がなされたのかなど、設計書や議事録などに証拠を残しておかなければ 『落ち度』 を判定することは非常に難しいでしょう。

ただ、判定する材料がないとベンダー企業が圧倒的に不利になるでしょうが、ユーザ企業もその事を逆手に取らず、真摯に協議する姿勢が望まれます。

◇◇

まずは、起こさないようにするにはどうしたら良いかを考えたほうが建設的ですね。


システム設計書

システム設計書 システム開発における設計書。 名前の付け方、内容の記述の仕方、実はこれ、ベンダーによってまちまちなんです。 名前の付け方に関して言えば、外部設計書/内部設計書というベンダーもあれば、基本設計書/詳細設計書というベンダーもあります。 場合によっては...