修士課程にも講義が存在します.この度その中の一つ「ソフトウェア開発法」を紹介します.
この講義は“3コマ6単位”という数字だけ見れば,非常にお得な講義と言えます.講義内容も一言でいえば,「注文されたプログラムを作成する」だけです.
しかし,ここに落とし穴が.あくまでも「実際のソフトウェア開発工程に則ってプログラムを作成する」ため,お客様に十分納得してもらう必要があります.ただ単にお客様の前でデモをして,「動きますよね?じゃあこれで納品ということで」ということにはなりません.お客様を納得させるもの,それが「ドキュメント」なのです.そして,そのドキュメント量が想像以上に膨大なのです.
例として,「基本計画」として必要なドキュメントを挙げると…
(1) 業務フロー図(総括ダイアグラム,詳細ダイアグラム) (2) 業務定義書 (3) 入出力データ定義書 (4) 開発体制図 (5) 開発スケジュール
これだけのドキュメントが必要となります.
もう一つの落とし穴,それは「詰め込みすぎ」です.大学時代の講義では「できるだけ多くの機能を盛り込む」ことが高評価につながります.しかし,お客様にとっては“シンプルだが使いやすい>多機能だが使いづらい”という評価基準になります.開発の際には,機能・使いやすさ・デザインと工程期間とのトレードオフが必要となります.実際,これを見誤ったためにデスマーチ一歩手前に陥ったチームもありました.
ここまでの記述だと大変な講義だと思われるかもしれませんが,この講義にはそれを上回るメリットがあります.「実際に開発することで,今まで意識していなかった点が見えてくる」ところです.先ほど落とし穴として挙げた「詰め込みすぎ」も,実際に体感しなければわからないことです.ドキュメント,特に詳細設計の作成には,空き時間があればチームで集まり機能設計及びドキュメント作成を行っていました.プログラム本体のコーディング時間は全体から見ればわずかなものです.設計の時点でそのプログラムの出来が左右されるといっても過言ではありません.膨大なドキュメントも,中身のある会議を根気強く続ければ作成することができます.
シラバスからは想像できない成果が得られるこの講義,皆さんもぜひ受講してみてはいかがでしょうか?
This friction will only be worn by persistence by Neil Peart from 'Vital Signs'