やはり、私は今後もSI業界で達人プログラマーを目指したい

SI業界(日本)のJavaプログラマーにはオブジェクト指向より忍耐力が求められている?に対して、実に多くの方々からコメントやトラックバックをいただきました。中でも、id:higayasuoさんのSI業界からはさっさと抜けだしたほうがいいの記事は、私としては非常にセンセーショナルかつショッキングな内容でした。私の頭の中の時計が2年前の状態で止まっていたというところあるかと思いますが、id:higayasuoさんは大手SIerにいながらSeasar2などのすばらしいフレームワークを開発され、業界でも珍しい私の憧れのプログラマー、理想像に近い仕事をされている方のように考えていたため、余計に衝撃が大きかったのだと思います。

もっといえば、プログラマも良いコードを書いていればいいという時代は終わった。これからは、プログラムをいかに金に変えるかどうかをプログラマが真剣に考える時代です。

新しいビジネスを考えることのできるプログラマを時代は欲しているのです。

というのは、トッププログラマーが今後目指すべき道として、まったくその通りであると思います。SI業界を離れ、今後新しい分野でご活躍されることを私としても応援しています。元記事の本文でも書いていたようにまさに一流のプログラマーと私のような狭い業界の中の職業プログラマーとの考え方の大きな差を現実として突きつけられた感じがいたしました。一流と呼ばれる人はいかに先の世の中のことを見通して考えているのかという事実をあらためて思い知らされました。
一方、恥ずかしいことですが、私は昨年まではこうしたブログはおろか、スマートフォンツイッターすら使っていないいわゆる情弱な人間でした。会社のプロジェクトで日々家に帰るのが12時過ぎという生活が5年近くも続いていたということもありますが、私自身は自分のかかわっているプロジェクトを成功させるためにプロジェクトの中で良い仕事をするというので精一杯であり、社外のOSSで活躍したり、将来の仕事のことを考えたりという余裕が今までまったくといっていいほどありませんでした。
私としては昨年5年近く常駐した忙しい客先での作業が終了して、会社に戻ってきたというのが自分の仕事を考える上での転機となりました。ブログを付けはじめたのもそうした関係で多少時間に余裕が生まれた一方で、支援系や提案系の仕事が増えたことで、客先常駐でバリバリコーディングをするという機会が大きく減り、自然に35歳定年説のことや自分の今後の進むべき道のことを考えるようになったということが最大の理由です。ブログのタイトルを「達人プログラマーを目指して」としたのは、プログラミングの技術を究めたいという私自身の目標を今後も忘れることが無いように初心に帰って再確認したかったからです。
もちろん、id:higayasuoさんのような発想で新しい時代を切り開いていくことができればすばらしいことだと思います。しかし、私は今のところ最新の技術を追いかけるとかお金儲けということに興味を持つことができません。そういったものを聞いてもなんだかわくわくしてこないのです。「プログラマも良いコードを書いていればいいという時代は終わった。」というのは、今後、一流のプログラマーが持つべき一つの価値観としてすばらしいことだと思いますが、私は時代遅れとかお金にならないとか言われようが「よいコードを書きたい」というこだわりをどうしても捨てることができないのです。
ところで、先日機会があって愛知県田原町にあるレクサスの工場を見学に行ってきました。*1そこで、自動車の組み立てやエンジンの生産ライン*2を説明していただきました。その見学ツアーで、私の印象に強く残ったことは、トヨタでは「匠の技」として熟練工の技術が現在でも非常に大切なものとして強調されていたということです。*3いまどき自動車の生産などはすべてロボットにより高度に自動化されており、匠の技などは出る幕がないのだと思い込んでいたのですが、まったくそんなことはなく、塗装ばかりやってその道何十年というような匠の技があって初めて高品質のレクサスは生み出されるということのようです。実際匠と呼ばれる工員は1000人のうちほんの一握りというものすごく厳しいテストを経て選別されているようですし、一度取得済みの資格も4ヶ月ごとに再テストして実際の技能に衰えがないことを再確認しているそうです。そして、単に高度な技能を有しているだけでなく、力学の理論や、品質に対するこだわりなどマインドの部分でも超一流のスペシャリストでなくては匠として認められないと言われました。実際に一台のレクサスがラインを流れてすべての工程が完了するのに40時間くらい(なんという高い生産性!)かかるそうですが、高度にオートメーション化が進んだ自動車製造の世界においてもなお、職人の技が最重視されているのだということを聞いて感動を覚えました。(一応説明担当の人に確認したのですが、一般的に工員の方は適正に応じて塗装、組み付けなど特定の仕事を与えられると基本的に持ち場のローテーションはしないそうです。そして一人前といわれるには少なくとも10年はかかるという話でした。SI業界の技術者に対する考え方となんと違うことでしょうか。)*4
話をIT業界に戻しますが、最新技術はものすごい勢いでどんどん進化しています。それは紛れもない事実です。そういった新しい技術を他人よりも早く理解し、早い者がちで取り入れることでビジネスとして成功したいという考え方は立派です。でも、それは自動車工場の匠の技とはまったく別の意味での「技」でしかありません。私は、めまぐるしく変わる技術の流行に振り回されて生きるより、リファクタリング(私がプログラミングで最も楽しいと思える作業 = リファクタリング)やドメインモデリングのようにより本質的で長い時間をかけて追求するような職人芸としての技術に魅力を感じます。実際、すべてのプログラマーに読んでもらいたい本で紹介したプログラマが知るべき97のことでは、世界のプログラマーの匠と呼ばれるような人々の考え方が紹介されています。そこで書かれているようなプログラマーはほぼ例外なくいかによいコードを記述するかというこだわりを持って生きている人々ですが、プロフェッショナルとして皆さん例外なく誇りをもって仕事をしている人たちであると思います。もちろん、お金をどこまで儲けたいかということはありますが、こうした一流のプログラマーはお金のことを特に気にしなくても、良い仕事をすることで周りから信頼・評価され、自然に自分が必要とするだけのお金は手に入れているように思われます。
残念ながら、現時点ではSI業界においてプログラミングの達人を目指すことは厳しいものがあると思います。しかしながら、今までSI業界が担ってきた企業の基幹ビジネスを支えるシステムはSaaSによって一夜にして無用になってしまうものではないと思います。少なくともレガシーシステムのメンテナンスや統合、リファクタリングの仕事は今後も引き続き大切な仕事として残ると思いますし、すべての業務がSaaSと出来合いのパッケージのみで遂行できるというものではないでしょう。確かに最新技術を使ったコンシューマ向けのWebサービスと比べると見栄えのしない地味な分野の仕事ですが、ビジネスを支える縁の下の力持ちとしてこうした業務システムの重要性は今後もなくなることは絶対にないと思います。
SIというと「SIer」という言葉に代表される今までの悪い業界のイメージを持つ人が多く、極端に議論を単純化して、今後SI業界はつぶれるべきといった極論を言う方が多いのですが、私は技術者の評価の仕方や仕事の進め方を改善することで、レクサス工場の匠や外国の一流プログラマーのように本物のプログラミング技術を究めるような道があっても良いと考えます。
やはり、私は今後もSI業界で達人プログラマーを目指したいと思います。

