アジャイルに対する4つの誤解
ここ半年ほど、自分が担当する新規プロダクトをスクラムでつくりながら社内のアジャイル導入支援をしています。
つまり周囲の人たちは未だアジャイルに対する十分な知見がない状態です。
そこで聞かれた質問や、今までに発生したいろいろな事件をもとに、アジャイルに対するありがちな誤解を紹介します。
1. ドキュメントを書かなくてもいい
「要件定義」「基本設計」…みたいなフェーズがないせいで、こういう誤解が生まれています。
アジャイルにおいて要件定義というフェーズがないのは、全ての要件の定義を一度にまとめてするという行為をしないからであり、ドキュメントを書かないためではありません。
実際は、優先度の高い機能から順に要件定義→設計→実装を高速で回していくので、開発期間中は常に誰かがドキュメントを書いている状態になります。
…まさか、アジャイルは要件定義をしなくていいなんて、思っていませんよね…?
余談ですが、GithubやSwaggerのようなツールの普及により、古き良きSIerの方々が書くようなドキュメントとは違う形態でのドキュメンテーションが主流になっているように感じます。これはアジャイルかどうかに関係ないですが。
2. 開発の速度が上がる
いやいや、アジャイルにしたら急に開発チームの能力が上がるなんてこと、あるわけないと思うのです。
ただ、100%誤解とも言い切れない部分があります。アジャイルの良い点のひとつは手戻りのリスクを低減することであり、そういった面においては、必要とされている成果物にたどり着くのは早くなるかもしれません。
開発チームの能力は据え置きでも(←開発チームの人、なんかごめん)、最終的に成果物のリリースが早くできるようになれば、外からの見え方として「開発はえぇぇぇ!!」になる可能性は大いにあるのです。
逆に、明確な要件定義フェーズがない分、曖昧な要件を紐解くのに開発チームの工数が使われてしまう場合などにはむしろ開発速度が下がるケースもあります。(私が入ったプロジェクトは最初そんな状態でした。)
正しく回せば開発チームが開発に集中できるし手戻りのダメージも少ないしMVPも見極められるからきっといいことがあるけれども、単にアジャイルにしましたっていうだけなら速くはならないよね、ということです。
3. 発注側(PM)が楽
私の会社は開発を外注しています。そこで発生した誤解は、アジャイルだと発注側が楽だとか何だとか…私が楽しそうに仕事しているからなんですかね。
100%誤解です。そういう人たちにとっては、ウォーターフォールのほうが絶対に楽です。要件定義のフェーズでしっかり御用聞きをしてもらって、しつこいぐらいに進捗報告を受け、何か問題が発生したらちゃぶ台を返せばいいのです。金に物を言わせてCRの嵐を巻き起こせばいいのです。
なんて言ったら怒られそうですが、つまり従来型の開発でまかり通っていたそれらのことってアジャイルでは通用しないのです。
更に、細かく要件を仕様に落とし込む作業には時間がかかります。プロダクトマネージャーは開発側の開発スピードに追いつくのに必死になります。仕様を書き続け、もう無理!と思いながら更にずっと書き続けても開発チームは涼しい顔ですごいベロシティを出してくるのです。それに追いつくには、息をつく暇もありません。
むしろ追いつけなくて「ごめん、間に合わなかったから次のスプリントは開発チームもここ手伝って」って言ったことがあります。
4. 見積もれない
いや、じゃあウォーターフォールはどうやって見積もってるんですか?と問いたい。
見積が必要なら見積もればいいと思うし、回し方が違うだけで開発するものは同じなのだから見積自体はウォーターフォールの場合と変わらないと信じているのですが…
とはいえ外注するなら契約形態は請負よりも準委任のほうがアジャイルには適していると思います。開発機能ががっつり決まっているなら請負契約も可能ですが、私は過去に開発期間中に大きなピボットをしたことがあるので、その経験を踏まえると単純にちょっと面倒です。(まぁそれはウォーターフォールでも同じか。)
ありがとうございます。いただいたサポートは、脳の栄養補給のため甘いお菓子となり、次の創作に役立つ予定です。