どうやって2割を見切る?


「時間をかければかけるほど、いい仕事ができるわけではありません。仕事の質とかかった労力、費やした時間と成果は必ずしも比例するとは限らないのです。」
「100%の質を求めたら、予定した時間にはまず終わりません。どこかの時点で「よし、これでいい」と、思い切って仕事を「終わり」にする必要があります。」

 なーるほどねぇ。以上「時間に追いまくられる人 仕事がラクラク片づく人―どんなに忙しくても着実に成果を上げる仕事術」からの引用。

 言いたいことに関しては至極当然ごもっともでございまする。

 いやね、もちろん仕事の進捗とかの関係で見切りをつける必要がある、というのもあるんですけど。それ以上に「そうじゃないと持たない」というのを感じてて。仕事柄さまざまな人の「壊れていく過程」を見聞きしてる訳なんですけど、やはり完璧主義者の破損率ってのは高いような気がするんですよね。常に100%、下手したらそれ以上の要求に応えようとして頓挫し崩れ落ちると。

 心療関連の本読んでいても、まず槍玉(という言い方もヘンなんですけど)に挙げられるのは完璧主義ですし。あーしなきゃこーしなきゃの強迫思考、それに応えられなかった時の自責が次から次へと負の連鎖を起こしちゃうと。

 そうゆうこともあってか(勝手に結びつけてますけど)、上の本では80%位の完成度で見切りをつけて完了する、いわゆる「見切り」を推奨しています。それこそYAGNIに通じるものがあるんでしょうけど。常に完璧を目指すのではなく、その時々に十分使えるものを目指す。これ位のサジ加減で行くのが結局自分にとっても周りにとってもいいサイクルなんだろうな、とか思ったり。

 さてと。んじゃちょいと己の目の前に視線を向けてみましょーかね・・・と。

 どうすんだよ80%って。言うは易し行うは難しですなぁ。いろいろと問題は転がっておりますよ。

 まず純粋にモノづくり=コーディングの側面から見てみましょーか。これからソースコードを書いていこうとしたとします。さて、んじゃこっから頭の中で想定している分量から、さらに2割削った上で動作させることはできるでしょーか?

 無理だという人もいるでしょうし、ライブラリやフレームワークを駆使して2割分のコード量減らすことで対処するという人もいるでしょう。でも私自身は「コードの量自体に意味はあるんか?」と考えちゃう。

 というのも至極当たり前のことなんでしょうけど、コーディングレベルでの仕事の達成率って、0か1しか無いんですよね。コンパイルが通るか通らないか。動くか動かないか。以上。区切りが非常に冷酷なんだよね。1万行書こうが100万行書こうが、動かない限り成果物は0。ただのゴミ。

 かといって80%位の品質、大体動くけど時折落ちる、そんなモノ納品して納得されるかといったらまずそれはありえない訳でしょ。良くて罵声、悪けりゃ刺されます。コーディングオンリーの考え方の中だと、この辺のジレンマはどうしても生じてしまいますな。

 ですので現実的な考え方としては、コードはできるだけ小さく細かく分割して、その単位で100%(=動く)にした上で積み重ねると。こんなん別にOOだけの話でもないよね?非OOでの構造化やメインフレーム世界でのライブラリなんかにもそのまま当てはまる、新旧問わず使える共通概念。

 じゃあその上で2割削ろうと考えた場合。やはり機能、もしくは要求といったものがカットする対象になるのが妥当であろう、となる訳で。でもその2割どうすんのよ、というところでまた葛藤が起こるんなんですな。

「開始時点で100%を要求されている。どれひとつとして削ることなぞ許されない」
「2割削ったところで2割追加要求されるだけ」
「2割どころか5割削ったって終わりゃあしねぇよボケ!」
「もう何もやらなくていいよ鬱だ氏のう」

 こらこら首を吊るな。シャレになってないから。

 まぁこの辺は言い出したらキリが無いです。そもそも100%の要求なんてモン存在しないと考えた方がこの世界の場合妥当なんだし。はじめからわかってるんだったらデスマーチなんぞ存在しないですもん。

 でもその一方で爆発する一方の作業量を抑制して「見切り」つけていかないことにはそれこそ命自体が危ない・・・という問題もありますしね。

 じゃあどうすんのよ?ということで私自身も答えに詰まってしまいましたので(笑)。ここは素直にXPのお言葉の力借りましょうか。

 XP的に言うなら「短期リリース(Small Releases)」がそのカギになるよーな気がします。考えてみたら、そもそも100%=ゴール、と考えること自体が無理な訳ですから。50%なら50%、5%なら5%でも1〜2イテレーションの間に出来たものはお客さんに見せてしまおうと。その上で「次どーすんべ?」を考えていきましょう、という戦略ですな。

 で、100%の視点で考えてしまうとどうしてもあれもこれもとなっちゃいますが。例えば週末までに30%を目標にしてたけど、ここは24%のままでとりあえず出してしまいましょーか?とする。なんかこれだと自分的にもお客さん的にも許容範囲のような気がしてきません?残り6%をやらない、と宣言する訳ではないですし。

 んでもってできあがったモノからフィードバックを得て、100%に近い最終ゴールを推測しつつ(100%にするとは言わないところがポイント)、また次のイテレーションを進めていく。その結果が35%(目標40%)だったとしてもそれはそれで見切る・・・。

 これを繰り返していくことで、とりあえずイテレーション毎での作業爆発を食い止められないもんかの?と考えるんですな。

 ここで否定的な人とかは「結局それ後回しにしてるだけじゃん」とツッコまれるかもしれませんけど。果たしてどうだろう?先程から私、やたらと「100%ではない」ということを強調してますよね?

 これは経験則でしか無いんですけど。モノ作り開始した当初の100%と、実際の100%が一致した記憶ってほとんど皆無に等しいんです。ゴルフで言えばパー4だと思ってたホールが実はパー7でした、なんてことしょっちゅうだし。その逆もある。腕折れる思いで必死になって遠くに飛ばしたのにグリーンは反対方面にありましたとか。グリーンやホール自体がプレイ最中にガンガン移動するゴルフ。そんなんやりたくねー(笑)。

 要はそれだけ100%の要求ってのを信用していないと。もちろんわてらにもわからないし、お客さん自身も何が欲しいのかまったくわかってないと。だから実物見て判断してみるしかないと。そんな状況の中での暗中模索が続いてる状態だと思いますよ。

 となれば。イテレーション毎に細かい部分の見切りを繰り返した後、最終的には80%位になった時点で、「あーこれだけできればもういいかなー」と変化すればしめたものじゃないです?その時点で後回しにしてたものは、結果的にやらなくてよかったもの、となる。この差はかなりデカいと思うんだけどな。

 以前だったらリリース前1週間貫徹してボロボロになった体で同情を乞いながら、「あーまだまだ80%なんだけどなー時間ないししゃーないか」と渋々納得してもらってたことを考えれば随分な変化じゃないですかね?と。無論希望的観測ではあるけどな。それでもちったぁ前向きに考えていかないといい加減持たねぇっつーの。

 ていうかね。まとめにしては極論になっちゃうかもしれないけど。誰もかれもみんな100%目指し過ぎ。人も会社もまとめて燃え尽きるぞ、そんなんじゃ。つーか今既にあちこちで火の手あがってんじゃねーかと。今火消さないでどーすんだよと。みんな休めー。サボれー。死んでしまうぞー。

 俺なんか間違ったこと言ってる?言ってますかそら失礼。あきらめんなよ>俺。


新着順INDEX 分類別INDEX
Top