冥冥乃志

ソフトウェア開発会社でチームマネージャをしているエンジニアの雑記。アウトプットは少なめです。

follow us in feedly

「誰でもできるように」の「誰でも」はどんな人か合意できてますか?

一言で乱暴にまとめるなら「なんで素人をチームメンバーにしなきゃいけないんだ」という話。

「誰でもできるように仕事を文書化しておいてよ」ってなことを言われることがあります。だいたい現場で開発をしたことがない人ですね。案件をスケールさせたい、人月を動かして売上をもっと取りたい、そんなところが根本の動機かと思います。営業の評価としてそこが重要なのはわかりますし、人を増やしやすい体制というのは、まあメリットはあるので仕事において形式知化をするのは賛成なのですが、この「誰でも」と言い出す人には要注意です。

その「誰でも」のレベルはどんな人ですか?開発とそのレベルの認識がずれてないですか?

何故かこの「誰でも」を口に出す人たちは、日を追うごとにそのレベルを下げる傾向があります。果ては専門知識がいらないように、というレベルまで。。。開発って専門職のはずなんですが。。。

現場としてはそういう思いもあって、安易に外注で出したり人を入れることに反対をする訳ですが、ただ反対するだけでは建設的な話にならないので、自分の中でもう少し論点を整理しておこう、というのが今回のエントリの趣旨です。その点についての理解が進めば、仕事(案件)やそれに伴う人の増やし方も開発外の人と協調して戦略を立てていけると思っています。

案件に入るために必要な知識

ブルックスの法則を出すまでもなく、増員というのはコストがかかります。チームとして使える時間は増えますが、メンバーの一人としてパフォーマンスを出してもらうためには教育コストがかかります。新メンバーだけでなく、既存のメンバーにも教える側としてのコストがかかります。

当然、教育コストというのは、教えることが少なければ少ないほど低くなります。どこかでハードルを設定しないと、際限なく教育コストが広がっていきます。「誰でも」の下限値って最終的には「人間であれば」だと思うんですが、義務教育レベルから教育コストに含めますか?もう少しハードルを上げると「義務教育は修了している」になってきますが、専門職として職務を遂行するのに必要なことまで教育しますか?コストがかかりすぎて現実的ではないです。

また、チームがやっている仕事のすべてが文書化に向いているわけではありませんし、文書化した所で一緒に働かないと身に付かないこと(文化、行動原理、目的)もあります。

この狭間の部分に文書化をしてコスト面でのメリットが出てくる知識がありそうです。

「誰でも」は無理だとはっきりと主張しよう

で、この辺りを整理してたら、開発チームとしてやるべきことが少し見えてきた訳です。

まず、案件に入れる人のターゲットをちゃんと決めて、主張しよう。これができる人としか一緒に仕事できない、とちゃんと言おう。開発の責任としてそれをジャッジしよう。

普段からできる人とのコネクションを持とう。機会を拾い集めてくれている営業に対して、機会損失を少なくするのは開発の責任だと認識しよう。ただし、無理なものは無理と言うこと。

チームの中では、教育コストとして持つ範囲を決めよう。人を増やすことは継続性を持たないとコストに見合わないことを意識しよう。

そこまでやった上で、開発ではない人にそれを理解してもらおう。それをなるべく論理的に伝えよう。

思ったよりも課題がでかいな。。。