君のための本 -- ソフトウェア開発を一生の仕事としていいのか悩んでいる開発者に贈りたい1冊:2015年版

(これは、『100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊』に寄稿した原稿の草稿を元に、XP本完全新訳版に合わせて加筆修正したものです。なんで完成稿ではなく草稿を元にしたかというと、草稿の方が長かったため短くまとめたものが完成稿になったからです。完成稿の方は『100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊』をどうぞ。)



コンピュータ書を読むのが好きだ。だから「誰かに贈りたい本」と言われると、たくさんの本が思い浮かぶ。

たとえば君の問題が「プログラミングのスキル向上に思い悩んでいる」という話であれば、『Code Complete』辺りを勧めるだろう。プログラミング技術の本を10冊あげろと言われれば20冊くらいあげるかもしれない。

けれど、つまるところ君の悩みは「プログラミングを一生の仕事として取り組み続けていくべきかどうか」なのだと思う。であれば、必要な本はプログラミング技術に関する本ではなく、「なぜプログラミングなのか」という問いに答える一冊だろう。そういう人に勧める本なら、Kent Beckの『エクストリームプログラミング』をおいて他にない。

旧版の書名(『XPエクストリーム・プログラミング入門』『同第2版』)とは違って、この本はいわゆる「入門書」ではない。これを読んでもXPができるようにはならない。そういう本を期待する人には例えば『アート・オブ・アジャイルデベロップメント』などを勧めたい。
また、アジャイル開発の概要を理解するなら『アジャイル・サムライ』でも、小さな規模でのソフトウェアビジネスを理解するのであれば『Eric Sink on the Business of Software』でもいい。要するに、「ソフトウェアの作り方」や「ビジネスの行い方」に関する優れた書籍だ。

エクストリームプログラミング』はそういう本ではない。本書は、人の生き方や社会のあり方をプログラマの立場から考えた本だ。



正直に言ってXPはどこか異様な風貌がある。端的に言えば「変」だ。たとえば「価値」。XPは元々4つの価値があった。「コミュニケーション」「シンプリシティ」「フィードバック」「勇気」。第2版では新しい価値が一つ加わった。それは「リスペクト」だ。……と言われて、この5つはソフトウェア開発の本質を鋭くついた、素晴らしい見識に基づく考え方だ、と思う人はあまりいないだろう。

勇気やリスペクトだけでバグが取れたら苦労はしない。はっきり言ってそんなものでソフトウェアがうまく作れるようになるとは思えない。しかし、本当に必要なものは「そんなもの」だと、Kent Beckはこの本の中で熱く説いている。

なぜKent Beckはそんなことを主張するのだろうか。

幾多あるソフトウェア開発手法の中には、「尊重しあっていない人々同士の集まりでも、それなりのプロダクトを安く作り上げるにはどうすればよいか」ということにフォーカスした手法も少なくないだろう。しかしそのような態度が本当に優れたプロダクトを生み出すのだろうか。それはディスカウントの嵐やソフトウェアの環境変化による価値の下落に巻き込まれてしまい、優秀な人たちがみな他の分野へと去っていき、ソフトウェア開発は産業としては失速してしまうのではないか。そしてソフトウェアが持ちうる社会への力も失われてしまうのではないか。そういう危機感が本書の背景にはある。



この本のハイライトの1つは23章、「時を超えたプログラミングの道」だ。ここでは「パターン・ランゲージ」で有名なアレグザンダーの試みを通じてソフトウェア開発の役割と未来への可能性が語られる。いわく、アレグザンダーは建築の世界を変えようとした。「作るひと」と「使うひと」が完全に分かれ、力の不均衡が生じ、素晴らしいものが作れないのではないか、という疑問を持つアレグザンダーは、それを解決しようとしたが、失敗した。

