アジャイル開発の問題はプロジェクトオーナー

今日はアジャイル開発向上のための集まりがあってLT(ライトニングトーク)などの発表がありました。その後、お互いの悩みを相談しようというワークとディスカッション。その中で出てきたのが「プロジェクトオーナー」問題。

geralt / Pixabay

「問題はプロジェクト・オーナーじゃないかと…」

今回の集まりはプログラマー中心。そのためどうしても対局にいる「オーナー」が問題の原因となりがちです。「もしかしたら、オーナーの問題でしょうか?」という具合にどちらに問題の軸があるのかという意見もありましたが、やはり「オーナーが…」が多いですね。

参加者10人ぐらいの中でプロジェクトオーナーの立場だったのは私一人だけでした。そして私自身もプログラマーですから「発注者が…」という悩みもよくわかります。そこで両方の立場からオーナーはどうあるべきか、プログラマーはどう接するべきかを話していきたいと思います。

プロジェクト・オーナーはどうあるべきか?

開発の発注者となるプロジェクト・オーナーがやるべきことは「決断すること」「責任を取ること」になります。決断とは何を開発するのか、何を開発しないのか、という部分。その提案をするのはプログラマーで良いと考えています。責任を取るというのは当然のことですが、決断と責任はワンセットだからですね。プロジェクトの責任でもあるし、金銭的なものも含めて、最終的なすべての責任を負う覚悟でプロジェクトに参加しなければなりません。

「決断しない」「責任を取らない」というのは最悪のプロジェクト・オーナーでこの時点で絶対に成功しないプロジェクトと言い切れます。成功するのはその逆で、きっちりと「決断をする」「責任を取る」ことができるプロジェクトオーナーです。

一番困るのは「何を作りたいのかわからない」という部分。それは手段から入っているからでしょう。「あれをやりたい、そのためにはコレ」とたどり着いたのが「アジャイル開発」であればOKです。ところが「アジャイル開発で何かやりたい」となると問題となります。建築で言えば土台になる部分が無い状態で上モノだけ作るような感じです。「なぜ、作りたいのか」「なぜ、作る必要があるのか」とことん突き詰めなければなりません。

もし明確な目的が伝えられないならば「開発に着手してはいけません」。

メンバー(プログラマー)はどうあるべきか?

プロジェクト・オーナーと話し合いをしながら、開発するべきもの、しなくてもいいものを提案していかなければなりません。もし「オーナーが言うから仕方がない」と反論することもなく、全部受け入れるのはアジャイル開発とは言えません。みんなでチームです。チームの何処かで「仰せのままに」をやっていたら満足するゴールには辿り着けません。

気をつけなければならないのは「作る側の事情」ばかり言ってはいけないということです。プロジェクト・オーナーは技術的な限界もわからずにドンドンと要望を出してきます。それを「できない」と言い切ってはいけません。そのような場合は「こうすればできる」「それは無理だけど、こういう形ならばできる」という風な代替案を述べる対応が必要です。

プロジェクト・オーナーは「何らかの理由があって、依頼している」ということを忘れてはなりません。ですから「なぜ必要なのか?」という理由の部分を徹底的に聞く必要があります。そうする中で、表面的な「これ作って」をひっくり返して、「これで目的が達成できる」という感じで、技術的、時間的な成約の中でできるのです。

プロジェクト・オーナーが本当に作りたいことを理解しているとは限りません。そのことをよく理解しておいてください。

もし、良くわからない開発を依頼されたら、徹底的に「どうして必要ですか?」ということを聞いていきます。ここで重要なのは“相手の意見を認めながら、聞く”ということです。どんなに無駄だと思う依頼でも、何か理由があるはずです。

「これはどういうことを目的にしていますか?」
「なるほど、そういう意図があったのですね。気が付きませんでした」
「それではこういう形で実現するのはどうでしょう?」
「その方がデータがシンプルで、開発も早くなります」

という感じに、1)認めて、2)確認して、3)提案する をすることで比較的スムーズになるでしょう。

プロジェクト・オーナーも人間です。否定されたら不快だし、認められたら嬉しくなります。どんな無茶な開発依頼もまずは受け入れて、それから提案をしていきましょう。

敵じゃない、チームなんだから

プロジェクト・オーナーとプログラマーは対立な位置づけになりがちですが、当然ながら敵対関係ではありません。チームですからね。どうしてもポジション的にプロジェクト・オーナーのほうが上になりがちです。大抵は「発注者」「お客さん」が多いでしょうから。本来はイコールな立場だということです。とはいっても、現実的にはなかなか難しいですから、せめて「言いたいことが言える」ようにしていきましょう。

そのためにも「雑談」はとっても大切です。お互いの事を知るというのは大切です。例えば友達同士だったら、忌憚(きたん)ない意見を言えるし、我慢もできますね。友だちになってしまえば、立場的な上下関係は生まれることはないでしょう。

ざっと書きましたが、結構重要な事だと思いますので両方の立場から考えてみて、実践してみて欲しいと思います。

開発進捗アジャイル, 開発

Posted by ライトニング 今村 吉宏


PAGE TOP