チームのマルチタスク化はリスクが大きすぎる

アジャイル

アジャイル開発をおこなう場合に、チームのマルチタスク化が危険であることを考える。(クロスファンクショナルチームは歓迎するし、そうするべきだ。)

アジャイルにおいては、フィーチャ(機能)に優先順位をおいて、優先順位の通りに開発することが求められている。これは、限られた時間というリソースの中で、本当に必要なものを提供すべきであり、そこにリソースを注ぐべきと言う考え方からである。簡単な機能だけど、使うか使わないかわからないものなんて求められていないのである。複雑だけど絶対に使うものの方が価値が高いのだ。

よって、アジャイルチームはフィーチャ(機能)をリリースする状態をつくり、さらに次に優先順位付けされているフィーチャ(機能)を追加して、リリースできる状態にする。このように、システム全体をインクリメンタルに開発していくのが特徴である。

スポンサーリンク

チームに空きリソースが出る場合に潜む罠

イテレーションを何度か実施するたびにチームの1人ぐらいが終盤に手が空くなんてことがある。だからといって、次のイテレーションの予定やイテレーションを大きくまたぐようなタスクをアサインするとデスマーチ突入であると宣言しよう。

アジャイルな見積もりと計画づくりに学ぶ 不確実性のコーンの記事の通り、見積もりは最大160%にまで膨れあがる。ということは、何度かチームの1人が空いたのは偶然であって、今回のイテレーションで空きリソースが出るとは限らない。こういった状況で、膨れあがったとすると、次のイテレーションまで引きずることになる可能性が非常に高い。本来はイテレーションの切れ目で、リリースをして、次のイテレーションに対して見積もりをすべきであるが、リリースが伸ばせないケースが往々にしてあるだろう。そうすると、そのリリース日までに仕上げるためにチームが一丸となる。

結果、次のイテレーションへ注力すべき準備を怠ってしまう。チームだけならまだしもプロダクト全体の問題となって膨れあがるのが普通である。計画の立て直しができるチームはすばらしいが、大抵のチームが計画をおざなりにしてしてしまう。なぜならば、遅れたことによって、次のリリースがもう迫ってきているからだ。

効率的にするには、具体的にどうするべきなのか?

こういったケースは、まず、見積もり精度が落ちているからこそ起きる問題である。精度が落ちているからリソースが空く。逆に言えば、見積もりからあふれるのである。

いずれかのフィーチャ(機能)を定期的にリリースすることを優先とする場合

チームをもっと小さく2つに分けて、2つのフィーチャを平行させよう。2つ並行開発することにより、片方が遅れてもリスクが分散されるのである。小さいチームがおこなう分、時間はかかるようになるかもしれないが、関与する人間が減れば、実作業の進行は安定する。見積もりのタスクをもっと細かくして、余裕を持たせよう。

インクリメンタルにつくることを優先する場合

本番リリースまでに余裕がある場合はこちらだろう。この場合は、イテレーション期間を固定することを撤廃する。フィーチャ(機能)ごとに見積もりを立て、インクリメンタルに開発をおこなうことをおすすめする。だが、リリースできる状態には細かくすべきなので、フィーチャ(機能)はできる限り細かく分けよう。1つあたりのフィーチャ(機能)に使用するおすすめの期間は2週間から4週間である。これを逸脱する場合、フィーチャ(機能)を分断しよう。

ソーシャルゲームに携わる経験から

ソーシャルゲームは、定期的なリリースを優先する。ゲームにフィーチャが追加されることはユーザにとっての体験を増やすことにつながるから、おもしろさや売り上げにつながるのである。

仮に、フィーチャリリースが1本の開発ラインだと、大きな機能開発が遅れると、長期間ゲームの変化がなくなる。いつまでもゲームそのものに変化がないと、ゲームをやっているユーザーが飽きてくるのである。ユーザーは常に刺激を求めている。

おすすめの方法は、フィーチャリリースラインを複数ラインにすることによって、立て続けに新たなユーザー体験を提供するのである。フィーチャには、ユーザーに受け入れられるものもあれば、否定されるものもある。フィーチャー開発ラインが1本だけというのは、バクチのようなものだ。

この辺の考え方は僕独自の見解なので、注意。アジャイルとは関係ない。僕自身はこの考えを元にフィーチャのストーリーを考えるし、携わる。

タイトルとURLをコピーしました