海と山が好き

海と山が好きだけど埼玉に住むおっさんが遭遇したアジャイルとかのはなし

『プロダクトマネジメント』を読んで

プロダクトマネジメント』原題: Escaping The Build Trap を読みました。

良書でした。同時にビルドトラップを生み出す組織構造にも興味が沸いてきました。 

翻訳は安心と信頼の Ryuzee さん。 -> Ryuzee.com

プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届ける

プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届ける

  • 作者:Melissa Perri
  • 発売日: 2020/10/26
  • メディア: 単行本(ソフトカバー)
 

 

原題にも書かれている ”ビルドトラップ” とは、プロダクトを作ることが目的化している状態のこと。

一見プロダクトを作るということは正しいように見える。だってプロダクトで儲けてるんだし。

でもビジネスの目的はプロダクトを作ることではなく儲けること。

儲けるということは顧客が対価を支払うということになる。

ここでプロダクトが差し出す対価とは顧客の問題がプロダクトによって解決され流ことになる。

この辺りはジョブ理論の影響を受けていそう。

ジョブ理論 イノベーションを予測可能にする消費のメカニズム (ビジネスリーダー1万人が選ぶベストビジネス書トップポイント大賞第2位! ハーパーコリンズ・ノンフィクション)

つまりビジネスの目的は、顧客の目的を解決することであって、プロダクトを作ることではない。

 

一方で、プロダクトを作ろうとする圧力は必ず生まれる。

そしてなんのためにプロダクトを作るのか、という観点が失われると、機能の開発が目的化する。

機能が増えれば品質を確保するためのコストは上がり、使いやすさは低下し、ユーザー離れを起こしかねない。

この辺りは実はアジャイル開発が苦手にしている分野だと思う。

(解決しようとしていない、と言った方が正しそう)

スクラムで言えば、初めにバックログありき。でプロセスが描かれる。

バックログを価値に変換するためにスクラムを組んだりして価値を届ける。価値。価値がある、はず。きっと。

 

この辺りを明確にアジャイル開発は語っていないことが多い。

なんせアジャイル ”開発” だし。どちらかというとリーンスタートアップとかデザイン思考とかが色強め。

アジャイル開発は改善も組み込まれているので簡単にベロシティは上がっていく。

ベロシティが上がると嬉しいことに(罠)、機能がたくさん作れる。やったね!

でもアジャイル開発がなぜ必要なのか、という資料に9999%の確率で現れる Chaos レポートの、64% の機能は使われていません!という事実。(ちょっと古いけど。)

 ベロシティをあげると、これらのゴミ、もとい使われない機能を実装できることになる。本末転倒では?

 

”開発” というスコープに視野を狭めてしまうと、非常にこういった罠にハマってしまいやすい。

本書ではそうなってしまう理由を解説している。

要は顧客の問題を理解しないまま作ることが目的化してしまうという。

プロダクトマネジメントは顧客のないを解決しなければいけないのか、プロダクトの機能の Why に集中すべし。とのこと。

顧客に会って、顧客の行動を観察して、何を解決しなければいけないのか、また、今わかっていないことはなんなのか、次にやることはなんなのか、という型を提示し、事例で示している。非常にわかりやすい。

この型を通じて活動することで、Unknown unknowns が見えてくることになる。

この領域がないと断じて作り始めてしまうと、顧客が求めていないものを作ることになり、ビルドトラップにはまる。

(あれ、これってなんかウォーターフォールみたいだな。ウォーターフォールって究極のビルドトラップなのかも。)

 

また、この書は明らかにプロダクトマネージャ、プロダクトオーナー向けの本だが、同時にエンジニアやデザイナー向けの本でもあると思った。

イソップ寓話でいうところのダメなレンガ職人になっていないかを常に考えないといけない。

というか、「これを作って」って言われたら、いつだって、「なんで?」って聞き返さないといけない。

何を解決したいからこれが欲しいの?」がわからないまま、表面的に言われたものを作ったところで、使い物になる可能性は低い。だってわかってないんだから完了条件満たしてるかわからないじゃない。

「完了条件は Acceptance Criteria に書いておいて下さい。」とか言い出す人もいる。きっといる。間違いなくいる。今脳裏に3人くらい浮かんだ。

その発想はおそらく、”個人との対話よりもツールやプロセスを重視” している。態度がプロダクト開発に向いてない。

