盲目

「見えない。分からない。把握できない。それが中核問題かもね。」

ハンバーガーなら、食べれば味が分かる。作り方も見てれば分かる。焼け具合も見れば分かる。手で触れば重さや感触も分かる。だから改善ができる。味付けを調理者に任せていたらバラつきが激しいとなったら、味付きのミートパティを使うようにしようとか、焼け具合がバラバラなら、温度センサーを付けようとか、「意思決定をする人が、問題を認識し、解決策を考えることができる」。

ソフトウェア開発の場合は、それが難しい。例えば「オブジェクト指向を採用すれば生産効率が向上するらしい」と云う話を聞いたとしても、オブジェクト指向以外で生産効率が上がらないのは何故なのか、その原因は分からない。採用すれば現場がどう変わるのか、そのイメージも湧かない。机に向かってキーボードを叩いてる姿は何も変わらないしね。そもそも、自分のところの技術者がどの程度オブジェクト指向技術を習得しているのか、有効活用しているのかどうかも分からない。対外的には自社はエキスパートだと言うけれど、実態がどういうものなのかを正確に把握してはいない (ビジネス的にはうまく行くしね)。

IT 屋の仕事 (成果) はあまりにも目に見えなさ過ぎる。システム開発が改善に向かわない原因の一つとして、意思決定者が問題を正確に把握できないと云うのは、かなり大きな問題ではないかと思うのだ。

自分の会社で、あからさまに見た目が似ている二つのシステムが開発されたとする。経営者は「こんなもん、一回作ったら、二個目は三日もあれば作れるんとちゃうの?」と担当者に訊くとする。それについて「同じように見えますけど、中身はけっこう違うんですよ。流用できる部分もあると思いますが、三日とかそういうレベルではないですねぇ…。再利用のための仕組みを作るのも時間がかかりますし、一から作った方が速いと思います。」と担当者が返事をしたとすると、ここで再利用については諦めてしまうことになる。

まあ、実際はこんなに簡単な話ではない。ただ、他の製造業なら成果物や過程が目に見えるから、意思決定者が機械の配置を変えたり、新しい機械を導入したりすることを検討できるのが、IT 業界だと問題が見えないために、現場の判断に左右される比率がかなり大きいと云うことだ。現場から提案を出すべきだと云う話でもない。現場が考える問題点や、提案の要旨を理解できないから、結局は、採用が進まなかったり、的外れな解決策が提示され、期待した効果を発揮できない結末を迎えることが多い。

昨日「職人を育てるよりも、職人ぢゃなくても作れるようにした方がいいんぢゃないの?」と書いた。ソフトウェア開発では、技術力の高い職人が力を発揮する仕事もあれば、どちらかと言えば単純作業に近いような部分もある。技術力の高い技術者に単純作業系の仕事 (職人ぢゃなくても作れる部分) を割り当てるのは、まったくもってもったいない話。このあたりの仕事の割当を工夫すれば、ずいぶんと開発効率は変わってくる。だけど、人を動かせる権限を持っている人、意思決定する人からは、なにも「見えない」もんだから、「職人が必要な部分」「職人ぢゃなくてもいい部分」がどれだけあるのか分からないし、どうやって分離するのかも、そもそも分離できるものなのかどうかも、よく分からない。

もし、なんらかの方法で、見えないもの *1 が見えるようになれば、事態はずいぶんと変わるだろうなぁ…と云う考えが、ここしばらく頭の中を駆け巡っている。

*1:ソフトウェアの中身や仕事の内容や、その他もろもろの形のないもの。