「システムにはミスがつきもの」はそうだが
マイナンバーカードについて、誤登録などのミスが報じられると「ソフトウェアはバグがつきものなのだから、発覚したミスはプログラムを修正すれば済む話。大騒ぎすることはない」というコメントが散見されるようになった。
運用開始直後のソフトウェアにはミスやバグがつきものだということが、これほど広く知られるようになったかと、(一応)元システムエンジニアの筆者(梶原)としては感慨深くもある。ソフトウェアをハードウェア(工業製品)と同一視せず、「リリース後も改修が続くものだ」とする理解は、それほど一般的ではなかったと思われるからだ。
だが、「改修はつきもの」という理解は、さらなる誤解と表裏一体でもある。今度は「ちょちょっと直せばすぐうまく回るようになるんでしょ?」というソフトウェアに対する誤解が生じてくるからだ。
さらに言えば、「ソフトウェアにバグはつきもの」は、ソフトウェア開発のほんの一面に過ぎない。こうしたソフトウェア開発に関する誤解を解き、ソフトウェアと利用者、テクノロジーのいい関係を構築しようというのが倉貫義人『人が増えても早くならない』(技術評論社)だ。
タイトルは、「プログラマーの人数を増やせば増やすほど、ソフトウェアの完成は早まるのでは?」という誤解に対する回答だ。
〈遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせるだけである〉という格言(フレデリック・P・ブルックス『人月の神話』)を引き、情報共有やメンバー間のコミュニケーション、タスクを細分化して「誰にどこを割り振るか」を考える労力などによって、「むしろ人を増やすことでソフトウェアの完成は遠のく」ことを説明する。
本書ではこうした誤解を8つの章で易しく解説。ソフトウェアやプログラムとはなんであるか、が分からなくても、エンジニア経験がなくても理解できる視点で、具体的にソフトウェア開発の要点を教えてくれるのだ。
プログラムには個性と美学がある
システムエンジニアやプログラマーは「IT土方」と評されることもある。これは長時間労働などで仕事がきついこと、多重請負の末端にいること、比較的低スキルの仕事で単価の低い仕事をさせられるというブラックなイメージから来る揶揄なのだが、本書を読むとこうしたイメージは一変する。
プログラムにはエンジニアにしかわからない美しさがあり、中でも一流のプログラマーや設計者は一定の美学と得意分野を持つアーティストに例えられているからだ。
確かに(非エンジニアの印象とは違って)プログラムは個性が出やすいものであり、これがソフトウェア開発のマネージメントの難しさに繋がってもいる。個性が出やすいものであるにもかからず、属人性を排除しなければならないからで、それは「後から誰が見ても、何をしているのかすぐわかる」プログラムにしておく必要があるためだ。
文章を「後から誰かが直すことを考慮して書いておく」人はいないが、プログラムは他者による改修を前提としている。これはミスやバグを直すという意味だけではなく、後からどんな機能が欲しくなるか、どういう動きに変えていくか分からないため、プログラムに発展性を持たせるために必要なことなのだ。