読者です 読者をやめる 読者になる 読者になる

部屋とアジャイルと私(仮称)

前略。あらゆることの仕組みが複雑化し、テクノロジーに人間が翻弄すらされている今日、ソフトウェア開発に携わるエンジニアの"はしくれ"として、世の中に提供すべき本当の価値を日々迷走中。。。

『ハッカーと画家』を読んだ

社内勉強会

2016年ももう6月、今年の半分が過ぎようとしているようで、マジでビビる。そして今年は記事を一本も書いていなかったことに気付き、マジで焦る。書くネタが無い訳ではないが、何でもかんでも記事にしている場合ではないこともあり、なんだか頭が重い。ということで取り敢えず髪でも切ってみたりしたのだが・・・

 

さてと、社内のモノ好き達とともに毎月行っているコミュニティももう少しで丸3年を迎えようとしているらしい。去年から読書会となりつつあり、現在2冊目。1冊目は『TeamGeek』ってやつですた。(↓これ)

 

2冊目の『ハッカーと画家』、実はまだ中盤戦なのだが、個人的な事情でこの夏以降は独り読書会になるため、ここまで読んで感じたことを書いてみる。

 

 

 何故ハッカーと画家なのか?

本を手に取るまで、著者Paul Graham氏のことは失礼ながら良く知らなかった訳だが、どうやらアメリカの有名なプログラマらしい。20世紀末、今で言う楽天みたいなネット上のショッピングサイトの先駆けを作って、それがYahoo!に買収されYahoo!storeになったとか。とにかくスゴいプログラマであり、所謂ハッカーって訳だ。

ポール・グレアム - Wikipedia

そんな彼曰く、ハッカーと画家はとても似ている、と。

ハッカーと画家に共通することは、どちらもものを創る人間だということだ。作曲家や建築家や作家と同じように、ハッカーと画家がやろうとしているのは、良いものを創るということだ。良いものを創ろうとする過程で新しいテクニックを発見することがあり、それはそれで良いことだが、いわゆる研究活動とはちょっと違う。(第2章「ハッカーと画家」より引用)

 つまり何を創るか考えながらしながら実際に手を動かして創り上げていく。渡された設計書どおりに作る職業プログラマとは異なり、創りたいものを創るってイメージ。

 

自分はSIという仕事に携わりながら、常々、ソフトウェア開発は「R&D」的な側面と、「工場での大量生産」的な側面の両方があると思っていた。誤解を恐れず端的に言ってしまえば、前者が仮説検証を繰り返すアジャイル的なやり方で、後者がフェーズドアプローチで大きいものを分解しながらそれを積み重ねていくウォーターフォール的な活動であると。でも「研究活動とはちょっと違う」とあり、少し考えてみた。完全に想像の世界だが、確かに画家は食い扶持を稼ぐ為にも売れそうな絵や、依頼主の満足する肖像画を描くだろうが、本質的にはインスピレーションやパッションで絵を描いているのかもしれない。

なるほど、本当に優れたプログラマハッカーは、自分の創りたいモノをプログラミングする人たちなのかもしれない。ビジネス的な成功(売れる)とプログラムの中身はリンクしない。だって顧客はソースコードの中を見ることが出来ないし。

 

 

 ビジネスにハッカーは必要か?

ハッカーが「創りたいものをつくる」「やりたいことをやる」ということは分かった。オレにはソースコードで自分の意志を表現することはできないが、ハッカーとしてビジネス的な成功も納めた著者の言いたかったことを掘り下げてみたい。

ビジネスという視点では「売れる」ということが重要であり、ハッカーにはその視点がないのか、というと直接的には無いけど間接的にはあるのでは?と感じた。つまり、どんなものを「創りたい」と思うかを想像すると、直接的に「売れるヤツ」という発想はハッカーには無いのだろう。むしろ「あったら良いな/こうなったら便利だな/こういうのってクールじゃん」って発想がハッカーの「創りたい」に繋がると仮定すると、これは間接的に顧客のニーズを満たすものになる可能性を秘めている、と言える。