Outside-in 志向で仕事をする。最終形から逆算して必要なものを作る、という発想でものを作らないと、言われたものを作る思考になりやすい。

会話が面倒だからって言われたものだけを作ろうとするといつまで経っても「仕様変更が多すぎてクソだわうちの客」とか愚痴り続ける人生になりそう。

少し触れられているが、「何をするか」を指示するのではなく、「何を解決したいか」を提示し、どうそれを実現するかは任せてしまえ、とある。

個人的にはチケットは状態で定義せよとスクラムチームに言っているのと同じ内容だったので安心した。

エンジニアとしても、Why を理解し要とすると最終的には顧客の何を解決するのか?に行き着く。結果、ドメインに踏み込んだ理解をする形になる。

ここまでくれば次にドメインの構造が見えてくるから、まともな設計もできるようになってくる。結果として変更しやすく理解しやすく、説明不可能なロジックが生まれなくて済む。割と。まあ勘違いしてたなら直せばいいし。

 

この本の面白いところは、組織としてプロダクトマネジメントを阻害する要因にも触れている点で、プロダクト企業の経営層にいる人は常に自分たちがこの状態に陥っていないか、PdM が顧客と話しているか、上司の顔ばっかり見ていないかを常に考えるべしという警鐘にもなっている。リーンエンタープライズにも少し近しいところはある。

組織として、戦略として、プロダクトマネジメントを据え置く上でどう構えるのか、どう構えるのが NG なのか、この辺りは組織論としても非常に興味深かった。

(ツリー構造の組織だと途端に顧客を見なくなるフォースが起動するから正直うまくいくのかなーという気はしなくもない。)

 

改めて、良いものを作るためには何を作るべきでないのか、を理解しないといけないなあと思わされる本だった。

 

----

 

この本を読んだ直後に社内で新サービスの話が出たときに、作る前からビルドトラップが生まれていてうーんこれは意識しないと本当に自然にハマってしまうんやなあと納得した。怖い怖い。

改めて考えてみると、「なぜそれを作るのか」を理解していないならそれは “エンジニア“ ではなく“コーダー“ なのかもしれない。(個人の感想です)

 

ーーーー

思い返してみると、5年くらい前か?新しくチームを立ち上げると言うので PMO(という名の何でも屋)で PL サポートした際に、前任者は言われたことを言われた通りにやる人間でクビになっていた。後任として入ったら、頼んだことをそのままやってくれず質問を返してくるのに答えてると自分が理解してないことが分かったのでよかった、ってだいぶ長い付き合いになった案件があった。

ビルドトラップもあんなもんなのかもしれない。言われた通りやるのって楽なんだけど。

でも考えてみると、目的を理解して仕事をしましょう、って新人研修あたりで言われるよな・・・・・・・(オチなし)

スプリントへの割り込みに悩まされた時に考えること

前回の続き

bbbbashiko.hatenadiary.com

そもそもゴールに集中したら何を追加するかわかるじゃんっていう話をこの後に書いた

bbbbashiko.hatenadiary.com


割り込む理由/どんな状況か/何を見て判断するか/対処方法

※ここに書いてあること以外にもいっぱいあるはず。

※割り込みが絶対にあってはいけないとは言わないですが、ヒステリックにゼロイチでないといけないということもないと思うので、割り込みが多いなって思ったら気にするくらいで。完璧なんてないので。 ※目安はスプリントゴールがもう無理ってなるかどうか


計画が立てられるほど見通しが良くない

500m先を右に行こうとか見えてない先のことまで考えて運転しても途中でハンドルを切り直す羽目になる。

  • こんな状況
    • スプリント期間で何をやればいいのかを決め打ちできるほど、チームの置かれている状況の見通しが高くない。
    • 必然的に、スプリントを進んできたところで新たな発見・ないしはやらなければいけない仕事に出会い、修正を余儀なくされる。
    • 結果、割り込み誘発される。
    • ウォーターフォールは変化に対応しにくいけど、同じ理由で変化に合わせたサイクルでないスプリントも変化に対応できない。
  • 兆候
    • 割り込みはスプリント後半に発生している
  • 対処
    • スプリント期間を短くする。
    • またはタイムボックスで仕事をすることを諦める(フローで仕事をする。カンバンとか)

規律の乱れ

