「時が来たら習慣を捨てる」というアジャイルプラクティス

@kakutani に献本いただいたアジャイルプラクティスを読了しました。多謝!レビューはこちらに書かせていただいたので、ここでは本を読んで特にいろいろ考えさせられた「習慣」について書いてみようと思います。

偉大なる習慣

現在は若いメンバーと一緒に働いているので、ふりかえりや朝礼の場で習慣の話をします。アジャイルプラクティスに登場するプラクティスでいうならば、

  • 変化についていこう
  • チームに投資しよう
  • 時が来たら習慣を捨てよう
  • わかるまで質問しよう
  • リズムに乗ろう

といった「アジャイルさを育む」話が多いです。メンバーにとって耳の痛い内容だったら、きっと「うるさいなぁ」って思われているのでしょう。だって、自分だったらそう思いますし。

ただ、「それでも伝える必要がある」と思うから何回も話します。

時が来たら習慣を捨てる

中でも、「時が来たら習慣を捨てる」はとても伝えるのが難しい。

うまくいってないことは徐々に意見として出てくるのですが、先輩から教えてもらったことや、公式や暗黙のルールがネックになってもなかなか気がつかないものです。見つけても言いにくいしね。

「昔からやってるから」という意見は、個人的にはとてもがっくりくる(どっと疲れる)のですが、こういった経験をしてきたからこそ、若いエンジニアたちに「時が来たら習慣を捨てるという習慣」を伝えたいと思っちゃうんですよね。

短いイテレーションでインクリメンタルにリリースする

あるとき、メンバーから小さく作っていくことに対して質問をもらいました。内容は以下のようなものです。

小さくリリースすると毎回システムテストやリリースコストがかかるから効率が悪いのでは?

2013_ 3_ 6_17_48

そのときに書いたのが上の図です(よくアジャイルの説明ででてくる図ですね)。期間をそろえるとして、1回の流れでやる開発と、4回にわけてやる開発はどちらが効率が良いのでしょうか?

  • まとめてやると集中できそうだけど、リスクは大きくなる
  • 小さくやるとわけたぶんだけ作業を繰り返すコストは大きくなるけど、リスクは小さくなる

ちょっと質問が悪いですね。効率の話だけでは済まないと思うので、もう1つ別の図を紹介してみました。

成果をあげるのが仕事

2013_ 3_ 6_17_44
$を書くのが苦手ということがわかった・・・

これもよくある話です。毎回リリースするのとまとめてリリースするのはどちらがお得なのでしょう?

  • 毎回リリースすると、小さくお金がはいってくるかもしれない。
  • 大きくリリースすると、どーんとお金が入るかもしれない。

もし、質問したメンバーが「最後にまとめてやる」のを当たり前だと思っていたのであれば、考えるきっかけになればなぁと思ったのでこういう話をしました。こういうことをずっとやってます。

アジャイルに踏み出す

最近チームを支援していて思うのは、シンプルにまとめると2つです。

  • なんか変だなーと思うことを真剣に考える
  • 選択肢を洗い出して、自ら選択する

これをずっとやっていくことで、偉大なる習慣を普通の習慣に変えていこうとしています。最終的にアジャイル開発が選ばれることではなく、自分たちの頭で考えて、自分たちが決めたことを選択してほしいからです。

そして、偉大なる習慣を身につけたエンジニアに育ってほしいと願っています。

馬を水の所まで連れて行くことはできても、水を飲ませることはできない

そんなもんですから。