2012年4月5日木曜日

デスマーチ

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

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

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

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

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


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

0 件のコメント:

コメントを投稿