*1:もちろん、私自身は今のところレクサスオーナーではありませんし、マイカーも所有していない、ペーパードライバーです。いつか匠の造ったレクサスのような高級車を所有できるようになりたいものです。もちろん、レクサスのまわし者ではありません。

*2:部品のアウトソース比率は80%くらいと伺いましたが、その工場で働いているのは100%正社員であり、エンジンや車体など最重要の組み立ては自社のラインで行っているという点に注意してください。丸投げや技術空洞化といったSI業界の現状とはまるで違う世界があります。

*3:実際、http://lexus.jp/brand/philosophy/color_book/skill.htmlで紹介されています。

*4:自動車生産ラインの匠と上級PGとの比較は共通点も多いですが、本質的に違う部分もあることに注意が必要です。工場の匠はラインに流れてくる部品を長年の勘から組み付けします。それは熟達した技であり、素人が簡単にまねのできるものではありません。しかし、あくまでもプログラミングとは違って単純労働なのであり、頭で考えるというよりは自然に手が動くということです。プログラミングは単純労働ではなくリファクタリングしながらいろいろと試行錯誤が必要な仕事です。自動車製造で言えば設計やプロトタイピングに相当します。自動車の匠との共通点と言えば、エディターやIDEなどのショートカットキーを体で覚えているというようなところですが、それがプログラミング技術のすべてではもちろんありません。