未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

楽天で角谷さんのお話を聞いた

解読アジャイルソフトウェア開発というタイトルでお話をしていただいた。*1

アジャイル開発の本質を角谷節で1時間あまり独演会してもらった。


ともかく映像を観てほしい。約1時間ちょっと、そしてその後に続く質疑応答も一緒に。

ソフトウェア開発における受託開発という立場ではない、もう一つのソフトウェア開発の現場が、自分のサービスを自分で作るという立場だ。

受託開発の場合はユーザー企業(発注する側)と開発する企業(受託する側)とがあって、時として敵対関係に陥る。一方の利益が他方の損というゼロサムゲームである。

自社開発の場合は、社内にユーザ部門と開発部門があったとしても、最終的にはユーザ部門の利益と開発部門利益はその会社の利益になるので、利害は一致する。ウェブサービスを提供する会社が自社開発する場合は事業部側のアイデアを開発部門が実装するとして、いいものを作ってヒットすれば双方の利益になる。敵対関係にない。味方同士だ。

このような関係はアジャイルソフトウェア開発においては理想的な関係であるが、なかなかそうはいかないのが現実である。

アジャイルプラクティスに書かれているプラクティスはどれも素敵なことなんだけどなぜか現場でそれを適用することがとてつもなく困難に見える。なんでなんだろうか。

わたしなんかは、アジャイルプラクティスは体に無理な力をかけるのではなく、自然なソフトウェア開発の方法だと思っているので全然違和感もなければ体のどっかに負荷がかかるという感覚もなく、楽に自然体に実施できるような気がしている。

テストを書く。例えばそんなプラクティスは、わたしは当たり前と思うから難しくともなんともないと思うのだけど、そうじゃないと感じる人もいる。

なんでなんだろうなあと思いを馳せるのだけど、バットを振ったらボールに当たってヒットになったとき、その動作を厳密に記述したりできないように、なかなか平易な形でそれを説明することができない。

自分がそれをやってみせて、同じ事を試してみせて、うまく行くようになるまで一緒にやるというような行動をして体が覚えるまでそれを繰り返す、例えばそんなことでスキルを伝承していくのだろうか。そんなことを考える。

長嶋が動物的感覚でバッティングをやっていて、そのやり方を言語化できなかったのを野村がどうにか言語化して野球というものを選手に伝えたとして、アジャイルソフトウェア開発の流儀というのは長嶋のテクニックを野村が言語化してチームに根づかせるようなものなんではないかと思っている。

角谷さんがいま言語化しようとしていることはソフトウェア開発における野村監督のようなポジションなんじゃないかと思ったりする。

*1:楽天TechTalkという社内勉強会があるのだが、通常は社内の誰かが技術的な何かを発表したりLTをやったりする場で、当初はかなり真面目な感じでやっていたらしいのだが、わたしが入社して以来、適度にのとって固さをほぐしつつ、建前でなく本音で議論をする場にしちゃったりして、社内の人たちのお話だけじゃつまらないので時々は社外からゲストスピーカーを招いてお話をしてもらおうという形式にして今にいたる。// 基本的にはわたしが聞きたいことをお話してくれる人をよんでお話してもらうという会になっている。その意味でカーネル読書会みたいなものであるが、お話してもらう題材がカーネル界隈ではない、ソフトウェア開発のあれやこれやみたいなものからウェブ開発のあれやこれやみたいなものまで幅広い題材をターゲットにしている。デブサミの社内版みたいな感じといえば当たらずとも遠からず。