2011年04月25日

システム開発工程

いろんな案件でシステム開発をしています。
どこも似たような感じで工程を踏んでいます。
いろいろな表現があるとは思いますし、間にこまかくあるところもあるでしょうが、概ねこのような感じではないでしょうか。

1. 要件定義 : 顧客の要件を確認する
2. 基本設計 : システムの概略についての設計を顧客に分かる言葉で表現する
この間にフレームワークの選定や開発が始まる
3. 詳細設計 : プログラム内部の設計を行う
この間にフレームワークのテストが始まる
4. 製造 : プログラム開発
5. 単体テスト : 開発したプログラム単品のテスト。だいたい製造と一緒
6. 結合テスト : 複数の機能の連結テスト
機能単位を含める場合や、規模によっては2つに分かれる
7. システムテスト : システム全体を結合してみてテスト
8. 受入テスト : 運用も含めて顧客が要求通りにできているか確認するためのテスト

でも、いつも最後のフェーズでいつも、運用に無理がきたりしています。
そうです、だれも使う人間のことなんて考えていません。
どうやって作るか、実現するか、何をシステムで機能を実現するか考えていますが、
だれがどうやって使うかは最後に決まっていませんか?

だから方式論、方法論、べき論ばかりが先行しているような気がします。
それが悪いわけではありませんが、それは我々SIerの自己満足にしかなりません。
これらは我々が品質をどうやって担保するか、安く作るかです。
もちろん、これは最終的には顧客が支払うお金に関係するためあるにこしたことはありませんし、ないのも悪いとは思います。
でもでも、それよりも本当に顧客のことを考えていますか?

私の妻は運用保守をやっています。話を聞いていて、いつも反省します。
多くのハードウェアベンダー、ソフトウェアベンダーの勝手な方式論でできる/できないという言葉に翻弄されてしまっているように聞こえます。つまり、私たちが本当はできても面倒だとか、我々が楽になるからとかが最終的に見え隠れしています。

結局、使えない、数年後にはさらに保守費を安くしたくなる、結局保守費は変わらない、結局フレームワークや作りがSIer独自で他の企業に頼れなくて縁を切れない、顧客もスキルが育たない状況です。
要は、顧客の無知に付け込んでいるようにいつも私ははたから見えているのです。
食べ物とかで無知に付けこまれて高いものを買わされると文句をいうくせに、いつも顧客との打ち合わせでは「顧客は分からないのだから」と言って、資料を用意したり隠したり。。。。。
本当は作れたものも、こちらの予算が回らなければ平気で「技術的には難しいです」なんてことも言います。
一部上場している大手SIerの全ては同じだと思います。なぜそれがわかるかというと、私の会社もそのひとつでしかも、SI専業でも5本指には入る大手です。。。

今、本当のシステム開発手順はどうあるべきか考えています。
これも完璧ではないとは思います。でも、もっともっと良いものがあると信じています。
こんなことばかり言って私は勝手で無責任の極みだとは思います。
でも、こうあるべきだと多少はよくなるというものを紹介出来ればと思います。
posted by Kiruahさん at 21:00| Comment(0) | TrackBack(0) | ノウハウ