homeup mail to
sub title

マネージメントの王道
( 19980220 )

Japanese/English

『ワインバーグのシステム思考法〜ソフトウェア文化を創る1』(共立出版、G.M.ワインバーグ著)は、システム開発の渦中にいるSEなら、読みはじめると面白すぎてやめられない書物だろう。

この本は、ソフトウェア開発プロジェクトを成功に導くためのマネージメントのあり方について述べているが、僕がこの本に異常なおもしろさを感じた理由は2つ。一つは、僕自身は職場では管理される下級SEの立場なので、無責任に楽しみながら読めること。

もうひとつは、この本が、よくあるように「オブジェクト指向分析」や「CASE手法」など、新手の管理手法を紹介する単なるマニュアル本ではないことだ。

たぶん多くのSEが、プロジェクト管理の書物に失望するのは、それが目新しいメソッドの紹介マニュアルにしかなっていないからだろうが、このワインバーグの本はもう一つ上位のレベルの問題を論じている。それは、ソフトウェアの「文化」そのものだ。

別の言葉でいえば、この本のねらいは、プロジェクト管理者の「手法」を変革することではなく、「認識」を変えることである。そこがこの本のむっちゃ面白い理由でもある。

この本には、思わず「なるほど!」と言いたくなるような、プロジェクト管理者の心得がちりばめられているので、まずは通読をお勧めするが、僕は例によってななめ読みをしてみたい。

ワインバーグはソフトウェア開発プロジェクトを6つのパターンに分類している。邦訳だけで3巻にわたるこの書物の第1巻では、そのうちパターン0からパターン2までを中心にあつかっている。この分類が、ひじょうに的を得ていて「そうそう!」とうなずいてしまう。

まず、パターン0のプロジェクトは、厳密にはプロジェクトとは呼べない。例えば、パワーユーザーが自分の使うちょっとしたツールをプログラミングするような場合がこのパターンにあたり、ユーザーと開発者が同一人物である。

次に、パターン1のプロジェクトは、スーパープログラマーがリードする開発組織である。プロジェクトが成功するも失敗するもプログラマー一人ひとりの腕しだいであるため、やはり「管理」というものは存在しない。小人数の精鋭チームの場合にだけしか、このパターンは成功しない。

そして、パターン2のプロジェクトは、スーパーマネージャーがリードする組織である。自信過剰のリーダーは、プログラマに圧力をかけさえすれば開発期間が短縮されると信じている。このパターンは、すべてが計画どおりに運んでいる限りは目覚しい成果をあげるが、一度つまづくと悪循環におちいって崩壊に向かう。

この次に出てくるパターン3は、自信過剰のプログラマーも、全能観にとりつかれたリーダーもいない。むしろ全員が、開発プロセスそのものをコントロールしようとする。何かでつまづいたからといって、圧力をかけてかえってプロジェクトを崩壊に追い込むこともない。

この類型化は、自分の働く職場にあてはめてみると、ひじょうに面白い。ふだん管理される立場として働くSEなら、必ず自分の開発グループがどのパターンにあてはまるか判断できるはずだ。

たとえば、あなた自身がプログラマーとして満足のいく仕事ができていたとしても、それはあなたのグループが、まだパターン1の段階にとどまっているからかもしれない。

確かにパターン1のような組織は、20人ほどの気心の知れた仲間でわいわい話し合いながらやるには楽しい組織だ。それぞれのプログラマーはルールに縛られることもなく、自分の好きなスタイルでプログラミングできる。

その結果、できあがったシステムが多少ちぐはぐな外見でも、あるいは納期を半年ほど遅らせたとしても、寛大な会社ならOKを出してくれるだろう。

ただ、それも気心の知れた20人ほどの仲間でやっている限りの話だ。より大きなプロジェクトがパターン1のままで生きのびられるはずがない。

そうなったときにパターン1の組織がおちいりがちな誤りが、パターン2である。プログラマーに任せていてはダメだというので、プロジェクトリーダーはやおら圧力をかけ始める。「残業、徹夜は当たり前」、という具合に。

あるいは新たにプログラマーを投入することで、なんとか納期を切り抜けようとする。このとき、パターン2のチームリーダーがおちいっている誤りを、ワインバーグは非線型の現実を、線形の思考法で判断することだと言っている。

線形の思考法とは、10人なら10日で終る仕事は、20人でやれば5日で終るという思考法のことだ。あるいは、圧力をかければかけるほど、プログラマーの能率は上がる。徹夜をすればしただけ、納期は短縮できるという考え方だ。

しかし現実は、開発の後期に新たなプログラマーを投入することは、むしろ納期を遅らせ、圧力をかけられるほど、欠陥の多いコードができあがる。

ワインバーグは、このようなパターン2の組織は、その誤りから学ぶべきだと書いている。もっと言えば、パターン2の組織は、あくまでパターン3への過渡期としての存在意義しか持たないということだ。

なるほどワインバーグの言うことはもっともだ。線形の発想しかできないリーダーは無能である。その実例である反面教師は僕らのまわりにたくさんいる。

問題は、僕らが彼らの立場にたったとき、さまざまな外部からの圧力にも屈せずに、プロジェクトをうまくコントロールし続けられるかだ。

そのために必要なのは、開発プロセスの定量的な把握、そしていったい何が起こっているのかを冷静に分析する能力であって、間違っても、決起集会を開いてプログラマーの尻をたたくことではない。

最後に、この本からいくつか示唆にとんだ警句を引用したい。


  • 圧力を加えれば加えるほど得るものは少なくなる

  • 多忙なマネージャーすなわち悪いマネージメントだ

  • 品質をてっとり早く片づけようとすればするほど、問題はますます悪くなる

  • もっとも困難な故障は、定義からして最後に検出される

  • エラーを処理する最良の方法は、まず第一にエラーを作り込まないようにすることである

  • みかけがどんなでも、人は役に立とうと努力しているものだ


    homeup mail to