本書の評価

 あわただしい毎日を送っているうちに、気がついてみたらなんと本書が発売されてからとっくに半年を過ぎているのに気がつきました。毎日が楽しい証拠でしょうか。歳を取ると月日の流れがとても速く感じるようになりますね。

 さて、本書はおかげさまで多くの皆様に手にとっていただき、出版元の秀和システムではこの手の読み物で売れたことがなかったらしく、初めて売れている、と言ってましたが、書いた本人としてはとてもうれしい状況です。もちろん売れているといってもいわゆるベストセラーなどに比べると桁が全く違うのですが。多くの方に読んでいただけるという事は、賛同してくださる方も多い反面、批判されることも多くなります。読む方の立場や考え方によって受け取り方が異なるのは当然のことですし、私自身も数多くの本を読みながらやはり好き嫌いがはっきり出てきます。

 

 本書に対する批判の主なものは、

・内容が古い
・内容が偏っている
・自己満足だ
・オブジェクト指向をバカにしている
・得意分野にこだわるとその技術が使われなくなったときにどうするのか
・本の構成が悪い・文章が読みにくい

というあたりでしょうか。批判というのは一般的にムカッときたり、グサッと傷ついたりするものなのかもしれませんが、実はとてもありがたい指摘であり、仕事でもそうなのですが、批判をしてくれるうちが花なのです。相手にもされないのが一番辛い状態です。謙虚に受け止めなければなりません。文章力がないのは私のスキル不足で、これはしっかり自分で努力せねばなりません。私の癖として思った事をすごい勢いで書き綴り、あとであまり見直さないというのがまずいのだとわかっているのですが、なかなか時間もなく、さらに見直しすぎるとつまらない文章になってしまう事も多いもので、難しいところです。

 技術的な内容に関する批判では、古い・偏っているという指摘が多いのですが、確かにC言語をサンプルにしていますし、ソケットプログラミングの話が多いですし、いまどきmainから書くことは仕事ではほとんどない、という事もあると思います。勤務先でもUI関連を中心に仕事をしているメンバーは私とは全く違うプログラミングをしています。しかし、私が書くからには私が得意な部分で話をしなければレベルが低くなってしまいますし、実際にお客さんとの仕事を通じて本書に記述したような、いわゆる古い、あるいは低レベルな部分で、お客さんが困っているケースはたくさんあるのです。何か問題が起きると、フレームワークの問題だ、データベースの性能問題だ、OSが悪い、と、他人のせいにして、自分は調査も対応もできないエンジニアが多いと嘆くお客さんをたくさん見てきました。WEBやDBに関する話題はその方面が得意な方が書いてくれればいい事だと思っています。あまり興味がない私が書いても内容に期待できませんので。

 オブジェクト指向をバカにしているつもりはないのですが、私が得意な分野ではオブジェクト指向が使いにくい場面も多い事は事実です。組み込みシステムなどではJavaはそもそも乗せる事が大変というところから始まりますし、超高負荷に対応しなければならないネットワークサーバではJavaはやっぱり厳しいのです。C++なら良い場面はたくさんありますが、結局システムコールを中心にプログラミングしていくケースが多いので、Cでもあまり違いはなく、規模にもよりますが、シンプルなCできちんと考えて組める人が作るプログラムが最適な場合もある、という事です。さすがに私でも大規模なWEBシステムをCで全部作ろうとは思いませんし、Windowsアプリを作るならVC++に従ってC++を使う方が良いと思っています。目的に応じて選べば良く、得意分野で勝負している人はその分野に適した言語を愛用するのが当然、というだけの事です。ただし、確かにプログラマー人口のなかでCでシステムレベルのプログラミングをしている割合は低いと思いますので、そういう意味では偏りがあるでしょう。是非WEBなどが得意な方がノウハウを書いてくれればと期待しています。

 得意分野に関してはすでに他のページに書きましたので繰り返しませんが、分野がなくなることはまずありません。

 本の構成は確かに書名を含めて書いた本人も満足しているわけではありません。もともとは編集の方からの希望で技術ノウハウ集を、ということで書き始めたのですが、私の考えで、技術を習得する意欲のためには、やっぱり仕事のノウハウや目的をはっきりさせなければ、という気持ちがあり、プログラミングの仕事自体が世間一般で低く見られている現実や、オフショア開発の影響、年齢による限界説などの話題や、私なりのプログラマーでの成功方法を書き綴り、その結果後付で書名が決まった、という感じです。本は著者の気分だけで作れるものではなく、出版社としてのマーケティング戦略などさまざまな要因が組み合わさって完成するものです。私の場合編集の方にも恵まれ、技術が好きな方に担当していただけているので、基本的に書きたい事をほとんどそのまま書かせてもらっているので幸せ者です。

 

 本書に賛同していただけている主なものは、

