SIerはいまさら内製化できるのか?

若い時にプログラムを書こう、必ず人生の豊かさにつながる | 日経 xTECH(クロステック)より

開発者はどこへ消えた

ずっと気になっていたのだが、そもそもNTTデータの社員は開発をしているのか。

 非常に危機感を持っていて、現状は何しろ内製率が低い。正直にお話すると全部合わせても3割とか3割5分ぐらい。残りは協力会社の方々に手伝ってもらっている。するとどういうことになるか。自分でコーディングしたり、ドキュメントを書いたりするより、コーディングする人たちを管理する仕事になってしまう。

いっぽう増田では、
日本のメーカー終了間近?

もう日本のメーカーのほとんどに、担当者は居ない。
製品のメイン開発者のほとんどが、社内に居ないのだ。

      • -

俺はプログラマー
長年、とある組み込みマシンのメインプログラマーだった。詳細仕様、プログラムの細部、それらは全て資料化されているものの、膨大な量と難易度の為、俺が居ないと回らない状態だった。
ところが、この不景気で、俺の雇い主の某大手メーカーは、とにかく外注を切る指示を出した。
そして、俺は引継ぎ作業をして、その会社の仕事を終わらせた。
引継ぎと言っても、そもそも仕様自体が多いので、1ヶ月毎日ミーティングしたが終わらなかった。資料は電子化されているが印刷したら電話帳ぐらいにはなるだろう。更にネットワーク機器で他装置との連携機能も実装していて、それらのノウハウなどはとうとう伝え切れなかった。
プログラムも、量を減らす為にテンプレートやらマクロやらが大活躍で、そもそもLinuxカーネルソースの中身を書き換えている部分もあったりして、相当な知識が無いと解析不可能だ。
更に引き継ぎ先は、その大手メーカーの新人に毛が生えた程度の若い人だった。
無茶だ。無理だ。引継ぎなんか出来るはずがない。
経費削減。
重役は経費しか見ていない。引き継げるかどうかは二の次なのだ。目の前の外注に発生した費用さえ浮けばいいのだ。

増田の話はNTTデータではないかもしれないが、
潜り込んだSIerの案件見てると、どこの大手でも似たり寄ったりだと思う。

内製率3割とか3割5分ぐらいっていっても、NTTデータの敷地内で作ってるだけで、
実際にコードを作ってるのは業務請負した外部の人かもしれないね。

ソフトウェアの自動化について

 倍速、できるものなら3倍速でやりたい、というお客様に応えるために、開発プロセスの抜本改善と、ソフト生成の自動化に取り組んでいます。色々やった結果、開発工数の3割はほぼ削減できることが見えてきた。もう少し頑張って開発工数を5割削減したい。

 私どもの過去の開発実績の平均値を取ると、機能拡張のような案件を除く、ごく普通の開発の場合、開発工数の比率は、要件定義と設計が3、製造が4、試験(テスト)が3です。ソフト生成自動化ツールを使ってみると、要件定義と設計のところは変わらないですけれど、4の製造の所がおおむね2で済む。すると試験にかかっていた3が1減って2に。つまり「3、4、3」が「3、2、2」になるから3割減です。

 画面はほとんど自動生成が可能で、ロジックのところができないけれども、ある程度チューニングしておけばロジックも自動生成できる。手で作っていたから試験が必要だった訳で自動化すると試験も劇的に下がります。


数年おきに出てきてはぽしゃってるのが、ソフトウェアの自動生成というバズワードな訳ですが、
なぜか毎回イイ話しは聞こえてきません。何でなんでしょうね。

思うに、汎用的な自動生成ツールを作ると、その自動生成ツールでの記述量が
単純にソースコードを記述するのと同等の複雑さを必要とするからなのではないかと。


ノーフリーランチ定理のソースコード生成ツール版を考えてもらうとわかりやすいかもしれない。

特定の領域に特化した自動生成ツールならば、
ソースコードを記述するよりも少ない複雑さで記述できるが、
その領域から外れた部分については、全く対応できないか、
単純にソースコードを記述する以上の複雑さが必要となる。

開発工数が削減できるのは、自動生成ツールが理想的に適用できた場合のみで、
それ以外の場合には開発工数が増える。

特にオーダーメイドのシステムでは、自動生成ツールが理想的に適用できる場面が極端に少なくなる。

SIer謹製のフレームワークが使いにくい原因もこの辺に原因があるんじゃないかと。*1


あと、ツールで自動生成したからといって、
テストを省略して良い理由にはなりません。

自分で作らないと改善もできない

 さっきお話した自動化ができると、管理仕事も減るはずです。そうすると社員は、設計とか、どうしても書かないといけないところ、つまり真水の仕事ができるようになる。問題意識として、まだまだ真水の部分が足りないです。当たり前のことを言いますが、自分たちで作らないと自分たちで改善できない。頼んでいる限り改善はできない。

「自分たちで作らないと、自分たちで改善出来ない」
よく分かってるじゃないか。
自動生成されたコードは自分たちで作ったといえるんだろうか?

自動生成されたソースコードのパフォーマンスが悪いからって、
手動で変更いれたりしないよね?

管理仕事を減らしたいなら、管理を自動化するべきなのではないか?
でも、それだとお金もらえなくなるから困るのか。

余談だが、「真水のしごと」が10年泥との対比っぽくておもしろい。

24時間耐久オフショア伝言ゲーム

社員を眠らせないのか。

 社員ではありません。会社が24時間眠らないで、24時間連続して開発を続けられる仕組みを作りたい。例えば、日本で8時間設計したら、インドかヨーロッパで8時間製造し、それを南米に持っていって8時間試験をする。日本から見ると、朝来ると、自分が設計したソフトが製造され、一通りの試験が終わって手元に来ている。

日本語を英語に翻訳して、
英語をポルトガル語スペイン語に翻訳して、
スペイン語ポルトガル語を日本語に翻訳する。

国内での会社間伝言ゲームに飽きたらず、
24時間耐久オフショア伝言ゲームを始めるつもりなのか。

素人シェルパ

よく言うのですけれど、我々の役目はITのシェルパみたいになること。このブリザードの中でも、お客さんと一緒にいる。ブリザードだから俺たちだけでこの山は下りますね、という訳にはいかない。

 山の中に一緒にいて、お客様のリュックにはチョコレートが5枚しかない。私のリュックにはおにぎりが2個ある。「お互いに持っているものを出し合って、ブリザードが過ぎるのを待ちましょう」、こういう覚悟が必要、これが今の私の正直な気持ちです。こういう時にこそ、ご一緒に乗り越えていかないと、晴れてきたときに、気持ちよくご一緒できない。
 あのときお客さんを置いて、自分たちだけは安全な方に逃げていったとか、こっそりビフテキを食べていた、というようではダメです。応分にお客様の荷物を負担して、互いに遭難しないようにしなければなりません。

いままで山にも登らずシェルパ手配師の親分をやってた会社が言ってもあんまり説得力無いような...

素人シェルパがエベレストに登れるのか?
体力がないから、死人がでるよ。

アンデス凄惨聖餐にならんといいが。