そろそろ内製回帰について一言いっておくか。
最初に、誤解のないように宣言しておくが、自分は内製回帰厨である。
だがしかし、
受託モデルのSIerよりも価値を出せない内製部隊なんかイラネ。
システムを作ること自体が目的化している内製部隊なんかイラネ。
何のためにシステムを作るのか?
何のために内製部隊としてそこに存在しているのか?
作業の手戻りを気にして、利用者が要求仕様を固めないと動けないとか、使い勝手の悪い仕様を押し付けてくるとかするのは、内製外製問わずクソだと思うが、内製の方が乗り換えが効かない分タチが悪い。
仕様は「もらう(受動)」じゃない、「まとめる(能動)」だ。
仕様をもらってコードに落とすことしかできないなら、低賃金人海戦術なアジア各国との単価競争にさらされて当然だ。
内製エンジニアは受託のエンジニアに比べ、仕様をまとめる活動に際して有利な条件、環境が与えられている。
会社間のカベがないことで、いろいろな情報を拾いやすく、その気になればどこまでも食い込んでいける。
偽装派遣対策の法制度強化などで、外部からの常駐はやりにくくなっているんだから、ますます内製の方が有利になっている。
欲しい情報にアクセスできる。しかも、迅速に。
手戻り?
1人日の手戻り発生しても、それで改善された仕様が1ヶ月あたりの業務コストを1人日以上減らせれば、1ヶ月でペイできる。*1
その仕様の上で、何ヶ月、何年にわたって、業務をするコストの軽減に貢献するんだ。
業務がらくになり、業務のコストが下がり、利益に貢献すれば、結果として給与や賞与に跳ね返ってくるんだ。
ちょっとした労力の提供という投資にレバレッジがかかって、多くの人を幸せにするんだ。
そこに誇りを持つんだ。
それを、「言われたからやる」じゃなくて、「提案して、実行する」ことに価値があるんだ。
なんで内部で「作る」機能まで負うのか?それはござ先輩のアツいエントリを読み返せばいろいろなメリットが読み取れるだろうが、ビジネス面で要求されている「スピード」だけに限定して言えば、
・同じ会社であることで「契約」やら、「なんとか書」の山やらにかかる時間を省いたり*2、コミュニケーションにかかる時間を短縮したりできるから、対応スピードがあがる。
・システムを作りの部分までわかっている人が、その知識・経験に基づいた仕様、実装時をイメージしたうえでの仕様などの現実的な提案できるから。そして、先に実装イメージが固まっているから、実際の開発も早い。
外部とやり取りしながら、多くの時間と労力を割いて、それでもなかなか上手くいかないところをカバーできるメリットに期待しているから、システム開発業務それ自体は売り上げに貢献しないにも関わらず、固定費になる給料を出して内部に開発要員を雇うんだ。
開発にどっぷり使ってると、要求出してくる連中に対して、「こいつらシステムわかってねーで、適当なこといいやがって」と思う瞬間があることは否定しない。オレもそうだった。
だったら、わかってるヤツが動くんだ。その方がよほど早いんだ。よほどムダがないんだ。
要求部門が「システム屋が前提知識無しでも一から読んでコードが書けるほどに詳細化した仕様書」を作るんだったら、そんな会社には内製部隊なんて必要なんかないんだ。
その意識ができないんだったら、外部委託した方がマシだ。競争にさらされている受託の世界の人達の方が努力してる。
SIerの上流シフトはなかなかハードルは高いが、より上流からお客を捕まえにいかないと、食っていけない情勢になっているから。
そういう努力をしている人に頼んだほうがシアワセになれる。
最後に。
ここまで、開発者をdisる論調になってたけど、根本的にはこっちがすげえ重要だと思うんです。
内製部隊を抱えていながら、上記のような意識でもって内製部隊を評価し、ちゃんと実行している社員に高い評価を与えられない経営者はもっとクソだ。
内製なんかやめてしまったほうがいい。内製に夢なんか見ないほうがいい。