計画を立てないという負債

f:id:fumisan:20180703074652p:plain

何事もことを成すには『計画づくりが大事だよ』ということについて反論する人はいないはずだ。殊更、エンジニアがプロジェクトを立ち上げ、プロダクションシステムなり、Webサービスなり、APIなりをリリースするなら当然である。

ところが実際はどうか。

ひどい話になると計画をろくすっぽ立てなかったり、それを計画と呼べるのかという程度の自称計画がまかり通っているのが現状ではないか。

だいたいそういった計画とは呼びたくもない計画を作っているエンジニアは計画を作らない理由ばかりを並べる。ひどいエンジニアになると

アジャイル開発なんですよ」

などとアジャイルを知っているエンジニアからマサカリが雨あられの様に投げ込まれても文句を言えない様なことをいう始末だ。

計画を作らないことは負債を作り込むということを理解すべきだ。

計画を作るということは、ガントチャートWBSを作るという様な、見た目の話ではない。

計画を立てるとということは、計画を実行するまでに次の3点をしなければならない。

  1. 情報収集
  2. 分析
  3. 準備

情報収集は、自らのことに関すること、他のことに関することについてデータを集めることを言う。分析は、それらを定量的な情報として分解する。準備は、計画として組み合わせる。ここまで出来て初めて実行に移せる。もう少し、噛み砕くと次の5項目があげられる。

  1. 目的(ゴール)を明確にすること
  2. チームの実力(as isのスキルセット)を客観的に把握すること
  3. 影響を与える外部の因子(ステークホルダ)を明らかにすること
  4. 客観的で定量的な情報(諸元)を収集すること
  5. to beのスキルセットへ教育すること

逆に言えば、計画を作らないということは、次の様に言い換えることができる。

  1. 目的がモヤっとしている
  2. 誰が何をできるか誰も知らない
  3. 自チームの独りよがりで考える
  4. こうなるだろうと勝手に期待だけする
  5. チームが頑張ってくれる

 一番いけないことは、計画を作る立場のエンジニアが自分ではない別の誰かがいい様にしてくれると言う根拠のない期待を抱くことだ。

計画を立てない負債の根源の全てはこの考えが根っこにある。

人を使い、自分で足を運び、情報を収集し、その情報の確からしさを確かめなければならない。

なぜなら、計画は仮説でしかないからだ。

計画が仮説だと認識できれば、計画は1つだけではありえないことに気づく。情報の分析で分解するのは組み合わせ、ケースを知るためでもある。

骨格となる軸は、様々なパラメータを動かしても計画の本質は変わることがない。ただ、状況の変化で対応を変えられる柔軟性を持ち合わせられる。

こうしたことを考え、チームが実行できる様に準備をするのが計画を作ると言う行為なのであれば、それをやらないのは最初から、自らハンディキャップを負うと宣言する様なものだ。