ある程度順調に仕事ができていると、ひょっとしてこのままずっといい感じに毎日過ごせるのではと勘違いすることがある。ただでさえIT業界は人材不足で転職が多めで、ビジネススピードが上がってアジャイル開発しているのに、そんな訳はないだろうという話。
新しいチームが新規の重要プロダクトを担当していて、優秀な人が集まった強いチームだった。ただ、その中でもひときわ優秀なリーダーがいて、僕もその人を非常に尊敬している。ずば抜けているが故にその人に依存している部分があり、それがチームの安定性に寄与してる。
先日かなり些細なことがきっかけで議論になり、論点としてコストを掛けて現状を良くするように更に頑張るか、今までいい感じだったから・・・というちょっとネガティブなニュアンスの方にするか?の意見に分かれた。(そこまで対立してるのでもなく、本当にちょっとした話し合いレベル)。
現状を良くするためにコストを掛けるということで結論は出たのだが、僕が余計な口出しをたために若い人が一部疑問に思い質問されたので、色々偉そうに答えるだけのMTGを開いた。そのへんを書き留めておく。
今は忙しい、だから時間がない。その負債を将来に先送りするのはしょうがない
というのは違うというのが主題。要はテストをちゃんとしようとかドキュメントをちゃんと書こうとかそういう系。
これは一見聞くと理屈は正しいけど、開発メンバーレベルで意思決定するには主観が含まれすぎていると思うし、多くの場面では改善できそう。忙しいのはわかる。ビジネス側の要求に応えるために全力を尽くしていて、その結果メンテナンスや運用を軽視するような状況になっている(ちなみに、運用はインフラとかの話ではなく、システム保守のニュアンスに近い)。
一方で、我々には品質も守って将来も継続して利益を生み出せるプロジェクトを運営する責任があり、何も言わずにそこを放棄するのは違う。多分、そのトレードオフをユーザに伝えていないから納期が短くなる。ちゃんと伝えれば、品質とどっちを取るか?は判断してもらえるはず。この辺は達人プログラマーでも同じことが書いてあったので意識している。
ただ、運用に向けていい感じのことを色々やっていこう、というのは抽象的すぎて伝わりにくい。特に、0→1フェーズを中心に活動する人はその後の運用のイメージを知らないことも多く、若かったりすると経験できるフェーズが限られるのでそれもしょうがない。
なので最近は半年後にチームメンバー総入れ替えする
ということを想定すべきだという話をするようにしている。実際、半年あればチームがガラッと変わることも多く、現実的。主要メンバーがやめてしまうことを想像すれば、ドキュメントを書いたり自動化を進めるモチベーションが上がりやすい。
結局ただ理想と正論を言うだけだと伝わらず、相手が想像できるような状況に例えて言ったほうが良さそうだと思った。(※実際に伝わったかはわからない。老害うぜぇと思われた可能性もある)
なんか他にも色々言った気がするんだけど、今運用を意識して頑張って、皆が短い時間で高い給料をもらえるようなプロジェクトを運営したい、という話が中心だったはず。