本書には書かれていないが、Kent Beckも一度失敗をしている。Kent Beckは、本書が書かれるよりもずっと以前、ユーザと開発者がともに開発に参加できるように1つの試みを始めた。それが「デザインパターン」だ(Kent BeckWard Cunninghamオブジェクト指向プログラムのためのパターンランゲージの使用』http://kdmsnr.com/translations/using-pattern-languages-for-oop/ を読んでみて欲しい。本書の訳者、角さんが10年前に訳した記事だ)。まさしくアレグザンダーの試みと同じものをソフトウェアの世界の導入しようとしたが、それはユーザのものにはならなかった。デザインパターン自体は広まったが、それはKent Beckが当初望んでいたものとは大きくかけ離れてしまった、としか言いようがない。エクストリームプログラミングは、Kent Beckの新たなチャレンジなのだ。

もっと言うと、XP自体も進化しつつある。XPの第1版のころは、今よりもずっとプログラマにフォーカスが置かれていた。が、「高みに到達することが目的であれば、ソフトウェア開発は「プログラマーとその他大勢」で成立するものではない。それが、過去5年間で私が学んだことだ。(第23章より)」。利用者と設計者を含めたチーム内での力のバランスと調和がなければ、優れたソフトウェアは作り上げられない。すなわち優れたソフトウェア開発にはならない。

念のため付け加えておくが、Kent Beckは開発技術を軽視しているわけではない。むしろKentの主張はその逆で、優れた開発技術を持った者と、開発技術を持っていないが何かを作りたいという者との間で、力と責任のバランスをとらなければならない、ということなのだ。本当に技術がいらないのであれば、開発者のスキルなどどうでもよいはずだ。開発者と利用者のバランスなど改めて考える必要もない。XPが成功するかは「信頼できるソフトウェアのすばやい見積り、実装、デプロイができる優秀なプログラマーの増加にかかっている(同)」のだ。

しかし、しかしである。それほどまでに開発者が「優秀」であるにも関わらず、開発者とふつうの利用者との間で適切なパワーバランスを保つことをXPは要求している。だからチームやコミュニティについてKent Beckは熱く語るのだ。5つの価値を掲げるのだ。それはソフトウェア開発に限らず、他の分野でも見かける「よくあるやり方」とは大きく異なるマインドセットを、開発者と利用者の両方に要求するのかもしれない。だからXPは「ソーシャルチェンジ」なのだ。



君の悩みは本書を読んでも解決しないかもしれない。本書には答えは書かれていない。しかし、一人の優れたプログラマが、同じ悩みを真正面から捉え、それを本気で解決しようと、今も苦闘を続けていることはわかるだろう。Kent Beckの悩みは君の悩みだし、Kent Beckの夢は君の夢でもあるはずだ。

「XPの課題は、このような深い変化を促し、個人の価値と相互の人間関係を新しいものにして、ソフトウェアに次の50年間の居場所を用意することだ。(The challenge of XP is to encourage deep change, to renew individual values and mutual relationships to give software a seat at the table for the next fifty years.)」(23章より)


エクストリームプログラミング』は君のために書かれた本だ。だから、君に読んで欲しい。


100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊

100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊

  • 発売日: 2012/02/22
  • メディア: 単行本(ソフトカバー)
アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

  • 作者:Jonathan Rasmusson
  • 発売日: 2011/07/16
  • メディア: 単行本(ソフトカバー)
時を超えた建設の道

時を超えた建設の道

『新春座談会 このコンピュータ書がすごい! 2014年版』と『「開発現場に伝えたい10のこと」それぞれの後日談』と『エンジニアサポートCROSS 2014』に出ます

相変わらずてんぱっておりますが、もろもろ告知です。

まず、今週末の1/11(土)、ジュンク堂書店池袋本店さんで開催される『新春座談会 このコンピュータ書がすごい! 2014年版』に登壇します。


https://www.junkudo.co.jp/mj/store/event_detail.php?fair_id=3612


これってもう6回目くらいになるんでしたっけ?……もうそんなにやってたのか。最初が2009年なので、確かにそれくらいになるようですね。自分でもびっくりです。

2013年に出たコンピュータ書の紹介なのですが、池袋ジュンクのランキングと合わせて紹介するため、そちらの方は一部2012年とかの古いものも混ざっております。

あと、今年はちょっと趣向を変えて、IT方面の会社のビジネス書もいろいろ読んでみたのですが、本そのものの評価はさておき、コンピュータ書としては特に紹介してみるまでもないかなあ、という気がしたのでこの辺りはすっぱり落としています。あ、でもビジネス書は何冊か入ってるはずです。

というわけで、コンピュータ書をたくさん読んでる方はもちろん、あんまり読んでない…という方もぜひご参加下さい。


続きまして、連休明けの1/14(火)には、DevLOVE関西さんにおじゃまして、『「開発現場に伝えたい10のこと」それぞれの後日談』に参加します。


http://devlove-kansai.doorkeeper.jp/events/7586


『開発現場に伝えたい10のこと』はまだβ版ですけど絶賛販売中なので、よろしければぜひご購入していただきたいところなのですが、それはさておきこの本の刊行記念イベントとして、大阪のサイバーエージェントさんのオフィスをお借りしてイベントを開催することとなりました。

私の方は、開発現場にお伝えするトークというよりは本書の発行とか自社についてお話しすることになるかと思いますが、他の方々から本書についての後日談をいろいろおうかがいできるのが楽しみです。このところKOFにも参加できてなかったので久々の関西となりますが、どうぞよろしくお願いします。


そしてその週の1/17(金)には、今度は東京に戻って「エンジニアサポートCROSS 2014」の「技術書の未来はどっちだ!」セッションに参加します。


http://www.cross-party.com/programs/book/


こちらについては「技術書の未来」ということで、まあ紙の書籍の著者というよりは電子書籍の出版社としていろいろお話しすることになるじゃないかと思っています。が、どーやって技術書が技術者を支えていくか、そして技術者が技術書を支えていくか、といったところまでリーチできると楽しそうです。


というわけで、お越しいただけそうな方はどうぞよろしくお願いします。

高橋信頼さんとオープンソースの希望

先日、高橋信頼さんの通夜に参列し、最後のご挨拶をいたしました。


高橋信頼さんとは個人的なお付き合いがあったわけではないのですが、Rubyやその他のFLOSS方面のイベントに参加するたびに信頼さんの姿がありました。信頼さんが取材されている姿にはあまりに馴染んでいたため、先日のRubyWorld Conferenceや三鷹の中高生国際Rubyプログラミングコンテストでお見かけしなかったときに、信頼さんがいらっしゃらないことに違和感を感じていたくらいです。

そんなわけで、その人となりについては私自身はあまり語るところがないというか、もっと語るべき方がいらっしゃるはずです。そこで、信頼さんの書かれた記事を一読者として読んできた者として、先日の訃報以来改めて読み返していたITproの記事を紹介することで、故人を偲んでみたいと思います。


日経ITproはかなり古い記事までも記事検索で遡ることができるようで、はてなブックマークの件数表示からいってもURLを大事にしているようです(これは素晴らしいことですね)。その記事検索で遡れた古い記事はこの辺りです。


最後の「Linuxはどこまで定着したか」では、すでにLinuxについて興味を持たれていたことがわかります。とはいえ、どこまでその重要性を感じていたのか、というところまでは分かりません。


ITproの検索で「高橋信頼」で検索すると4181件もヒットするので(ただし、すべて本人が書かれたものではなく、名前が書かれているだけのものや、たまたまヒットしたものもあるようです)、全部を読むことはできないわけですが、googleはてブ等を使って読んでみたもののなかで、特に興味を引いた記事を3件ほどに絞るなら以下を挙げたいです。


3つにするつもりが4つになっていますが、最後の一つは個人的な思い入れも含めてご紹介したいので含めてみました。

信頼さんはライターではなく記者であり、多くの記事は取材記事なので、記者本人の意見やスタンスは出てこないのが普通です。が、この4つの記事にはとりわけ信頼さんの思いが強く反映されているように思います。

「“21世紀のプログラムを〜」では、ストレートに10代の若い方々に対する真摯なメッセージを打ち出しています。少し前の記事ですが、今の方がより切実さを増しているようにも感じられます。若い方ではない方も読むべきかと思いますが、それでもやはりこれらのメッセージを伝えるべきは、やはり “21世紀のプログラムを作る君たち”であるべき、という思いも持ちます。

個人が成し遂げられることはどんどん大きくなっている。常識は短期間で変わる。今貴重なものは、やがて過剰になる。日本市場を世界からへだててきた日本語の壁はなくなろうとしている。ネットの向こうにいる仲間を信じよう---「U-20プログラミング・コンテスト」という、20歳以下を対象にしたコンテストに参加した若い技術者たちに、伝えたかったことだ。

そして何より大事なのは、どんな仕事でもそうだけど、自分の仕事が好きだと、楽しいと思えることだと思う。審査会で自分たちの作品を誇らしげに、嬉しそうに話す君たちを見ていると、それについては何も言うことはないようだ。21世紀を担う技術者の中から、素晴らしい普及するソフトウエアやサービスがたくさん出てくることを願っている。そしてITproは、そんな君たちの役に立ち、力づけることができる場所でありたいと思う。


「学生とIT業界トップの〜」では、はっきりいってネガティブな反応を多くネット引き起こした元の記事やその反応について振り返っているのですが、信頼さん個人に注目すると、「コンピュータを作ることが本業ではなくなったメーカー」「記者は今まで多くの記事で何度も、無意識のうちに大手コンピュータ・メーカーという言葉を使い続けてきた。しかし、それはもう正しく実態を表してはいないのだ。」という、驚きに加えてある種の慨嘆のような痛切な一言です。日経コンピュータ、日経SYSTEMSを経てITpro、という信頼さんの歩みを踏まえるならば、「大手コンピューター・メーカー」の圧倒的な存在感とそこを頂点とする(あるいはしていた)業界構造の強さ、重さを知らないはずがないにも関わらず、それがすでにある種の「呪縛」となり、「“変われない日本”がIT産業にからみつき、ぬかるみのように足をすくう。」とまで書いています。

にも関わらず、何より大切なことはそこに光も見ていることでしょう。まつもとさん、ひがさん、生越さんだけではなく、元NEC代表取締役社長の西垣さんやCSKの有賀さんといったまさに「IT業界トップ」の方々の言葉も引いて、“変われない日本”にも変わりうる道があることを指摘しています。このポジティブな結論は、元記事の騒動を踏まえたネットの反応の数々を思い返してみると、あまり他には見られないものだったことを思い出します。


また、「「オープンソース的」〜」でも、こちらもまた梅田さんの発言はネガティブな反応を多数招いたのですが、その中でも前向きな議論につながる意見をつなぎあわせ、そこからポジティブな社会の変化につながる可能性を丁寧に引き出しています。当時の反応を考えると、悪く言うと偏った視点からのまとめであるとも言えなくはありません(もっとも、かずひこさんやひがさんによる、正面からの梅田さんの批判も正しく紹介しています)。が、「オープンソース的」(あるいは「バザールモデル的」)な社会のあり方の可能性を、まさにその語の混乱した用法を正していくプロセスの中に見出す、というのは、フェアであると同時に希望に満ちたものであるように感じます。

ApacheやBINDや、Linuxなどのオープンソース・ソフトウエアは、インターネットという世界そのものを作り上げていると言える。多くのオープンソース・ソフトウエアを生んだ、インターネットというコミュニケーション環境は、我々が住むこの現実の社会を変えることができるだろうか。記者は、変えることができると考えている一人である。


これを踏まえれば、「「ブレイク直前のLinux」を思い起こさせるRubyのマグマ 」での「記者がそう感じたのは、カンファレンスに集まった多くの若い技術者の熱気にあてられたせいだっただろうか。」とまで言うほどの「熱気」溢れる記事の背後にあったであろう興奮の正体も見えてきます。こちらについては当事者の一人であった私としては、その気持までは当時は汲み取れてはいなかったこともあり、記事にはやや意識のずれを感じるところもありました。が、今振り返ってみると、この記事でこのような扱いは、とても正しいものだったことを痛感します。



このように個別に取り上げていくのもきりがないので、気になった記事をトピックごとにまとめて列挙していきます。


○開発者


○法人・エンタープライズ


○海外

○東北復興


○コミュニティ


○その他


これだけ集めてみると、ひとつの方向性をはっきりと持たれていたことがわかります。時代の変革期の中で、個人としての日本のソフトウェア開発者が、オープンソースなどの場を通じてつながりあい、その活動と成果が世界と日本の社会を変えていく。その可能性の場に私たちは立ち会っている。「“21世紀のプログラムを作る君たち”に伝えたかったこと」は、まさにその信頼さんが持たれていた確固たる信念を要約したメッセージだったのでしょう。

そしてこれらを読むと、信頼さんはある種のビジョナリーのような人だったのではないか、という気もしてきます。それも自分で論を立てたり事業を起こしたりするのではなく、取材により事実を集め、それを世界に広めていくことにより、理想的な社会を生み出していこうとされていたのではないか。それは、残念ながら道半ばというところになってしまったと言わざるをえないですが、部分的にはそれが成功していたのでは、また未来に芽吹く可能性が残されているのでは、そこにつながる希望を遺されたのでは、と思っています。


最後に個人的な話になりますが、信頼さんとまとまった時間でお話ができたのは、このインタビューの場でした。そこでの屈託のない笑顔の写真(この撮影も信頼さんです)を見て、信頼さんが見ていた風景の中に私がこのような表情でいたのかなと思い、切なくも暖かい気持ちがしました。


信頼さん、どうもありがとうございました。

2008年のReVIEW

あおきさんの日記からダウンロードしてきたファイルをgithubに置いておきました。

本当は内部的に確認したかったところがあったので発掘してみたのだけれど、その機能は当時は入ってなかったというオチが……。

だいぶ機能的に少ないものなので、好事家の方しか喜ばないような気もしますが、気になる人はどうぞ。

ブログの選び方について

そうそう、当日質問があった「引っ越しは考えなかったのか」ということについてですが、私の場合はそもそも以前の日記は自分のサイトで運用していたくらいなので、独自でブログを立てたい気分はそれなりにあります。自分で作れば自由度は高いですし。
とはいえ、実際に運用し続けることを考えると、とりわけセキュリティ周りのメンテナンスコストを考えると、誰かに丸投げするのが確実かなあ、というのが正直なところです。
で、どこかのサービスを利用するとなると、サービスの継続性が気になるわけで、それも踏まえてここならずっと(しかも無料か低価格で)大きく変わらずにブログサービスを運用し続けてくれる、というところは限られてくるわけで。であれば、まあはてなで続けるのがいいか…という、比較的消極的な気持ちだったりします。

(まあ無料の場合はだんだん広告が大きくなってきているのが気にはなってはおります。まあ広告なしでサービス終了するよりはいいけど。)


ということも踏まえてはてなブログについて考えると、当日のはてなの方の説明を聞いても思いましたが、やっぱりはてなブログはいい感じに機能も揃いつつあって良さげですね。これならメインの日記ははてなブログで続けるのもいいかな? と思いました。

あとは控室で話してたgithubとごにょごにょする機能さえできれば最強の予感が……。

はてなエンジニアブロガー祭りに参加しました

というわけで昨日参加してきましたよ。

後半の座談会については、やっぱりあのメンバーで一時間は短かった、という意見もありました。私も同感なのですが、ちょっと足りないくらいがちょうどいいのかもしれないですね。ちょっとじゃなかったかもだけど。


モデレータ業については、はてなで打ち合わせをしてもろもろおうかがいした結果、「参加したエンジニアがブログを書きたくなる」というのをゴールとして設定しました。これについては事前の打ち合わせでは登壇者のみなさまに伝えたし、本番でも言おうと思ったのですが、うまく言えなかったのが心残りです。実際のところはどうだったでしょうか? みなさまブログを書きたい気分になれたでしょうか?

それともう一つ、個人的というか私の仕事的には、「エンジニアがはてなでブログを書くと電子書籍が出せたりするよ!!1」という話をしたかったのですが、これもちゃんと伝えられなかったのが残念(モデレータが宣伝をするには限界があって…)。

というわけで、今さらですが貼っておきます。ロンドン在住のはてなダイアラー井上さん(id:makotoi)の「makotoiの日記:from London」の日記が『ロンドン起業日記 ヨーロッパで絶賛、奮闘中!』として絶賛発売中なので、みなさまよろしくお願いいたします! そして他にもブログを電子書籍にしたい方がいらっしゃればぜひご連絡ください!