(201の鉄則:原理14<一般原理=システムを漸進的に成長させるように計画せよ>)
ソフトウェア開発を難しいものにしている理由の一つが、顧客や市場の要求を、開発に着手する前に正確に掴むことが難しいことにあります。顧客も、実際に動くものがあればイメージしやすく、色々と細かな注文や希望を出すことが出来るのですが、それが紙に書かれた文章であったりすると、それも専門用語が並んだものであったりすると、それを右脳の世界で読むことは、なかなか出来るものではありません。
また「顧客」といっても、必ずしも「外」に居るとは限りません。社内システムの場合は、顧客は別の社内のセクションの人であったり、時には、そのシステムを作っているセクションの中にいることもあります。そういう開発者の身近なところに居る人であっても、状況は何も変わらないのが現実です。
要求が、開発に着手する前にどれだけ合意に達するかは、プロジェクトを成功に導く大きなポイントです。通常は、85〜90%が合意点に達していることが目標です。それでも、要求は変わってきます。要求の内容を正確に把握するのが難しいだけでなく、要求そのものが変化しやすいものであることから、長期の開発プロジェクトを成功させることが難しくなるわけです。プロジェクトの期間は長くても6ヶ月です。1年という期間が設定されたプロジェクトは、最初から成功させる意図が存在しないものということもできます。もちろん、関係者は目尻を吊り上げて反撃してくるでしょうが、成功の目算はあるのかと言われると、明確に答えることは出来ないでしょう。実際には、要求は変化させないとか、リスクが存在しないとか、非現実的な制限を付けないと、成立しない計画になっているものです。
このような状況を回避するために、「スパイラル・モデル」や「プロトタイピング」「インクリメンタル開発」といった開発方法やモデルが提案されています。それぞれ、外見上は似たところがありますが、実際に開発作業を進めて行くときの姿勢は、それぞれ違いがあります。
この中で、インクリメンタル開発というのは、比較的新しく出てきたもので、スパイラル・モデルとの違いは、要求仕様は最初に全てまとめられていることです。そしてシステム全体のアーキテクチャや「構造」も考えられています。ただ、開発そのものを幾つかのフェーズに分けて着手し、それぞれのフェーズでテストや評価が行なわれます。その結果得られた情報は、次のフェーズ以降の部分に対して、要求を含めて何らかのフィードバックが行なわれます。アーキテクチャや構成も変更するかもしれません。要求は途中で変化する可能性があることは、最初から認識していますので、前の開発フェーズのフィードバックを待つわけです。
開発部隊とは別に評価部隊が存在するような開発体制の場合、インクリメンタル開発が効果を発揮します。設計や開発のレベルが高ければ、一般に評価作業中に開発のエンジニアは“手”が空きます。その証拠に、評価グループが最終サイクルを回しているとき、開発グループは何をしているでしょうか。もちろん、開発グループが劣悪なソフトウェアを作った場合は、そのようなことは期待できません。
評価グループが評価している間に、開発グループは、次のフェーズ以降に残された要求を見直したりして、開発準備に取り掛かります。実際にシステムが動き始めたことで、新しく「要求」が出てくるものです。もちろん、幾つかはバグも発見されるでしょうから、幾らかは優先度の高い「割り込み」が発生するでしょうが、開発部隊と評価部隊が、ほぼ完全に「並行作業」が出来ることのメリットは大きいはずです。
評価部隊にとっても、小さく区切った開発フェーズで評価することで、評価のトレーニングになるでしょうし、新しく用意したツールなどの完成度を上げることもできるでしょう。一方、開発部隊にとっても、先のフェーズの「結果」が出てくることで、作業の進め方や、成果物の品質や精度などで、次のフェーズの作業に反映させることが出来ます。
また、このような形で開発を進めることで、開発リスクを軽減させることに繋がります。新しい企画であったり、新しいアーキテクチャを採用した場合なども、製品としての存在を左右するような機能などを早めに確認することもできます。また、開発の仕方や、設計方法や技量に問題がある場合も、それが製品全体に広がる前に、対応策を講じることが出来ます。実際に、最後になってソースを検査してみると、凝集度や複雑度などに問題のあるモジュールが発見されたり、不用意にグローバル・データが使われたりしていることがしばしばあります。しかしながら、その時点では機能テストも終わっており、既に書き直すことの出来るタイミングを逸しているため、結局、そのまま通してしまうことになります。でも、こうした「好ましくない遺産」は、その後も長く開発グループを苦しめることになるのです。インクリメンタルに開発フェーズを分けることで、このような危険を最小限に抑えることが出来ます。
また、メンバーの技量や知識に不安があるような場合も、こうして何回か開発サイクルを回すことで、学習効果も期待できます。
▲あの忌まわしい大地震から3年という時間が過ぎました。この間、多くの人たちが、復興に努力をしてこられたようですが、どうも行き詰まりを見せているように思えてなりません。確かに都市としてのインフラは、70%余りは復興したようですが。
▲神戸の経済のシンボルでもある港の荷動きも、震災前の80%ぐらいまで回復しているようですが、そこから横ばいになっています。人口も、それに合わせるように減っています。既存の法律の前で、住宅の復興の遅れや、新規の企業(起業)が立ち上がってこない。つまり、経済が動いていないということです。80%というのは、そこに住む人たちの生活維持のレベルでもあるのです。
▲震災から3年経って強く感じることは、この国は、相変わらず「土建行政」であり、市民の心を汲んではいないということです。「まちづくり協議会」の活動も、ほとんど停滞しているという。行政側が、既得権を持った業者を背後に擁して、その利権を離さないかぎり、この種の活動は行き詰まらざるを得ません。そしてここで停滞したことで、市民の方も「弧人主義」が頭をもたげて来てしまったのでしょう。
▲震災は、新しい街をつくる絶好のチャンスでしたが、どうやら元の木阿弥になってしまったようです。それを感じているから、市民は神戸を離れたのでしょう。その人たちの気持ちのどこかに、「捨てる」という気持ちがなかったでしょうか。いやそうして動ける人は、まだ救いかも知れません。動けない人たちは、一体何を考えるでしょうか。もし、「生まれてこなければよかった」と思う被災者がいるとすれば、行政の怠慢であり、方向違いであり、「国」としての恥です。やりきれない。明日は我が身かも知れないのだから。
この「SCだより」が今回で100号に達しました。これも、読者の皆様の御支援があったから出来たことで、この場を借りて厚く御礼申し上げます。
最初は、ここまで続くとは思ってもいませんでした。ただ「次の世代」に対して言わなければならないことがある限り、そしてシステムクリエイツという会社が続いている限り、発行していこうと思って始めたわけです。
§ ・ § ・ §
「SCだより」は、啓蒙活動の一つとして始めたわけですが、当時は今と違って、電子メールもなければインターネットもホームページもありません。ですから印刷するしかありませんでした。丁度ポストスクリプトのプリンターが出たのを機に、発行を開始したわけです。余談ですが、当時このプリンターは出始めで100万円もしたため、止むなくリースを組んだほどです。
§ ・ § ・ §
何が私にここまでして「SCだより」を書かせているのか。それは、ソフトウェアを開発するという仕事に対する愛着であり、思い入れかもしれません。この仕事を「苦痛の職業」にしたくない、と言う気持ちが、ここまでやらせていると思います。私自身、30年ほど前に、この「ソフトウェア」というものに出合い、ソフトウェアの開発という仕事を通じて、多くの人と出会い、多くの本(技術書、一般書)を読み、多くのことを考える機会を得ました。一時期、苦しい時もありましたが、総じて楽しくソウトウェアの開発をしてきました。そしてお客様にも、満足して頂けたものと思っております。
§ ・ § ・ §
いいかえれば、「ソフトウェアの開発」は、私の半生の基盤であり、存在の源であり、「人生の道場」でもあります。その人生の道場を「苦痛の場」にしてはならないという思いです。そこは決して「苦痛の場」ではなく、創造があり出合いがあり発見がある、まさに「喜びの場」のはずなのです。でも現実は、何かを間違えたために「苦痛の場」と成ってしまっています。
§ ・ § ・ §
その原因の一つが、技術者の意識の偏りです。そして組織や周りの環境も、プログラムが書ければそれで良しとしたことで、ソフトウェア・エンジニアの意識の偏りを助長してきました。「あるべき姿」を持たず、売上を上げることしか考えなかった。その正しい方法論を無視して、日々の目標だけを追いかけた。
§ ・ § ・ §
「あるべき姿」を、持たないということは、「見識」を発揮することが出来ないということであり、「見識」に欠けるということは「決定」が出来ないということになってしまいます。断片的な「知識」だけでは、自信をもって決定することはできません。知識が繋がり、広がりをもって「見識」とならなければ、決定することは出来ないのです。
§ ・ § ・ §
そしてこの「見識」は、技術の分野だけでは成立しません。そこに“いる”「人間」を巻き込まなくては、「あるべき姿」にはなりません。「CMM」も“人間”を忘れてしまうと、そこに見えるのは「生産性ロボット」でしかなくなります。「エンジニアリング」というラインに沿って、決められた手順に従って作業をするロボットになったのでは何の意味もないのです。「CMM」は仕事を上手く進めるためのノウハウであり、それを使うのは人間なのです。人間として幸福を感じることが第一なのです。
§ ・ § ・ §
ただし、そこには一つの制限が存在します。単に、自分で幸福と感じると言うだけでは困るのです。それが「社会の代償」のうえに得られるようなものでは困るのです。多くの人は、自分の存在が「社会の代償」の上に成り立っている危険に気付いていないのかもしれません。自らの存在が、社会に貢献する形で得られる幸福こそが、皆さんにも手に入れて欲しい幸福でもあるのです。そしてそれを仲介する役割が「SCだより」にあるかぎり、これからも、執筆を続けていこうと思っています。
§ ・ § ・ §
最後に、今の私の気持ちを代弁してくれる詩を紹介して、100号の記念の挨拶とさせていただきます。
『私の願い』
一隅を照らすもので私はありたい
私のうけもつ一隅がどんなに小さい
みじめなはかないものであっても
わるびれずひるまずいつもほのかに
照らしていきたい
田中良雄
(参考)田中良雄
明治二三年生まれ、大正四年住友総本店に入社、以後人事畑を歩み、昭和二二年取締役を最後に住友本社を辞任。昭和三九年死去。著書として「私の人生観」「人間育成」「職業と人生」「雑草苑」など。(「職業と人生」カバーより抜粋)
「公正に行動する勇気を身に付けている人格者は、決して賄賂に釣られたりはしない。買収側の工作にまんまと乗せられてしまうのは、根性のさもしい無節操な連中だけだ」 サミュエル・スマイルズ
どうも最近は、元大蔵官僚や警察官などの醜聞が氾濫している。公債引き受け幹事を巡っての証券会社の接待攻勢や、不祥事の捜査の情報を入手するための接待攻勢に、いとも簡単に釣られてしまう。というより、「役得」とでも思っているのではないか。自分の「立場」や「存在」そのものが、金を生み出すことに気付いたとき、人は理性を失うのかもしれない。その証拠に、署内で現金を受け取っているというし、賄賂を要求しているともいう。つまり、すでに賄賂に対する罪悪感は持っていない。
気になるのは、この「根性のさもしい連中」が、ごく少数ではないかもしれないということである。かくも大胆になれるところをみると、もしかして「みんなやっていること」という認識があるのではないか。そうなると「やらなけら 損」という気になってくるだろう。
最近は情報公開が声高に叫ばれているが、殆どが、「食糧費」の使い道といった一部であって、まだまだ公開の範囲はしれたもの。特に、警察組織はまったく蔵の中に入ったままで、お金の使い方は一切公開していないはずである。
でも、大学を優秀で卒業し、エリートとして高級官僚や役人に登り、その人生の結末が「収賄」というのでは、余りにも情けないではないか。