規律が乱れると地獄が始まる

  • こんな状況
    • PO が開発者(というか規律)に対する甘えを持っている。スプリントの途中で頼めばいいだろう、という発想でいる。
    • 結果としてデリバリーが混乱し、チームの規律を乱すことを許し、プロダクトのアウトプットも低下する。結果として、ROI を最大化するという PO の責務を果たせていない、ということに気付いていない
    • PO は常に一歩先、二歩先を見越して何を解決すべきかを考え続ける必要があるが、受託請負メンタルの PO には難しい。役割名通り、オーナーシップを持っていないとこの辺りのことを考えられない。
  • 兆候
    • 割り込みを追加する際にチームとしてルールや規律を設けていない
    • 開発者は割り込みを受け入れることで、ゴール達成できなくてもしょうがなくない?というコミットメント放棄がバーターとして許されるという甘い罠にハマっているので、スプリントゴールの達成がされない
    • スクラムマスターは見て見ぬふりをしている
  • 対処
    • スクラムマスターを変える
    • 規律として割り込みをどうするのか、チームで話してワーキングアグリーメントを定める

お前の目は節穴か

視力が悪い人は視界が良くても速く走れない

  • こんな状況
    • スプリントのスコープがコロコロ変わる
    • ドメインについてあまり理解していない PO や開発者で構成されている。受託みたいな。
  • 兆候
    • スプリントのいつでも割り込みがある
    • PO はドメインについてあまり詳しくない
    • スプリントレビューで初めてトンチンカンなもの作ってることに気づくことが多い
  • 対処方法
    • ドメインを理解している PO に交代する
    • PO がドメインを理解する訓練をする
    • チームが、言われたものを作ると言う態度から、なぜ作る必要があるのか、を問うように訓練する

    • 視点をソフトウェアを作る、システムを作る、と言う観点から、サービスや業務を作る、といった観点に引き上げる。

      • ユーザーストーリー形式の、”〜〜なぜならば、” の項を明確に書くようにする。ないと何が困るのか、誰が困るのかを理解する
      • 肩越しの視線:ユーザーが使っている場面を見に行く、とかもできるならやる
      • プロダクトバックログアイテムの向こう側にいる実際の人を見るきっかけを作る。映像で実感する。

結局のところ、ドメインの不確実性のためにアジャイルな構えが必要というのは、1だったり3だったりで複合的、というか、相対的なものなのかもしれない。

同じシステムを新人や未経験のチームに任せるということは、相対的にそのドメインがチームから見て不確実性が上がっているように見える、のかもしれない。知らんけど。

なぜ割り込み仕事に悩まされるのか

スプリントへの割り込みに対してどう対処するか。

スクラムをやっていて一番悩まされることが、スプリントへの割り込みどうするか。

基本的には、スクラムマスターが スプリントへの割り込みタスクを防止するように割り込み依頼者に伝える。とある。でもそうはいっても難しいというのをよく聞く。つらい。

 

なぜ割り込みが発生するのか

続きを読む

『別にスクラムは目的ではないので』との向き合い方。

「別にスクラムは目的ではないので」

親の顔よりよく見かけるフレーズ(当社比)

スクラムの規定しているロールやイベントをやらない際に使われる。Scrumbut みたいな。

f:id:Bashiko:20200623171313j:image

もちろんスクラム自体は目的ではないし、してはいけない(と、個人的には思っている)が、スクラムがなぜ機能するのか、を理解せずに、上の言葉を持ち出してねじ曲げる場面を見ると、少し危ないと思っている。

(もっとも、スクラムだけじゃなくて、PMBOKCMMI でもよく聞いたし同様だ)

 

続きを読む

スクラムを個人戦にしてしまう方法

スクラムではチームの成果にフォーカスする。

そのためには、個人で仕事をする形から、チームで仕事をする考え方にシフトしないとけない。

いわゆる Swarming という考え方で、チームが寄ってたかって一つの開発アイテムを進めることを意味している。

逆に、チームでバラバラと仕事を進めるわけではない。

イメージしにくい人は、アメフトの試合で、ボールがフィールド上にいくつあるのか(1つに決まっている)、チームはどのボールに向かっているのか(1つに決まっている)を想像してみるといいと思う。あっちもこっちもボールが転がってたら大変だ。面白そうだけど。


なぜチームで仕事をするのか

続きを読む