2012年4月16日月曜日

体調

芳しくない。先週の握力測定は、先月お仕事したので下がるのは分かっていたけれど、今日もまた下がった。先週は水曜から四日連続でお出かけでかなり疲れちゃったから、それもあると思うけれど。
まあゆっくりと休むしかない。しかし、四月ももう折り返しか…

2012年4月10日火曜日

大変です

ちなみに先月の一時復職は完全に火消しというか破滅プロジェクトの再生みたいな感じだったので紛う事無き超過労働でした。

2012年4月9日月曜日

人間性と働き方

前のポストはまあ個人的には比較的どうでもよくて、問題はこっちだと思う。
それ以上働く必要があるなら雇用体制に問題があるのであって、断じて働くべきでない。
これは確か浜地さんの受け売りだけれど、皆がたくさん働くと、皆がたくさん働くことになるので、皆たくさん働くべきではないというのは完全に正しいと思っている。実際に、この現象の具体的例には既に遭遇していて、あまりはっきり書くと色々よくないのだけれど、プロジェクトのリーダー相当の人間が努力でなんとかする系だと、非常にまずい。

ボクも上述の考えに従って、できるだけ働かないようにしたいし、何なら働くのなんて嫌いだし、労働に限らず、好きでないこと以外は全部したくないし(プログラミングのようなお金になることを好きにならなかったら、今頃どうなっていたのだろう)、兎に角ボクだって働きたくない(一つのセンテンスに働きたくないの洪水が!)

しかし現実問題として、プロジェクトがうまくいっていないのは自分のせいではない、誰が悪い、何が悪いといって、プロジェクトが破綻していくのをただ見ていた結果として、色々マズイ事が起きて、同僚が何らかの損害を受けるみたいなのは、ちょっと困る。
特に、ボクは優秀な人間が好きなので、優秀な同僚は好きなのですが、そういった人達が損害を被るみたいなのは絶対に嫌だし、じゃあまあ仕方ないしやるかね…ということになってしまう。
会社はボクが面倒がっている色々なことをやってくれるのでそこは好きだけど、愛社精神的なものは特にないし、何かあって潰れたりしても、自分だけが何か困るとかならいい…んだけれど、会社が潰れたら多分皆困るわけで、それはよくない…

真面目すぎるとか責任感が強すぎるとか、そういったことを何度も言われたけれど、ボクは別に真面目でも責任感が強いわけでもなくて、まあ上に書いたような人間なのです。それは真面目だよとか、それは責任感が強いんだよとかいうなら、それでもまあいいかなあ…

問題は、人間性というか、ボクに根付いたこのサムシングは、そう簡単に変えられるわけではないし、変わりたいとも思っていない。そうなると、ボクのような人間でも、健康に健全に働いていける環境を探したり作ったりするしかなくて…


しかし今は、正直そういうことは全部忘れて休んでいたい。ここに書いたようなことを、ボクはこの半年で、何度も何度も繰り返し考えてきたし、大体なんともならない、なるようにしかならないという結論になるし、もうそういうのはうんざりなんですよ。体がしんどいときは心も大体しんどいから、難しいことは考えないほうがいいと思うのでここで終わります。

プログラマの仕事

勉強会のあとの懇親会で説教というか忠告というかみたいなことを言われた。
プログラマはデバッグの時間をマジメに考えれバカってのは本当にマトモでかつ残念なくらい意識されてないアドバイスで、少なくとも君が8時間労働なら8時間コードを書くのは君の健康にとって間違いなく悪い。「オマエが限界のパフォーマンスでコードを書いた場合、その2倍の時間がデバッグに必要である」っていう (たしか ken thompson の) 認識は悲しいくらい正しくて、多くともオマエがコードを書ける時間ってのは3時間程度しか確保できないんだという覚悟が必要だと思う。
これは一般論として大変納得の行く話だし(多くのプログラマは、作業の見積もりに対して楽観的であるというのはよく知られた話だ)、なんならデバッグに限らず、テストであるとかリリースワークであるとかドキュメンテーションであるとかリリース後の運用のためのサポートであるとか、その他諸々についても、プログラマも時には真面目に考えなければならない。小さいチームの場合には特にそう。浜地さんは寝てたので聞いていなかったと思うけれど、プロジェクトのゴールを常に意識して仕事をするというのは大事なことだと思っていて、それなりに忘れないようにもしている、という話をしたりもした。しかしドキュメントは大体誰かに任せっちゃってることが多い気がするな…運用は知らん(…)。
ボクがただ闇雲にコード書いてればいいと思ってる愚かなプログラマ、みたいに認識されていたのだとしたら、ちょっぴり心外だ。

ところでボクの仕事というのは、基本的には自明なコードを黙々とただひたすら書くみたいな物で、有体にいうとブラウザの開発やそのビルド環境を整備するような仕事に比べて、遥かに遥かにタンポポプッティングワークなわけです。
更にボクの仕事は所謂受託開発であり、まあそのなんだ、色々めんどくさいな、略。
そのような状況においては、デバッグにかかる時間なんかより、仕様変更や仕様、機能の追加により発生する作業の時間のほうが、数字としてはずっと大きい。ので、そういったものに対して敏感に、慎重にならないといけない。

