top of page
アンカー 1

第14話 ソフトウエア開発は、人間業にあらず。

ソフトウエアまたはプログラムというと
これほど、人間が作るもので非人間的なものはないのではないかと思います。
だって、何万行ものリストを1行たりともミス無く作らなければならないなんて
人間業とはいえないでしょう。しかしそれが仕事なんですよね。

車などの用途である組み込み用ソフトでは、現在では、C言語などの高級言語が主流となっていて、
数万行のリストを作成し、それをコンパイル(機械語へ翻訳する)していますが、
そんなソフトウエアも一人ではできないので、20人~50人以上のチームで
それぞれの担当部分を作成して全体として機能するようになっています。

少し前までは、まだアセンブラいわゆる機械語の一種で数百~千行のリストを作成していました。
また人数も2~4人くらいで小規模なものでした
小規模では有るけどそれでも数百行~千行のリストをミス無く作る。
またアセンブラの場合は機械語ですから、意味のない文章を自分の頭で意味づけして作成する。
そんなまあストレスが多い仕事でしょうね。

そんなある時、海外向けの新型エンジンを制御するソフトウエアを部下の
数人と一緒に開発していたときでした。
ある時、そのソフトを試験していた得意先から、どうも何かの時に
瞬時エンジンが吹き上がってしまう不具合がある という連絡を受け、
車内で打ち合わせの後、ソフトの再試験と評価を実施して、
不具合点を見つけ出すという作業に入ったのでした。

それを1週間、2週間と続けても不具合点はわからず、ジリジリと時は経ち、
いよいよ新車の出荷時期が近づいてくるではありませんか。


タイムリミットがどんどん近づいてくるのに比例して、あせりと焦燥感で士気は最低でした。

かくなる上は、2千行ものリストを一行一行チェックして見つけるしかありません。


といっても漫然とリストを見ていても、

リストの各行の機能がどういう機能なのかが全て違うわけですから
誤字脱字を見つけるのとは全く違います。

通常のハードウエア機能不良なら、不具合内容から推察される現象を全て網羅して

現象を潰せばよいのですが


ソフトウエアはそうは行きません、ある意味全ての行が全ての不具合につながるからです。

それを続けていくうちに、担当者は、もうやることはありません。
全てチェックしたけど、間違いはありません。と言い始めたのですが。。。


でも不具合が分からなくては量産へGOサインは出せません。
無駄でもいいから視点を変えてリストチェックを
再々再 度チェックするようにエンジニアをなだめながら指示を出し

それでも再度、再度、リストのチェックをすることを指示して、
最終的にはどうするかということを考え始めたのでした。


そして約2ケ月位すぎ、いよいよ切羽詰まって、見つけられない場合は、
会社としてどういう責任を取るか、もう一度、一から作り直すような時間が取れるかなどの 
コンテンジェンシー プラン(緊急時対応計画)の作成に取り掛かりました。

そんなある夜でした。既に就寝して居たときでした。突然、電話がかかり、
ソフトウエアを今もチェック作業をしていたエンジニアから
「ボス、見つかりました。。。ミスが、見つかりました。。。
やっと、自分が作成した部分の一部にミスが有りました。」と大きな声でいうではありませんか。
時は深夜2時くらい。夜を徹してリストの再確認を何回もやった結果、

やっと見つかった。というのです。

翌朝、出社して再検証したところ、やはりミスの部分は当たっていて、

それで無事出荷OKとなったわけですが。

しかし考えても見て下さい、年間何10本ものソフトウエアそれもそれぞれが何千行のリストを作り、
それらが全て正しいなんてことは無いですよね


人間がやることですから。しかし幸いにも不具合があっても、

その不具合が深刻な症状を引き起こさなければ
それは見た目にも、症状としては出てきませんから。


ですからこの世の中に、不具合がないソフトウエアなんて存在しない と思っているのは、
殆ど大多数のエンジニアの思いではないでしょうか。

良く銀行のシステムソフトの不具合で大混乱が生じることを時々聞きますが
それもさもありなん。人間が何10万行のリストを作るのですから、
まあ人命にかかわらないだけでも良しとしなければんね。

bottom of page