私がこのようなことを書いているのは、SEと言う仕事がどんどんダメになっていくのを見るのが忍びないからです。
そして、お客様にもう少しSEについて知って欲しいからなのです。
SEという仕事は人数が集まればよくなると言うものではないのです。
例えば、スキルレベルが3のSEの代わりにスキルレベルが1のSEを三人入れてもスキルの差を埋める事は出来ないのです。
しかし、それを無理やりしているのが現状です。
例えば3人月と言う言葉を聞いたことがないでしょうか?
これは3人で仕事をすると一ヶ月かかると言う意味なのです。
しかし、実際はSEのレベルによって大きく左右され出来る人ならば1人月もかからず仕上げることもあります。
逆に
出来ない人をたくさん集めてもその仕事は出来ない
のです。
私は、これを埋めるために出来た技法がウォーターフォール型開発なのではないかと思っています。
ウォーターフォール型開発にはある神話を信じている節があると思います。
それは、、、
上流SEはプログラムが出来なくても良い
と思っている節があるのです。
これは大きな間違いだと思います。
設計書の基準がないこの業界でプログラムの出来ない設計者などあまり役に立ちません。
実装の出来ない(もしくは役に立たない)設計書が出来上がるだけなのです。
ウォーターフォール型開発 は滝のように落ちていく開発方法です。
実装出来ない設計書が作られていても、製造するまではまったくわかりません。
これは、デスマーチが起きるフェーズは
製造が殆ど(おそらく99%)
であることから分かると思います。
もし、設計書通り事が進むのならば製造で時間がかかることなどあるはずがないのです。
設計書通りプログラマがプログラムを組めば良いのです。
これは、完璧な設計書があればプログラムを学んでいる学生でさえ出来ることです。
考えてみてください。
初めに完璧な設計書を求めるが故に多大なコストをかけるよりも、どんどん開発させて実際に出来るシステムであるかどうかを確かめながら進んでいく方が合理的だと思いませんか?
前回紹介したスパイラル型開発の一部であるアジャイルという開発手法(実際は総称)では
ドキュメントよりも動くソフトウェア
に重点を置いていていることからも分かるとおり、この開発手法は非常に実践的です。
新しい開発方法で見積もり方法も従来と違うかもしれませんが、ウォーターフォール型開発より良い物が出来る可能性が高いのです。
これから、システムを考えているお客様へ。
システムは入れれば会社の生産性が良くなるというものではありません。
下手をすればまったく使わない(使えない)ものになるかもしれないのです。
システムを頼む前に色々情報を仕入れておくことをお薦めします。
なお、システムを作る際に気になることがありましたらお気軽にメール下さい。(左上のメールアドレス参照)
私に分かることでしたら、お答えいたします。(その際にブログに公開しても構わないか教えてください。)
ちなみに、、、
想像通り、スパイラル型開発はそれなりのスキルが要求されます。(少ない母体数でプロジェクトを仕上げる場合が多い。)
しかし、それなりのスキルを要求されるからこそ人は伸びていくのではないでしょうか?
【アジャイル宣言】
我々は自らソフトウェア開発を行い、他人のソフトウェア開発を手助けすることで、ソフトウェア開発のより優れた方法を模索している。この作業によって、我々は以下のことを重視するようになった。
プロセスやツールよりも、個人と相互作用
包括的なドキュメントよりも、動作するソフトウェア
契約交渉よりも、ユーザとの協調
計画に従うよりも、変化に対応
つまり、左側の項目にも価値はあるが、被疑側の項目により多くの価値を見いだしている
また、上記4つの価値をサポートするものとして以下の12の原則についても同意しました。
・早期かつ頻繁に価値あるソフトウェアを納品することにより、ユーザを満足させることを最優先する
・短期のタイム・ボックス(単位となる期間)を好み、ソフトウェアを頻繁に、2週間から2ヶ月ごとに納品する
・進捗を図る第1の方法は、動作可能なソフトウェアである
・開発の後期でも、要求の変更を受け付ける。アジャイルは、ユーザが競争上の優位性を確保するための道具として利用できる
・プロジェクトの期間中、ユーザと開発者は毎日一緒に仕事をする
・モチベーションの高いメンバーを中心にプロジェクトを立ち上げる。彼らが必要とする環境とサポートを与え、彼らに任せて仕事を完成させる
・開発チームに対して、または開発チームの内部で、最も効率的かつ効果的に情報を伝達する方法は、直接対話することである
・最善のアーキテクチャ、要求、設計は、自己組織化したチームから生まれる
・アジャイルは、常に技術的なすばらしさや優れた設計に注意を払うことにより強化される
・シンプルさ、つまり、やるべき仕事の量を最小にする技が不可欠である
・チームは、より効果的な方法を探るための見直しを定期的に行い、それに従ってチームの行動を調整/修正する
※お客様に関係が深そうな箇所を私が勝手に判断してマーカーを入れさせてもらいました。