チャンドラーとプログラマー

2023年7月16日

チャンドラーは米国の作家である。村上春樹氏がチャンドラーの長編7作を10年がかりで翻訳した。翻訳の最新作は2017年刊行の「水底の女」である。
このチャンドラーの名前を冠したソフトウェア開発プロジェクトがある。
「プログラマーのジレンマ 夢と現実の狭間」(スコット・ローゼンバーグ 日経BP社刊行)は、チャンドラーの開発現場を追ったノンフィクション小説である。
チャンドラーはソフトウェアの名称であり、OSAF(オープンソースアプリケーション財団)がオープンソースとして開発を進めた。
チャンドラーの開発に参加したのは、いわゆる職業プログラマーである。以前のブログ記事に、日本のIT業界、特にエンタープライズ系には職業プログラマーと呼ばれる人は少ない、ということを書いた。一方、米国では職業プログラマーが多くいるようだ。
その理由は、米国の雇用制度が(日本とは異なり)職種/職務を基本に設計されていることが関係していると思われる(すなわち、プログラマーやテスター、プログラムマネージャー、プロジェクトマネージャーが職種として確立している。さらに中途採用が当り前に行われているなど、労働市場の流動性が高い。)

本書を読むことで(少し昔の話ではあるが)、米国のソフトウェア開発の実情を垣間見ることができる。驚くことは、ソフトウェア開発プロジェクトで発生している問題点の数々が日本と変わりないこと、そしてフレデリー・ブルックスの「人月の神話」(1975年)で指摘された問題点がいまだに残っている(今でも生きている)ということである。
これはソフトウェア開発の進歩が(ハードウェアの進歩に比べて)極めて遅いことを意味している。この点は本書でも指摘されている。
「(社会の)ソフトウェアシステムへの依存度が急速に高まる一方、それを確実に作る方法は着実ながらも”徐々にしか”進歩せず、そのギャップは大きく、時に恐ろしくさえある」

以下、本書で指摘されているソフトウェア開発プロジェクトの問題点をいくつか見ていきたい。この業界で昔から指摘されてきている問題が、今でもあまり変わっていないことが見て取れる。
「米スタンディッシュ・グループが発表しているカオスレポートの2004年の公表値によると、ソフトウェアプロジェクトのうち、成功しているものは29%であり、失敗したプロジェクトは18%、そして難航しているプロジェクトは53%である」
ここで難航しているプロジェクトとは、予算超過や納期遅れ、機能の一部が実現されないプロジェクトのことである。このようなプロジェクトが半数以上あり、失敗プロジェクトと合わせると約8割にのぼる!

「ソフトウェアシステムの構築で最も難しい部分は、何を作るかを正確に決めることだ」
これはブルックスの「人月の神話」からの引用であるが、チャンドラーのプロジェクトにもこの箴言が当てはまる。どのような機能を、どのように実装するかで議論が紛糾し、プロジェクトの進捗は度々滞ってしまう。
「私(著者のこと)自身OSAFの仕事を1年間見てきて、『彼らはいつ進みだすんだ? どれだけ時間をかけるつもりだ? 何が障害になっているんだ?』と疑問を持った。ソフトウェア開発の混沌とした沼地に呑みこまれ、何をもっても加速できないように思われた」

要求仕様書や基本設計書を作成するSEと、プログラマーの間で起こる、すれ違いや対立も日米共通のようだ。
「でも仕様書にそう書いてありました! そんなの仕様にありませんでした! あらゆるソフトウェアプロジェクトが障害にぶつかるたびに、当然のようにこうした叫び声が繰り返される。仕様書はプログラマーの聖典であり、たいていのプログラマーは原理主義者である」
「曖昧さをなくす(disambiguate)という単語ができたのは、コンピュータ文化によって必要とされたからである」

プログラムの生産高をプログラムの行数で計測することの愚かさも指摘されている。
「プログラミングマネージャーは何十年も前からこの分野の生産性を測定する実際的な方法を見つけようと格闘してきた。・・・・最も分かり易いのはコードの行数である。・・・・しかしそれでは不十分どころか全くあてにならない場合もある。・・・・コードの一行には何の統一性もない。作成されるコードの量とプログラムの完成状況、品質、最終的なユーザーにとっての価値の間にはあてにできるような関係はない」

本書には、プログラマーの生産性や性格について言及している箇所がある。
「プログラマーによって生産性には大きなバラつきがある。同じ時間で優秀なプログラマーは凡庸なプログラマーの10倍の仕事ができる」
「ソフトウェア業界には何十年も前から”カウボーイ伝説”がある。ルールに逆らい、孤独を好み、一か八かの仕事を選ぶプログラマーである」
「典型的なプログラマーのイメージは、かたくなな個人主義者である・・・(彼らと付き合うために必要なのは)なだめすかして撫でてやることだ」
「プログラマーは全く違う種に属しているように見えるときがある。プログラマーとコミュニケーションをとることは、いらだたしいほど難しい。彼らはギーク(おたくのこと)であり、彼ら自体が問題なのだ」
さらにもっと凄い表現もある。
「技術的な奥義にこだわるプログラマーの行動特性は、アスペルガー症候群の症状と重なるところがある」
これらの表現には多分に誇張があると思われるが、一般的な職業プログラマーの性格を言い当てている。「文系でも知っておきたいプログラミングとプログラマーのこと」(清水亮 ダイアモンド社)には、日本における職業プログラマー(Web系業界のプログラマーと思われる)の生態が描かれているが、アメリカのプログラマーとの共通点が多いと感じる。

プロジェクト管理あれこれ
「プロジェクト管理あれこれ」のINDEX