なぜスケジュールが管理されないのか
現実のスケジュールの多く(殆どかもしれない)は「管理」されていません。書かれてもいないかも知れません。簡単に言えば成り行き任せであり、メンバーの「ガンバリに期待するしかない状態に」に依存していると考えられます。そのため、期限が近づくと徹夜の連続となり、最初の期限を過ぎてもそれは続けられるのです。その時にはもはや「予算」や「予定」と言う文字は頭の何処にも存在しないことでしょう。
そうしてやっとの思いで完成しても、そのような事態になった原因が反省されることがないため、次のプロジェクトでも同じことを繰り返してしまうのです。(前の作業が押してきて、次のプロジェクトの開始を遅らせてしまうことも一因)。
前回の作業は、考えに考えた末に出てきたものではなく、その人の有していた「思考」のおもむくまま(=思い付くまま)に行動されたものである以上、各人がその「思考パターン」を断ち切らない限り、再び同じ思考パターン(=思い付くまま)に従って行動することになります。しかもこのときの「思考パターン」は意識さることはありません。その結果、“ソフトウェアの開発は予定通りに行かないものだ”という神話が成立してしまうのです。
でも、どう考えても、ソフトウェア開発だけが例外である理由はありません。ハードウェア開発と比べて“内なる作業”が多いからという人もいますが、それならもっと外に現わす作業に変えて行くべきです。「神話」の上に座り込んでいても何も得られません。今必要なのは「神話の座布団」から降りることです。そしてそんな座布団なんか燃やしてしまうことです。
神話が成立している組織の状況を整理すると、そのような組織では、
1)成果物が見えないまま作業を進行させている
2)当然、作業工程と成果物が繋がっていない
3)スケジュール管理というものについてよく知らないために
4)「管理」から逃げてしまうし
5)暗黙の「相互不可侵条約」が結ばれてしまう
という状況が起きていると思われます。
巷には、オブジェクト指向とか、ソフトウェアメトリクスとか、クリーンルーム手法とか、ソフトウェアプロセスなど、色々な言葉が氾濫していますが、このような組織に必要なのは、設計手法でもなければ、分析手法でもありません。もちろん高尚な開発手法でもありません。ただ、作業を「管理」することであり「約束」することです。混乱なく約束を果たすために配慮に充ち溢れた「管理」が必要なのです。それらの手法や技法が効果を発揮するには、その前に(ある程度)「約束」出来る状態になっていなければなりません。
「管理」と言っても、特別なものが必要なわけではありません。ハードウェアの世界にも建築の世界にもあるような「管理」であればよいのです。もっと分かりやすく言えば「段取り」です。特に「チーム」の中での段取りが重要です。ソフトウェア開発の管理は、他の分野と比べて異なっている部分は幾つか考えられますが、それらは工夫次第でいくらでも補えるはずです。