新しいツールやプロセスがプロジェクトを補完するんじゃないよね、ツールやプロセス補強されたエンジニアがプロジェクトを促進するんだよね


もうタイトルで、言いたいことは言ってしまったような気がしなくもないですがそれはさておき、今日は海の日ですが全く海と縁のない3連休になりそうなので車でも洗おうかと思ったけれど、そうだ、ワイフが用事で使っているんだった。ということは、戻ってきてからだな。


車の洗車といえばSUVを乗っていたときがあって、背の高いSUVだったので洗車をするのが一苦労で普通の大人でも踏み台が無いと屋根の中央まで手が届きにくくて苦労するほどだったんだけど、ワタシは踏み台を出すのも面倒でタイヤに乗って腕を目一杯伸ばして洗車していたものです。そのうち面倒であることを正当化するようにSUVだから汚れていた方が「それっぽい」と言いふらすようになって洗車のインタバルを半年に1回くらいにしていた時期があったのがいけないのか、そのあとセダンやツーリングワゴンの車になっても半年もではないけれど、他の人の車に比べたら自然の模様が良く施されている。


そう言えば20代に車に費やしていた時間もアクセサリーに使っていた費用もほとんど掛けなくなったのは優先順位が下がったというか、ワタシには十全な車を買って乗っているから「これ以上何もしなくていいや。」なんて思っているからだろうなぁ。そう考えると、道具、ツールは安かろう、悪かろうより、良いものを選んだ方が良いと思うんだよね。大事にするし、金額によってはそのツールを使いこなさないと、と自分にプレッシャーを与えられるから。


ツールやプロセスがプロジェクトを回すんじゃないよ
当たり前だけど、プロジェクトを回すのはプロジェクトチームが回すんだよね。ツールやプロセスはチームを、エンジニアを代替したり、助けたりする手立てなんだよね。あくまでもプロジェクトを推進する原動力はエンジニアとそのチーム。一人ひとりのエンジニアがプロジェクトに必要なロールを担うために、プロジェクトのdeliverableに必要なスキルセットを持っているエンジニアを揃えるか、プロジェクトの中で育成するコストを積んで時間を確保して、チーミングして初めてプロジェクトを遂行できる状態になるんだよね。


アジャイルgithub、Docker、品質管理、リーンスタートアップ、様々なツールやプロセスがあるけれど、チーミングを忘れているエンジニアやマネージャがそうしたツールやプロセスだけを導入すればプロジェクトが上手くいくようなきたいを持っている姿勢が見え隠れすると「(なんてお花畑な……。)」って思ってしまうんだ。


だってね、そうした人たちは幾らいいものを持ってきても、自分でそうしたツールやプロセスを自分のプロジェクトに適用できるようにテーラリング出来ないんだから。


プロジェクトの、いや、別に事務処理の様なルーチンワークでもいいけれど、自分たちのプロジェクトの業務=プロセスはいいところも上手くいっていないところも良く知っていないと、そもそもツールやプロセスを導入しようとか、置き換えようとか変化をさせようと思ったりしないです。ただ、上手くいっていない事象に対して文句を言うばかり。


だから、それを耳にしたマネージャあたりが新しいツールやプロセスを持ってきたとしてもチームのエンジニアが自分たちのチームのツールやプロセスの良し悪しを知らない、理解していないのだからどこにどう適用していいのかわかるわけがない。だから、標準化をしようとすると途端に反対するのは彼ら。何せ、現状を変化させることの意思はないけど、不満は持っている。だから、新しい因子が混入しようとするものなら現状肯定が不満を燃料に新しいツールやプロセスに向かうんだ。


ツールやプロセスで補強されたエンジニアが意識的にプロジェクトを促す
プロジェクトをちゃんとやりたければ、色々と症状で処方はあるけれど、まずはチームに必要なスキルセットを持つエンジニアをハッキリと明示的にすることが大事なことなのです。それがエンジニアに対するスキルセットのベースライン。それを基準に実際のメンバのスキルエリアとスキルレベルを把握してプロットして較差を知る。その較差をツールやプロセスで補完するのか、コストや時間を増し増しにしてスキルのレベルアップを含めてメンバを育成することまでプロジェクトの目標とするか、それを決めるのです。


こうしたプロジェクトで必要なスキルセットをエンジニアが持って実力を発揮してdeliverableを得らればいいけど、スキルが足らないならツールやプロセスで補完しつつチームに必要なスキルセットを形作る。


ただ、実際に実行できるかどうかは、ツールやプロセスで補完したエンジニアがチームとして成り立つかを意思疎通を交わして共通認識を持てるかどうかなんだと思うんです。決して、ツールやプロセスがプロジェクトやエンジニアを助けてくれないし、チームの中でエンジニア同士が意思疎通しただけではプロジェクトに必要なスキルセットを補てんしてはくれないのだから。