そんなわけで現実の話として、単に運がよかっただけの結果論かもしれないけれど、デバッグに割いてきた時間に比べれば、仕様のブラッシュアップ、というよりは、お客さんとのやり取り(とそのための作業)に割いてきた時間のほうがずっと多い。そういったことも考えながら仕事をしないといけない。

例えば仕様に些細な穴があった場合、これを報告し、仕様の修正、追記を待ち、実装に取り掛かるみたいな一連の流れには、大変時間がかかる。あまり大きな声では言えないバッドノウハウとして、そういう時は内外関わらず誰にも報告せずに、最も正しそうな仕様を自分で判断して実装して、あとは何も知りませんよというような態度を取る、というのがある。
ボクの仕事っていうのは、これまでのところは、残念ながら多くが時にそういうことを必要とされるようなものだった、という話です。

というわけでまとめると、ご忠告は大変ありがたく受け止めたいと思いますが、今のところボクは多分いわれた事以上のことを考えてきていると思う…

2012年4月5日木曜日

デスマーチ

タイムラインでこんなツイートを見かけた。
takano32: 話してるひとがあまりうまくないような気がするけど、要約すると「デスマーチをいかにコンポーネント化した開発で乗り切るか」ということらしい #gsgl #mbga #monmon http://atnd.org/events/26455
デスマーチというと、技術的な解決は不可能な状態を指すと思っていたので、ウィキペディアさんに聞いてみたところ、
その発生要因はプロジェクトに対するマネジメント(プロジェクトマネジメント)が不適切であることとされている。
ということらしい。マネジメントの問題を技術的に解決することはまあ無理だろう。ツイートの趣旨は、再利用可能なコードを蓄積することで、短納期な仕事に対応するということだと思う。ソーシャルゲーム作ってる会社の話のようだから、多分あってるはず。

デスマーチといわれるような状態にプロジェクトが陥った場合、その時点でプロジェクトはほとんど失敗だと思う。大体の場合問題は解決されずに、様々なものがおかしくなる。問題が政治的に解決されたり、個人の努力により解決されたりすることはあるけれど、それは本来のゴールではなかったり、健全でなかったりする。
やらないといけないのは、デスマーチをなんとかすることではなく、それを未然に防ぐことで…そんなことは様々な本やエントリで述べられまくっていることだろうから…どうでもいい。

プロジェクトマネジメントなんてよく分からないけれど、プログラマとしていくつかプロジェクトに関わってきた経験から思うのは、コントロールできる範囲が狭ければ狭いほど、プロジェクトを成功させるのは難しくなるなあということ。コントロールできないどころか、そもそも不可視な場合は、より悪い。有体にいうと、手の届かないリスクと見えないリスクはヤバイ。
これは別に目新しい知見ではないし、そもそも自明なことなんだけれど、今のボクの立場的に、一番重要なことだと感じている。
社会は理不尽なので、理不尽にコントロールできる範囲や、可視な範囲が狭いことは、往々にある。そういった場合にプログラマ(というかボク)ができることは殆ど無い、というか無かった。大体そういう不健全な状況の時はいつも時間がないので、兎に角仕事を速く片付けることが最優先になってしまった。

「あの人(マネージャー相当)は最後にはなんとか自分で引き取って仕事を終わらせる人だから」みたいなことを何度か言われたことがある。言われる度、そんなことは自慢にもなんにもならないじゃないか、どうせろくでもない品質なんだろう、と思っていたけれど、立場は違うが結局ボクだって似たようなものだ。毎回兎に角努力だ、みたいなことになったし、品質だって客観的にみていいとは言い難い仕事が続いた(これに関しては色々言いたいけど略)。なんとも惨めな気分になる。

結局プロジェクトをなんとかしたいなら、デスマーチに巻き込まれたくないなら、それだけの力のある立場を手に入れるしかない、しかしその結果責任に付きまとわれるわけだけれど、それは幸せなのだろうか、そもそもボクはプログラムが書けるから仕事しているのであって、書けないのなら仕事しないし…


そんなことをお風呂につかりながらぼーっと考えていたんだけれど、半分以上が湯気のようにふわっとどこかに消えてしまった。なんか愚痴だけが抽出されるような形になった。最初はポジティブな感じだったのに…特に結論はない。時間がない問題を解決するための時間がない、はテスタビリティのためにリファクタリングしたいけどテストがない、に似てるなあ…と思った。
まあどうせしばらくは働きたくても働けないわけだし、どうでもいいなあ。なんだか疲れた…というかもとから疲れてた…

2012年4月3日火曜日

出社

退社が流行ってたので出社した。まあしばらくは出社することはないはず。

しかし、仕事終わってないのに途中で抜けるのは、精神衛生上非常によくないなあと思う。心配になる。なんともできないけど…

しかし今日は疲れたな…