1960 年生まれ,独身フリー・プログラマの生態とは? 日経ソフトウエアの人気連載「フリー・プログラマの華麗な生活」からより抜きの記事をお送りします。2001年上旬の連載開始当初から,現在に至るまでの生活を振り返って,週1回のペースで公開していく予定です。プログラミングに興味がある人もない人も,フリー・プログラマを目指している人もそうでない人も,“華麗”とはほど遠い,フリー・プログラマの生活をちょっと覗いてみませんか。
※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。

 世の中には,たった一人で仕上げるシステムもあれば,大勢のスタッフがよってたかって開発するシステムもある。だから,すべてを一緒くたにして論じるわけにはいかないと前置きしたうえでのお話である。

 “はるか20年”ほど前,プログラム(あるいはシステム)は,大量生産の工業製品のように,「マニュアル通りに組み立てさえすれば,それほど高いスキルを必要とせずにできあがるような方法論が存在する」と信じられていた。口の悪い私の先輩は当時,「程度が低い連中を集めてプログラム作ってどうするんだよ」などと言っていた。私は何という暴言を吐くのだろうと思ったが,今になってみると思い当たるふしがある。

 システム開発は大抵の場合,それなりに専門的な知識を要するものであり,人が一つずつ手作りするものである。部品を用意しておいて組み合わせて作るようにすれば簡単だろうと考えるかもしれないが,そうした人は秋葉原の電子パーツ屋にでも行ってみるとよい。例えばコンデンサ一つを取っても,一体どれだけ種類があるのか。狭い敷地に所狭しと部品を並べて商いをしているおっさんを眺めていると,ソフトウエアの「汎用部品」に夢を託すのは,意外とシロウトっぽい考えではないかと感じられるに違いない。

 では,ソフトウエアの「汎用部品」の夢が実現していない現在,専門知識がおぼつかない人はプログラムが作れないかと言われれば,決してそんなことはない。いわゆる「×××入門」のたぐいの本を片手に試行錯誤していれば,ある程度のものはできあがってしまう。

 多少使い勝手気の悪いシステムであっても,使う人が慣れさえすれば結果的に問題にはならない。たとえ仕様上の問題があっても,営業面や運用面でカバーできることも少なくない(私はこれを「人間系で解決する」と呼んでいる)。しわ寄せは,もしかすると使う側の残業時間という形で表れているのかもしれないが,そのコストを算定して気にする顧客がどれだけいるだろうか。もちろんそうでない分野もそれなりにあるには違いないが…。

 人は言う。「まず仕様を決めなさい」と。しかし,それは大抵の場合現実的ではない。動くもの,目にするもの,触れるものがまったくない状態で,仕様だけで議論できる人はめったにいない。人は言う。「仕様変更に強い設計にしなさい」と。しかし,発注側はしばしば,設計者が予想もしなかったような仕様を突如として思いつく。それは営業的に解決が可能な場合もあるが,ほとんどの場合は「とにかく使えるようにしてよ」で押し切られる結果になる。こちらも,相手が望まないものを納品しても仕方がないので,それなりに,あるいは場合によっては徹底的にお付き合いすることになる。

 こういう話をすると,すぐに「マーフィーの法則」を持ち出す人がいるが,それはあきらめでしかない。あるいは「どうせこの仕事はそういうものだ」と自嘲してみたところで,問題は解決しない。結果としてそうなってしまうという認識ではなく,必然であるというところからスタートして,適応していくための方法論を模索するのが前向きな態度であろう。

 では,どうすればいいのか。誤解を恐れずに書くならば,要は対価に反映されればとりあえず納得ずくということになる。世の中,お金である。仕事のやりがいがあるとかないとかは,各人が考えればよいことだ。きつくてつまらない仕事でも,お金になるのだったらやる人はいる。飯を食っていけるなら,1年でも2年でもかけて,思う存分仕様変更にでも何にでもお付き合いしましょう,というわけだ。顧客の都合による納期・コストの肥大化は,顧客がかぶるべきリスクなのである(もっとも,それを顧客が納得してくれれば,の話であるが)。冷静に書くつもりが,ずいぶん熱くなってしまった。それだけ「ご要望」にふりまわされることが多いのだと好意的に受け止めていただければとてもありがたい。

 さらに言わせていただけば,この業界は現在,「品質」や「技術力」に対して,正当と感じられるほどに報酬が支払われている状況にあるのだろうか。例えば,「普通は3カ月かかるものを,1カ月でできるからといって,それなりの対価が得られる慣習があるかどうか」を考えてみるとよい。2~3年で償却するような使い捨ての,ミッション・クリティカルでないシステムなら,多少品質が悪くても安い業者を選ぶだろう。

 こんな声が聞こえてきそうだ。「品質なんて多少低くてもかまわないから安くあげてよ。あなたが高いなら,ほかの人に頼むから。あなたがほかより技術力があるからといって,高額な報酬を支払う余裕はないんだ。我々は,高い技術力なんて必要としていないんだ。『はじめての×××』を片手にプログラム組むような人だって,結果的にモノが仕上がれば別にかまわないんだから…」。

 現実・現場をあまりご存じでない方にわかっていただきたいあまり,極端な書き方をしてしまったが,全体としてこうした風潮がはびこっているのは確かなように感じられる。これは,以前に書いたように「市場が成熟し,技術者の層が厚くなってきた」ことの表れでもあるのだろう。ではこれからの時代,我々技術者はどうしたらよいのだろうか。その前に,果たして私たちは技術を売っているのだろうか。

 もしかするとソフトウエア開発というのは,1日いくらの日銭商売にすぎないのかもしれない。むろん,もしそうだとしても私がこの仕事に失望することはない。むしろ,そうならそうだとはっきりさせてほしい。食べていけるだけの報酬が支払われるのなら十分である。私は,日なが一日,プログラムをつくって暮らしていければそれで楽しいという人間にすぎないのだから。