3つのヤマ
本題行く前に、ちょっとひとこと書かせてくださいな。本題とは関係ないんでフォントもちょこっと小さめに(笑)。
最近(というか今年に入った辺りから)、XPを本当に実践して、日々の感想とかを日記やblogに上げてくれる人ってのがそこそこに増えてきました。
こうゆうレポートって本当に実体験しないと絶対に書けないものですからすっごく参考になるのと同時に、数が増えるに従って焦りも感じ始めてます。
まぁ私事になっちゃうんですけど、今所属してる会社ってチームという概念があって無いようなもんでして。ほぼ単独プレー&個人力量に依存しちゃってるよーな状態で、かつそれを長所と思ってる節がある(これがいいか悪いかは窓の外に放り投げておく)。
ですので単独プレーでできる範囲内でしたら己のポテンシャル出せることはある程度確信も計算もできるんですけど、チームとして動いて成果を出す、という方向では正直期待も経験習得もままならないなぁというのを感じてるんですよね。
そんな中、いつまでも「ひとりXPごっこ」に終始してても限界あるよなぁ、てのがあって(これはこれでノウハウにはなってると思ってるし、どこかのタイミングでまとめたいんだけどね)。
去年の無職時には「XPやってるところ」で探して結局それは叶わなかった訳なんですが、来年か再来年あたりをメドにして、もう一度探してみるのもいいのかもなぁ、なんてことを考えております。決めた訳じゃないけどね。でも緩やかに決断は迫られてるのかもしれないなぁと思う今日この頃です。
なんだかんだ言って先短いんだよね。年齢的なものもあるし、家庭の事情とかもあるし。ムチャができるうちにムチャをした方がいいのかしらん。なんてことも、最近は考えておりますな。はい。
ま、戯言はここまで。んじゃちょっと今回は久々にXPありきの中で話させて頂きましょうか。ていうかもともとここはXPの話するために隔離するハズだったんだが。いつからズレちゃったんだろ(笑)。
最適ペース(Sustainable Pace)、というプラクティスがXPには存在します。これは元々週40時間労働(40-hour work)と呼ばれていたものが「より現実的なものにしよう」ということで改訂されて最適ペースになった、ってのは有名な話。
で、実は私、何回か話してますけど、この改訂には反対の立場なんですよね。「週40時間労働」を使い続けることを支持してます。
というのも。根本的なお話として、XPどうこう言う以前に週40時間すら守れないような労働環境じゃこの先産業全体が崩壊してくのは火を見るより明らかだってこと。賭けてもいいよ。このままじゃ絶対潰れますから。今の状況って、組織的にも人的にも「どれだけ使い潰せるか」だけを考えてるだけだとしか思えないもん。
その上で、馬鹿共に喧嘩売るんだったら「週40時間労働」ってこれ以上無いと言ってもいい位の売り言葉なんですよね。衝撃的と言ってもいい。
これが「最適ペース」なんてヌルヌルの言葉じゃ屁のつっぱりにもなりゃしねぇ。ヤツラの頭の中では「最適時間=最大労働時間」ですから。何日徹夜させられるか、何時間残業させられるかこそがヤツらにとっての最適ペースですから。ここから根本的に破壊しないことにゃ未来なんて無いですぜ、てのがまずひとつ。
次に。XPの中の範囲内であっても「週40時間」という言葉を残すことに意義はあるな、とも思ってまして。
特にペアプロを初めてやった方が必ず漏らす感想。
「きつい。疲れる。」
そりゃそーですわな、と思いますもん。私自身は上でも挙げたようにペアプロ自体は未経験ですが、それでも想像するに難くないです。
ていうか単独でプログラミングしてる時ですら、8時間集中して書き続けるなんてそうそうできるもんじゃありません。私の場合せいぜい2時間が限界ですし。5時間書き続けられるともなるとうまくフローに入れたとしても年に1回あるか無いか。その程度です。
そこにさらにペアという事実上の監視役がいる訳ですから。この状況でプログラミング連日8時間以上続けられる人間なんていないですよ。いたら頭おかしい。そこまで言い切るか俺。
という訳で、あくまで本サイトでは「最適ペース」は使わず「週40時間労働」を貫き通したい所存でございまする。おわり。終わるな。
んじゃまぁ週40ってのはわかったと。そんじゃそれ達成させるためにどないすりゃいいんじゃい、日々どうやって動けばいいんじゃい、ということになると思うんですが。
言葉でいちいち説明すんのもめんどくさいので、いっそのこと勝手にタイムテーブルこしらえてみることにします。まずは集中力の問題から1タスク(=1回のペアプロに費やす時間と考えておきましょうか)の時間を2時間に設定しますと。その上で勿論週40時間も死守しますと。
んーと、ざっくりと組んでみました。こんな感じになるのかの。以下とりあえず勤務時間を最も一般的な09:00〜18:00(休憩1時間)と想定。
9:00〜9:15 朝の準備
基本的には本日の準備期間。後は夜来たメールにざっと目を通したり。
9:15〜9:25 スタンドアップミーティング
10分厳守。今日やることの確認、懸案事項の確認のみを行う。
09:30〜11:30 ステージ1
タスク消化タイム〜。しゃんしゃかしゃんしゃか(鈴の音)。がしがし組んでいきましょ〜。
11:30〜12:00 クールダウン
タスク終了のソースまとめたり雑務こなしたり。
12:00〜13:00 昼休憩&ランチ
食うなり寝るなり好きに過ごせ。
13:00〜13:15 昼の準備
ここも雑務とか次タスク準備として。食った後って眠くなるし(笑)。
13:15〜15:15 ステージ2
気ぃ入れなおしてハッスルハッスル(やめぇ)。
15:15〜15:45 クールダウン
ここでまたブレイク。そろそろ脳味噌が悲鳴上げはじめるはずなのでブレイク入れないと死にます。
15:45〜17:45 ステージ3
本日最後のひとふんばり〜お母ちゃんのためならえんーやこーら(をい)。
17:45〜18:00 クールダウン兼本日のまとめ
夜間走らせるテストの準備したりしつつギアを元に戻して。
18:00 終業
明日のために帰りましょう〜おつかれさま〜。
と。こんな感じになるのかなぁ。もうちょっとこの日程表、小ネタに走った方が良かったのかしらん。
えっと、まず基本的な考え方として就労8時間のうち、6時間をメインのペアプロ時間にあてがえるように配置してみました。要は1日3コマってことね。多分これ実際にやったら17:30の時点でへろんへろんのぐでんぐでんになってるはず。
間にごちゃごちゃ入れたのは、ローギアからトップギア、トップギアからローギアにいきなり入れるのを防ぐため。あと雑務的な用事を極力ステージから排除するの意味合いもあり。
まぁもちろんこれは理想論でしか無いんだけど、もしこれが実践できるとすると、こんなグラフができあがると思うんですよ。
相変わらずフリーハンドなんで汚いのは勘弁。
横軸が一日の時間経過、縦軸が作業者のテンション、というか作業効率の高さだと思ってください。
で、ヤマとなる3ステージをできるだけハイテンションでこなせるように調節していく&3ステージから邪魔を排除していくと。おそらくこれが人間が一日にこなせるパワーとしての限界値に近いと思うんですよね。
それでいて、もしも一日の平均的な力として、これだけのポテンシャルを出せた場合。 週毎月毎に積み重ねていくととんでもねーことになりゃしませんかえ?それこそ徹夜残業 なんかよりもよっぽど効率的に思えてくるんですが。残業代だって浮くし。
こーゆーのを考えていくことが「最適速度を考える」つーことになるんじゃないですかね?と私は問い正したいのでありますが。誰にだ。
まぁひょっとしたら中には「え?ただでさえ8時間なのに内6時間しか作らないの?それってサボリ?」と真顔で聞いてくるよーな人もいるのかもしれませんが。それこそグラフが常にMAX振り切ってこそ理想だとかいけしゃーしゃーと言ってくると思うのですが。「ゆとりの法則」200回読んでから首吊って死んでください。絶対できませんので。ていうかこうゆう上司いたら射殺しましょう。無罪になりますので(なりません)。
でも実際こんなもんだと思うぜー。特に開発サイドにしてみたら、「1日6時間も集中できる」ってのがいかに有り難いことか、てのは身に染みてわかってるはずなんだけどね。
あくまで理論値ではなく現実値としてのスピードを目指す。仕事場を屍累々の溜まり場にしないためにも。こうゆうことが必要なんじゃねーの?と思いますです。はい。
<追記:04/08/06>
「2時間*3は長ぇよボケ」というツッコミを頂きましたのでちょいと補足(ボケとまでは言ってません)。
2時間をどう使うかに関しては作業者各々で調整すればいいんですよ。 それこそ30分が最適という人もいるでしょうし。実際にやることはペアプロだけじゃ ありませんしね。タスク毎の結合だってあるしリファクタリングだってある。 問題発生した時には話し合いもしなきゃならんだろーし。
むしろこのタイムテーブルってのは、プロジェの中に強制するというよりは、 外に対して宣言する意味合いの方が強いかもしれません、てのを今になって思いました。 その場の気分でひたすら電話かけてくるバカに「この6時間はジャマすんじゃねぇぞボケ」てな具合にね (俺がマネージャーだったらこの6時間は電話線抜く(笑))。
しまったな、本文書いてる時に思いつかなかったよ(笑)。