More Effective Agile

Code CompleteのSteve McConnellさんによるアジャイル開発についての本。 Code Completeは地味だけど実践可能で有益な良いコードを書くためのアドバイスが詰まった本という印象だったので、アジャイル開発方法論は若干食傷気味ではあるけれども読んで損はしないだろうと思って手を出してみた。 そして読んで良かったと思える本だった。

Code Complete (Developer Best Practices) (English Edition)

この本は4部構成で、それぞれ

  • より効果的なアジャイル
  • より効果的なチーム
  • より効果的な作業
  • より効果的な組織

となっている。 この中で自分にとって新鮮味があった、得るものがあったと思った点をかいつまんで書いてみる。

より効果的な組織

アジャイルな開発方法論の話はチーム内のプラクティスに焦点を当てたものが多いので、チームを外側について書かれた4部が個人的には新鮮味があった。

マネージャーとチームの関わり方

より効果的なアジャイル:リーダーシップという章に

  • 基本原則:細部ではなく成果を管理する
  • 基本原則:「司令官の意図」を使って目的を明確に表現する

という節がある。 チームに指示を出す立場の人とチームとの間の距離感についての話だ。 スプリント中はチームを邪魔しない、チームにはプロジェクトの目的と求められている最終状態と各人の役割を伝える程度にして細かいやり方まで口出ししないといったことが書いてある。

こういうさじ加減については他の書籍などでも見かけた。 BasecampのShape Upには、イテレーションの間は基本的にはプロジェクトを止めたり方針変換しないことや、チームがプロジェクトに取り掛かる際にタスクレベルに分解するのはチーム自身でやることなどが書いてある。 また、Think Like Amazonという本には、チームの仕事の成果を測るための指標を設定するものの目標をどのように達成するのかまでは関与しないということが書いてあった。 チームメンバーが気分よく仕事ができて管理する側もなるべく手間がかからないようにしつつ目的を果たすということを目指すと、大体この辺に落ち着くようだ。

basecamp.com アマゾンのように考える 仕事を無敵にする思考と行動50のアイデア

プロジェクトで何を予測するか

予測可能性という章がある。 プロジェクトにはスコープ、コスト、期日といったパラメータがあり、プロジェクトによって期日が固定だったりスコープが揃うことが必須だったりと事情が異なる。 スコープ最優先だと終了日やコストを予測することになり、期日を優先するとスコープ(盛り込める機能)を予測することになり、それぞれのケースでどのように予測するか、という話である。 一方、インセプションデッキというものがある。 プロジェクトのスコープ、コスト、期日、品質のうちどれを優先するかメンバー間で意識合わせをするためのプラクティスだ。 つまりこの章の内容は、インセプションデッキの結果によってプロジェクトにおいて予測することになる対象が変わりうるという話である。 これまでそういう認識を持っていなかったので、ちょっとした気づきだった。

より効果的な作業

作業レベルの話にはわりと馴染みのある話が多かったが、それでもいくつか印象に残る箇所があった。

要求の作成

要求の作成の章に、プロダクトバックログに入れる要求の作り方にはトップダウンなやり方とボトムダウンのやり方があるという話があった。 要求を獲得する方法は開発の方法論ごとに独立して語られることが多いと思うが、いろんなやり方を集めてそれらをトップダウンボトムアップに分類して提示されたのを見て頭が整理された。

質の計測

また、仕事の質を測るのに、作業を新しいことをする作業と手戻り作業に分けて手戻り作業のストーリーポイントの割合を見るという話があった。 これまでアジャイルな方法論の文脈で仕事の量を見る指標(ベロシティ)の話は何度も見てきたが質を測るという話を見た記憶がなく、本書に書いてある方法が素朴で手を出しやすそうなものだったので虚をつかれた感があった。