・得意分野の重要性が理解できた
・プログラマーの立場を書いてくれてうれしい
・プログラマーの能力差について書いてあるのがよい
・ドキュメントよりまずソース

このあたりでしょうか。いずれも私自身が声を大にして言いたかった事なのでうれしく感じています。悲しい事に現時点でも職業はプログラマーだ、と胸を張っていえる人が少ないと思います。私も恥ずかしながら若い頃に仕事は?と聞かれて、SEです、と答えていた事がありました。SEとプログラマーは別の仕事です。かぶる部分もありますが、上下の関係ではありません。システム開発の上流から下流の工程、とかいう表現をするからおかしなことになるのです。

 

 あまり長く書いていても飽きますので、そろそろ終わりにしますが、皆さんは何のために仕事をしていますか?家族のためでしょうか。今の仕事は遣り甲斐があり、楽しいでしょうか。私は自分の仕事に満足しています。もちろん今の状態で十分という事ではなく、もっともっとやりたい事・変えたい事がありますが。私は基本的に自分のために仕事をしているのだと考えています。自分が満足できなければ、仕事の質も高いわけがなく、お客さんも満足するわけがないのだと。メンバーにもそう考えて欲しいと思っています。会社のために仕事をするのではなく、自分が満足するために仕事をして欲しいのです。仕事の満足にはいろいろなポイントがあります。技術的に満足したり、達成感であったり、お客さんに喜んでもらえた瞬間であったり、たくさん報酬をもらえることかもしれません。本書で紹介した私のやり方は、独断と偏見に満ちた自己満足と批判されていますが、まさに私は自己満足するために仕事をしていますので、その通りなのです。しかし、私のやり方、もっとも私一人で考えたのではなく、メンバーやお客さんとの関係から生まれたのですが、そのやり方で私も満足して仕事をしていますし、メンバーも活き活きと仕事をしています。お客さんにも喜んでもらっていますし、メンバーへの報酬も誇れるレベルだと思いますし、まだまだ高いところを目指して皆で工夫しています。私は私の得意なやり方で問題を解決します。お客さんからの指定と合わない場合には相談して、できれば私の得意なやり方でやらせてもらいます。お客さんは言いなりに動くのを望んでいるのではなく、問題を解決してもらう事を望んでいるので、その為には私がやるのであれば私の一番とくいな方法を使うべきですし、他のメンバーの方が得意であればそのメンバーに相談したり、依頼したりします。私の会社より他の会社の方が上手くできるのであれば無理して私のところでやる必要もないのです。そこまで言えるようになるまではやっぱりたくさんの経験を積みましたし、お客さんとの信頼関係も重要です。でもそうやって私の会社では皆が活き活きと仕事をして、難問を片付けてきているのです。そういう仕事に興味がある人には本書はとても面白いでしょうし、逆にプログラマーを管理して言いなりに動かしたいと考えている人には不満な内容でしょう。本というのはそういうものだと思います。自分と同じ意見の場合もありますし、逆の場合もあります。立場が違えば考え方も違うのは当たり前です。

 プログラマー、私はとても好きな仕事です。作ろうと思えば大抵のものはノートPC1つで作り始められます。巨大な製造設備や資本もいりません。自分自身の工夫と閃きで問題が解決できたときの快感はたまりませんし、困っているお客さんを助けて喜んでもらえたときのうれしさも格別です。SEの言いなりになるプログラマーもなくならないと思いますが、自ら考えて行動するプログラマーももっともっと増えて、胸を張ってプログラマーと言えるくらい、活躍した人たちが表舞台に出られるように世の中が変わっていけば、もっともっとプログラマーを目指す優秀な人材が増えてくれると思うのでした。

2007.8.8

フレームページへ

from 2007/1/13