以前、アップしましたが、最近はじめてのデスマーチを経験しました。
「ほんっっっっとクソなんだけど!!」
と、心底思っているのですが、
「そもそもなんでデスマーチになったのか?」
を考えてみました。
前任者の退社
まず直結した一番のインパクトは、「前任者がすでに退社している」ということでした。
なんかよく聞くパターンな気がしますが……
それにより引き起ったのが、メンバーの知識力不足。
引継って大事だなって思いましけど、正直難しいですよね。
自分にとって当たり前になってる事を、知らない人に短期間でまとめて説明するってかなりのリスクです。
「引継」ってよりは、日ごろからの周囲への展開とか、資料のまとめとかの方が大事なのではないかと感じました。
メモ書き付きの資料とか、補足資料とかもね。
こういうのをナレッジベース的なものやWikiなどで、統括・管理していれば、そもそもこういう問題も出なかったのかもしれませんね……
仕様調整不足
これも結構あるあるなんですが、やはり大きいです。
例えば
「出てきた仕様が実は実現不能」
とか
「既存機能との競合で、正常に動いてくれない」
とか
それのせいで、やったことがムダになったり、ムリヤリ実現できるようにしたりなどなど……
ムダになるのは、時間を大幅に消費するし、
ムリヤリ実現は、ソースが複雑怪奇になっていきます。
この後に続くのは地獄です。
見積の甘さ
「こうしてください」
という要望に対して
「ここがこうだから、まぁ大したことないだろ」
と、見積を出したものの……
実はその箇所が色々な所に影響したり、仕様調整不足がここで実は不確実な状態で進んでいて……
なんてことになると、時間が足りなくなって、スケジュールがどんどん後ろになっていく……
ならまだよいのですが、ここで完了日がリスケ*1できない!となると、待っているのは「その日までに間に合わせろ」という地獄です。
いにしえからの付けたしアプリの代償
以前から使っているアプリで、「同じものを多少カスタムすれば実現可能」なんてとき……
最初はいいかもしれませんが、これが通用するのは本当に最初の方だけなんだろうなと思います。
仕様調整不足で「ソースが複雑怪奇になる」というリスクを挙げましたが、これも複雑怪奇になる要因の1つです。
付け足ししていったソースには、
- 今のアプリでは不要な処理が入ったまま
- 処理の最適化を行なっていない
- その場凌ぎなソースを付け足しがち
などのことが起きます。
「既に動いているものに何かを足して行く 」というのは、メリットが大きいかもしれません。
しかし同時にキレイに使わないと、どんどんカオス化していきます。
ご利用は計画的に……
できることなら、間違っても「コピペ量産」とか、なるべくしないようにしましょうね……
じゃあどうしたらいいの?
というと、簡単な回答は
「これらと逆のことをすること」
です。
問題点の解決策で一番端的なのは、やはり問題点と逆のことをすることだと思います。
ただ、「ソースの付け足し」は「するな」とは思いません。
毎回、どこかのタイミングで、ソースをクリーンアップする時間を入れなければならないと思います。
あとがき
未だデスマーチに巻き込まれている真っ最中ですが……
きっともうすぐ一旦は落ち着く「はず」と、思っていますが……
厳しい戦いですね……
体力と精神力がそろそろ限界にきている……
*1:スケジュール変更すること