内製開発を考えているSI技術者が知っておくべき内製アンチパターン

数年前から、ゼネコン的なSIerの業態に構造的な限界を感じ社内のエンジニアによる自社開発(内製)を見直す動きが見られます。自分の場合も少し前にSI企業を辞めて今は内製をしていますし、知り合いの技術者にも何人かそのような転職をした人がいます。しかし、彼らの話を聞くと良いことばかりではないようです。
そんなわけで、今回は内製に潜むアンチパターンをまとめてみました。なお、ここでは一般向けプロダクト開発ではなく、社内向け業務システムの開発を想定しています。
 
■そこは異業種ですよ
内製ということは、ほとんどの場合その会社はシステム開発会社ではなく、異業種に転職することになります。そのため想像以上に開発の常識が通じないことにとまどう技術者も多いようです。SIのとき、システム開発に理解がないゆえに無茶を言う顧客にあたった経験があるかと思いますが、自分以外の社員が全員そのような人であるおそれもあります。
 
■契約なき開発の泥沼
自社のシステムを社内で開発するということは契約がないということです。これはうまく機能すると建前にこだわらず柔軟に開発ができるというメリットがありますが、社内の意思決定者に際限なく振り回されるおそれもあります。「契約範囲外です」といった断り方ができず、次回から契約をお断りするような逃げ場もありません。
 
システム開発の常識が通じない
スケジュールの意識は業種によって意外なほど異なります。営業体質の企業文化の場合、ひとりのエンジニアが複数のコーディングを同時にこなせないということがわかりません。ガントチャートを提示してもリリース日にしか興味がなく、割り込みタスクに対応するとスケジュール全体が後ろにずれるということを理解しません。Excelマクロを書いたことがある程度の、自分では開発がわかっているつもりの役員主導の開発など想像するだけで恐ろしいですね。
 
■割り込みの作業依頼が多い
中小規模の会社の場合、社内業務システム開発だけやっていれば良いということはなく、昔誰かが作った謎のシステムのトラブル対応に呼ばれたりします。おじさん社員がうっかり開いたウイルスメールの対処や、自称PCに詳しい若手社員がカスタマイズしすぎて不調になったPCの尻拭いといった、情シス的な社内サポート、その他PCやネットワークに関するもろもろ全ての担当になることが多いと思います。さほど難しい作業はないとはいえ、スケジュールに従った開発と両立するのはストレスがたまります。そしてやっと社内業務システムをリリースしたと思ったら、「一番詳しい君がやってよ」と、なぜか事務処理のオペレーターになってしまう残念な例もあります。
 
■技術力を評価されない
SI企業の場合、社員の技術力はそのまま自社の競争力となります。そのためできるだけ技術力を公正に評価し、また常に社員のスキルアップを図るようなバイアスがかかります。内製の場合、会社の興味の対象は技術者のスキルにはなく、できあがるシステムであり、それにより生み出される利益にあるので、社内からの評価を上げようと思ったらこれまで以上にアピール方法を工夫しなければなりません。
 
以上、極端に悪い例ばかりあげてみましたがどうでしょうか。
このようなアンチパターンに陥らないためには、社内政治に強く技術に明るいCTOがいる会社を探すか、あるいは自分自身が経営者に信頼されて尊重されるCTOとなるかだと思います。
 
そんなわけで環境は慎重に選ぶ必要がありますが、自分の頭で考え工夫して作った業務システムが自社の業績を左右して結果的に自分の待遇に影響するという開発は、やりがいがありモチベーションが上がって楽しいですよ。