計画ゲーム紹介をこんな形で
むっ。
むむむむむっ。
知らなかった。いつの間にかこんなことやってやがる(←何様のつもりだ>俺)。 確かにまともな技術情報とかでは、ワタシには万に一つの勝ち目も無い(←言い切るな>俺)。
でも。この分野なら違う。いや!むしろ!この分野で対抗せずにどこで張り合える というのだ〜〜〜〜〜!(うるせぇ>俺)。
ふむ・・・・・仕方ない。彼らに登場してもらうしかあるまい。
出でよ!我が最終兵器!脳内漫才製造マッシーン!!!!
「という訳でよろしくお願いしまーす」
「よろしくお願いしまーす」
「・・・・・・・・・」
「・・・・・・・・・」
「・・・・・・・で?」
「はい?」
「何を喋るの?」
「いきなりそれかよ!」
「だってずーっと出番無しでほったらかしにされてたと思ったらいきなり『ちょっとこっちに出張ね』って連れてこられて。これで何を喋れっつーんじゃボケナスが!」
「客相手にキレんじゃねぇ!仕事があるだけありがたいと思え!」
「うわ、コイツいっぱしに小泉気取りだよ。『痛みを共有して改革を・・・』だったらまずお前が痛めや自民党が!」
「キレ所間違ってる!それに今日は政治ネタやんないから!」
「えぇ?そうなの?せっかく今回の総選挙の結果を元に『池田大作万歳音頭』でも御披露しろうと・・・」
「それは全ての意味でヤバいからやめろ!それ以前に時事ネタ混ぜると劣化も早いから。今回はベタ指向で。」
「以上公開打ち合わせでした。」
「オメーが脱線し続けてるだけだろーが!」
「それにしても・・・なんてゆーか。今日のお客さん。どことなくみんな顔色悪いですねぇ。」
「それを言うなそれを。みんな残業徹夜休出続きで頑張ってるんだから。」
「ステージ上がった時みーんな土気色の顔してたもんだから、埴輪の発掘遺跡にでも来たのかと思っちゃった。」
「老人会の営業と同じ前フリを使うなよ!すいませんねぇ客イジリしちゃいまして。」
「しかしわてら自由業も大変といえば大変ですけど。やっぱ世間的にはプログラマってきつい仕事みたいですねぇ」
「そりゃまぁアニメーターと並んで『最下層』とさえ評されかねない職業ですし。」
「度重なる仕様変更、一日たりとも伸びないデッドライン。エンドレスな長期間労働、仕事以外何も残らない生活・・・貴方本当にいいんですか?こんなはずじゃなかったって思ってませんか?」
「どこぞの宗教セミナーみたくうさんくさいんですけど」
「そうです。これでいい訳が無いんです。皆さん生まれ変わりましょう!晴れた日の昼下がり、ビルの屋上から地上を、そして空を見回してみましょう。あぁなんて自分はちっぽけな存在だったのでしょう。それに気付いたら過去の自分と決別すべく、空へと羽ばたくのです!」
「自殺だろそれは!薦めんなそんなこと!ほらそこのお客さん席立たない!」
「今なら特別サービスとして2tの荷重に耐えられる首吊り用ロープを・・・」
「もういいよ!つーかその手のギャグがここではシャレになってないことにいい加減気付け!」
「なんてことをしなくてもいいように我々が知恵を授けよう、というのが今回の主旨でございます」
「全然正反対の主張してんぞ!さっさと本題入れ!」
「はいはいうっさいなぁ。こうゆう石頭な上司がいるとプロジェクトは得てして進まなかったりするんですよねぇ」
「うるせーよ!つーかお客さん拍手しない!」
「しかし石頭、という意味ではある意味上司より厄介な存在というのが存在しますよね。ズバリ顧客。お客さん」
「なんか煙に巻かれたような気もするが・・・確かにね。お客さんだから下手なことも言えないし」
「でも実際問題として『これを作るにはこれだけの時間が必要』というのはある訳ですから、プログラマとしてもこれがわかってくれないとどうしようも無い訳で」
「やっと本題に近づいてきたね。XPをご存知の方であればこれを解決する手助けになるプラクティスが何かもご存知ではないかと」
「そう。その名も」
「その名も?」
「計画犯罪!」
「計画ゲーム!どうしても持っていきたいんかそっちの方向に!」
「顧客はストーリーカードにひとりずつ暗殺予定者を記入していく。スナイパーはそれを見て見積もった報酬金額を・・・」
「具体的に言うな!書くのは要求仕様!スナイパーじゃなくて開発者!見積もるのは時間!」
「とまぁ予め役割とルールを明示しておくことで、これまでのタスク見積もりではいまいち踏み込めなかったスコープの問題などを計画ゲームで解決してみよう、そのついでに今まではどうしても敵視してしまった顧客も味方として巻き込んでしまおう、そんな試みですな」
「つーかその説明だけでわかるヤツいないだろ」
「という訳で。百聞は一見に如かずという訳でこの場で実演してみましょうと。んじゃワタシ顧客役やるんで君開発者役ね」
「お、珍しく前向きやん」
「ほーら、このように既に要求仕様書いたカードも用意してますよー」
「おおー」
「ポルトガル語で」
「読めるかあぁぁ!!つーかテメー書けるんか!?」
「嘘に決まってんだろ・・・・・・ていうかキミ、仮にも客に対してその口は何だね?」
「役でごまかすな!・・・まぁいいや進めましょう。で、それがユーザカードになるんですね?」
「うむ。一晩徹夜して書いたぞ。その数なんと100枚。」
「うわー大掛かりですねぇ。見積もり大変ですけど頑張りましょう」
「あ、見積もりなんかいいから」
「へ?」
「1機能につき2時間としても徹夜でやれば一日10個はいけるでしょう。という訳で2週間で全部作ってねよろしく」
「できるかあああああ!!!世の開発者全員敵に回す気かオノレは!?見積もりすんのはこっちの権利!」
「XPだから早いんじゃないの!?」
「それはあくまで相対的な評価!個々の微細な局面ではむしろスピードは遅くなる位なんだから勝手に誤解のまま決めんな!よこせストーリーカード!・・・まったくもう・・・・ブツブツブツ・・・」
「おーい役割分担・・・ボク顧客・・・」
「役割分担して欲しかったら真面目に進めやがれボケ製造マシーンが!」
「いかにも私はボケ担当ですが」
「言葉尻捕らえるな!もういい!次行け次!」
「えーと。んじゃここに100枚あるストーリーカード。これ使ってどうすんの?」
「まずはそれ束にして出されてもコマってしまうだけなんで。まずは1枚ごとに 優先度を決めてもらえますか?」
「優先度?」
「はい、3段階位に分けてくれればいいです。A:これが無ければ市場に出す価値が無くなる必須機能、B:あれば市場で優位性が持てる機能、C:無くてもいいけどあるとなお良しな機能。こんな感じですかね」
「A:松浦亜弥、B:磯野貴理子、C:土井たか子みたいな感じ?」
「どんな感じだよ!?最後すっとんでんじゃねぇか!」
「社民党惨敗したし存在価値無いし」
「わーわーわーわー!言うなそれ以上!えっとね。そもそも必要ないのであればストーリーにも起こさないでしょ?だから起こしたストーリーは必要ってスタンスであるはずなの。その中で優先度を決めることで何から作っていこうか決めていこうと。そうゆうことよ」
「説明的だね」
「お前が説明しとらんだけじゃ!」
「んじゃ分けましょっか。ほいほいほい。はいできた」
「えらく早いですね・・・どれどれ・・・え?Aが100枚でBCが0枚?」
「だって全部絶対に必要なんだもん」
「ボケーーーーー!・・・・・と言いたいところだけど。こうゆうケースは実際の話よくあるんだよな」
「え?俺ボケたつもりなんだけど」
「実際の顧客さんも同じシチュにはまると、BCにカードを分けるのに抵抗を感じるらしい」
「そりゃあ誰だって土井たか子と一夜を共にしたくわ」
「おたかさんから離れろ!まぁ実際にこれやらせる時には【Cは作らない】という意味ではないということを理解してもらう必要があるね」
「じゃあ実際には、A:松浦亜弥、B:ソニン、C:磯野貴理子なんだ」
「えーと。本人がいいならそれでいいんだけど・・・」
「ツッコめ。むしろツッコンデクレ頼ム」
「まぁとにかくもっぺん分けてくれ」
「しくしくしく・・・・・・はいできましたしくしくしく」
「もうその話終わってんだから泣くのヤメレ。えっとA:34枚、B:39枚、C:27枚。まぁこんなもんでしょ」
「で?」
「これを基に開発者側が、これを完了させるのに必要な期間を見積もりしていく訳だね。ちなみに見積もり単位には今までの週とか時間とかではなく、あえて言葉をあいまいにする意味で「ポイント」とかを使います。んじゃちょっとカード拝借。さらさらさら・・・はいできた」
「うわー。いつの間にかカードの隅に数字が。事前に仕込んだ甲斐があったよねぇ」
「あっさりバラすな!」
「でもこの数字って何を意味するの?これって結局人日?」
「あーそれね。人日と似てるんだけどちょっと違う。正確には『開発者がそれひとつに完全集中した場合に達成できるであろう見積もり日』とでも言ったほうが適切かな?」
「じゃあKaihatusya ga sore hitotsu ni Kanzen syuucyuu sita baaini Tassei dekiru de arou Mitsumori-bi、略称KKTMってことで」
「勝手に作るな!意味わかんねぇ!しかもローマ字だし!まぁもっとも名前付けるのめんどくさいから一般的には『ポイント』で終わっちまうことが多いけど。結局は開発者側もそれぞれ雑用抱えてたりとかして作業に集中できないことが多いでしょ?」
「あー川に水汲みとか明日の狩りのためのヤリの準備とか」
「いつの時代だよ!まぁ要はそうゆう雑用は抜きにして見積もりしちゃいましょう、ってことですな。」
「あ、じゃあ開発者はそれだけに集中してればいいと」
「もちろんそれがベストなんだけどねぇ。そうはなかなか現実が許してくれないのでその辺の調整は後で行います。まぁここでは単純に『集中したらできる期間』程度で数字つけてしまえばいいっす。もっと知りたきゃXPの緑本(実行計画)あたりでも読みな」
「いいかげーん」
「言うなって。という訳で見積もりができましたよっと。ここでもう一度アドバンテージは顧客側に移ります」
「おっしゃーやったるでー!」
「無駄に張り切らなくていいから。じゃあこの中から今回のイテレーションで実装するストーリーを決めましょう。えっとベロシティを8と宣言します。したがってこのユーザカードの中から先程書き込んだ数値が8を超えない範囲で自由に選択してください」
「ベロシティって何?市長になって都市を育てて・・・」
「そりゃシムシティ!」
「イテレーションって何?ケーキとかにホイップで・・・」
「そりゃデコレーション!無理矢理ボケるな!」
「だって専門用語出されても何がなんだか」
「あ、そりゃ失礼。えっとまずベロシティってのは開発者側が1イテレーションの間に全員でこなせるであろうポイントのことです。ベロシティ8ならば1イテレーションの間に8ポイント分の機能を実装できますよ、という宣言ですな。」
「ここでさっき言ってた『雑業との調整』を行うと」
「ご名答。ミーティングとか研修とかで予想される作業時間減はここで調整する訳ですな。 結果本当に現実的な時間だけを見積もりに反映できると」
「イテレーションは?」
「開発サイクルを表す単位だと思ってくださいな。XPではイテレーションを期日のベースにして、その単位で順番に機能を作成・追加していきますから。」
「雪だるま作るときに元になる小玉作って後は転がすようなもんか」
「そうそうそんな感じ」
「でおりゃっと坂道転がしたら勝手に転がり出して巨大な玉が襲いかかると」
「トムとジェリーじゃねぇんだから!つーか元ネタわかんない人いるだろ!まぁ要は短いサイクルを反復していく形を取っていきましょうってことね。んじゃここではわかりやすく1イテレーション=1週間(5稼働日)ということにしときましょうか。はい、んじゃとっとと選んで」
「えっとじゃあこれとこれと・・・」
「この選ぶ過程の中で先程のABC区分けが役に立ちますよね。当然Aを優先的に選んだ方がそれだけできあがったモノに価値が出ると」
「せんせーできましたー」
「お前顧客役だろ、子供返りしてどーする・・・え?ちょっとこれ。合計10ポイントあるんですけど・・・」
「えっとね。やっぱ1イテレーションの中ではそれ位は進めて欲し・・・」
「ダウトーーーーーーー!!!ていうかこれも顧客側の欲望としてはあっても当然なんですけどね。残念ながら各見積もり数値の決定権は開発者側にあります」
「やだやだやだー10ポイントやってくんないとヤダヤダヤダったらヤダー!」
「その抵抗の仕方やめぇ!気色悪い!」
「誰が気色悪いって?」
「いきなり顧客役に戻るな!えっとですね。これも特に顧客サイドには誤解されないようによーく理解してもらう必要あるんですけど。何もお客さんが憎くて拒否してる訳じゃないんですよと」
「というと?」
「無理にタスクこなそうとすれば確かにできるかもしれません。しかしそれをやると結果的には以前と同じように残業休出当たり前なんてことになってしまう。かえってコストもかかる。それで納期早くなるかというと実際には品質もボロボロで却って逆の結果を及ぼしてしまう・・・」
「でも俺は徹夜する必要もないから知ったこっちゃないけど」
「そんなボロボロの状態でできあがった糞システム使うハメになるのはお客さんですよ?ダメだったら違約金せしめればいいやとか強がったところで結局システムは使いモンにならないんですよ?それでもいいの?」
「ここで『いいよ』って言ったら?」
「ハイそれまーでーよー、でしょうな。月の明るい夜ばかりじゃないからねぇ」
「じゃあやっぱり敵扱いじゃねぇか!出会え出会え!返り討ちにしてくれるわ!」
「いつから時代劇になったんだよこれは!でもそれじゃああんまりでしょ。そのために『味方として巻き込む』という表現してるんだし。せっかく命の次に高い金払ってモノ作るんだから、使えるモン使いましょうよ。そのためにも役割とそれぞれの責務決めて『より失敗しないため』の進め方をしましょうよ・・・と。こんなところなんじゃないですかね?」
「Win-to-Win?」
「まぁそこにも繋がっていくんでしょうな。つー訳で2ポイント分削ってくだされ」
「・・・はい・・・しぶしぶ・・・じゃあこれで・・・残りもいつか耳揃えて払いますから・・・何卒我が娘だけは・・・吉原に売られて見知らぬ男と・・・あまりにも不憫で・・・うっうっうっ」
「時代劇からも離れろ!はい、じゃあ8ポイントということでこのイテレーション分のストーリーが決まりましたぱちぱちぱち。現実にはここからストーリーをタスクに落とし込む作業をしてそれを基に開発者がコミットメントする、という手順になるのですが。まぁこっからはいいでしょう。要は顧客と開発者の間で時間の『共通認識』を持つ、というのが大きなポイントですので。後は本とかでも読んでください」
「ボケ考える時間が無かっただけという説もあるけどな」
「だからバラすなって!で一応フォローしておきますと」
「ん?」
「計画ゲームは毎イテレーションの最初に行われますから。その度に見積もり値の修正や変更は行われますし、ベロシティ自体も実績に合わせて変化します。うまくいけばその内公明正大に10ポイントこなせる日が来るかもしれませんねぇ」
「なぁんだそうかぁわっはっは」
「そのリアクションわかりやす過ぎ。とまぁそんな訳で『開発ゲーム』についてざっと並べてみましたが。いかがでしたでしょうか?」
「相変わらずお客さん土気色ですけどね」
「いやそれは一朝一夕で直る訳じゃないし」
「でもまぁたまにはこうゆうネタもよろしいもんですな。笑いのツボも違ってくるでしょうし」
「そうですね。また反響等あれば続編も考えるかもしれませんので〜」
「次回はより自殺他殺ネタを充実させて」
「やめなさい!」
しかしこの文章もある意味ケンカ売ってるよなわっはっは。
笑ってる場合か>俺。