一人アジャイル?
先日、「社内勉強会:アジャイル・品質管理」を書いたところ、これを読んだ知り合いの出版社の方から、「アジャイルを心から理解できなくて困っていたので、是非話しを聞かせて!」と相談を受け、メンバーのF君に確認したところ「是非」とのことで、先週末に再び「アジャイル講習会?」を開催しました。前回参加できなかった他のメンバーも参加できましたので、出版社の方だけでなく、自社としても有意義な時間となりました。
F君には前回と同じスライドを使って、再びアジャイル部分のプレゼンをしてもらいました。前回はスライドを準備しながら頭に入っていたようですが、今回は結構自分のスライド構成を既に忘れていたようで、それはそれで味のある(?)プレゼンで良かった感じです。
出版社の方には「やっぱり、実際にアジャイル開発をやっていた人の話は説得力があり、納得できました」と喜んでいただけました。
さて、その中でF君が「社長のようなスーパープログラマーは一人でもアジャイルしているようなもので・・・」とかいう表現をしていたので、私としてはメンバー達から「もうプログラミングは引退して・・・」とか言われるよりははるかに嬉しい反面、実際には本人もメンバー達の技術話にすっかり付いていけない自分を良くわかっているので複雑なところなのですが・・・
アジャイルのポイントの一つに「毎回必ず動く状態にする」というのがあります。1スプリントごとに必ず動くものにするという感じですが、そこは確かに私自身の普段からのこだわりと同じです。私の場合は画面や帳票のように同じようなものをいくつも開発するという仕事はほとんど担当しておらず、ネットワークのパケットを処理したり、DHCPサーバの処理性能を高めたり機能追加したりという、生み出す開発ばかりです。頭の中に多くの情報を展開し、必死に考えて解決方法を生み出し、ソースコードを書き、動かして検討して、というのを繰り返します。必死に考えたものは時間が空いてしまうと頭からかなり消えてしまいますので、例えば続きを翌日に、というのは、前日の頭の中の状態を復活させるのにかなりの時間と労力を使うため、基本的には必ず一つの処理はその日のうちに作り終えたいのです。まあ、そういう局所的なイメージで「一人アジャイル」という表現も、当たらずと雖も遠からず、かも知れませんね。
「一人アジャイル」の話題で盛り上がっているときに、「必ず動く状態で区切るためには、ドキュメントを書かないことがコツだね!」と冗談半分に話しました。まともなドキュメントがあれば中途半端でも翌日すぐに頭の中を復活させて継続できるかも知れませんが、ドキュメントがなければ、意地でも切りの良いところまで仕上げなければならなくなるから、という意味です。「まともなドキュメントがある方が良い」と思うかも知れませんが、アルゴリズムなどを試行錯誤しているときに、その都度ドキュメントなど書いていたら時間がかかりすぎますし、ほとんどはボツになるアイディアですので、無駄が多すぎます。なので、私は頭で考えてすぐに作って動かして、まともになったらその日の作業を完了とします。まともにならなかったら基本的には捨てます。一日頑張ってまともにならないようなものは、数日頑張っても大抵ダメです。逆に数日他の仕事をした後に考えると違うアイディアが出てきたりするものです。
ということで、アジャイルを毛嫌いしていましたが、実は普段自分でやっていることと似ている考え方もかなりあることが気がつくなど、勉強会はためになりますねぇ!明日はC++勉強会をメンバーのU君が開催してくれます。これまた、私はC言語は使うけど、C++は毛嫌いしているので、楽しみなのでした!