お金は欲しいものを手に入れる為に単なる中間段階・省略記法に過ぎない。ほとんどのビジネスがやっていることは富を生み出すことだ。人々が欲しがることをやるんだ。(第6章「富の創り方」より引用)

なるほど。生み出すのはお金ではなく「富」だと。この「富」が原文でなんとなっているかは次の読書会で確認しよう。Wealthかな?Valueかな?(※読書会のメンバ半分は原文を読んでいるので)

 

いずれにしても、あなたの目の前にあるビジネスの成功には今までになかった価値が必要なのであれば、ハッカー的な発想の持ち主はとても重要になるのではなかろうか。

 

 

 ハッカーアジャイル実践者なのか?

最後に、このブログのタイトルにもある「アジャイル」に強引に繋げてみる。そもそも自分が「アジャイル実践者」を語るほどの者ではないことは大前提になるのだが、ここでいうハッカーが行っている「創りたいものをつくる」「やりたいことをやる」というソフトウェア開発のやり方はアジャイル的なのかどうなのか、について考えてみた。

そもそもこの本の中に「アジャイル」というキーワードは出てこなかった。自分の読んだ限りだと。著者は私よりも一回り上の世代だし、時代背景として1990年代を彷彿させる文章が多いからだろう。マイクロソフトIBMを凌駕したとか、WindowsNTとか、ビルゲイツハッカーを恐れているはずだ、とかあるし。

 

アジャイル」というキーワードは無いが、アジャイル的な発想の抽象的かつ重要な点として、ソフトウェアは早く市場に出して顧客のフィードバックを得るべきという話が随所にある。具体的な例として著者はViawebというYahoo!に買収されたサービス(ネットショッピングのソフトウェア)を開発した話とか。

自分でも使いたいと思うような明快で簡単なものから作り始めることだ。バージョン1.0を素早く出して、それからユーザーの声を聞きながらそれを改良していく。(第5章より引用)

 

製品開発に長く時間をかけ過ぎると危険だ。この危険はハッカーには既に知られている。(中略)バージョン1.0を可能な限り速く出そう。ユーザーを獲得しない限り、手探りでの最適化から逃れられない。(第6章より引用)

非常に優れたプログラマであるハッカーは、富を生むようなソフトウェアの作り方として、顧客のフィードバックによりソフトウェアを成長させるやり方を元々知っているという訳だ。アジャイルとかいう表現は後からついてきただけと言った方が良いだろう。

 

何故ハッカーはこのようなやり方を知っているか?それは技術的な興味がアイディアを生み、それを試すやり方としていち早くリリースすることで顧客のフィードバックを得ることに繋がる、ということなのだろう。

ハッカーは現在の技術の中身を覗くことで次世代のアイディアを得る。(中略)事実、コンピューターの次世代技術を見てみると、外部の人間により作られたもののほうが多いくらいなんだ。(第4章より引用)

ハッカーは天才的なプログラマであり、でも自分のアイディアを実現する事で富を生むソフトウェアを作るのではなく、市場(ハッカー以外の外部の人間)からのフィードバックがそれを作っていく。つまりハッカーは技術的な興味をベースに、市場の声を謙虚に受け入れながら、ソフトウェアの形を進化させることが出来るプログラマということだと感じた。

なるほど。

結果的にはアジャイルの実践者と言っても良いのだろう。ハッカー自身はそう呼ばれたく無いのかもしれないが。

 

 

ひと通り読んでみて頭を整理してみると、自分自身がハッカーでもなく、アジャイルの実践者でないことを思い知らされた。それは事実として、ビジネスの成功とITがこれほど密接になってきている現在だからこそ、ハッカー気質のプログラマたちともっともっと話が出来るようにならないとダメだな、とも感じた。

 

ことSIの世界では、アジャイルをやれば良いソフトウェアが出来ると思ってしまっている人がまだまだ居そうなので。

 

 

最後の最後に、この『ハッカーと画家』、Webで読めてしまうらしい。

嗚呼・・・なんてこった・・・(´・ω・`)

matome.naver.jp