ソフトウェア開発は『つくる』『つくらない』のどちらへ進むべきか──。最近、「つくらない開発」の登場が台風の目になっている。最も大きな工数がかかり、しかも最も付加価値を生み出しにくいのが「製造(コーディング)」である。ここを自動化することで、工数を削減すると同時に、付加価値の低い作業に従事する労働集約的な仕事を極力なくす。これによってコストを削減し、ソフト開発エンジニアの価値創出力を高める狙いの動きが表舞台に登場してきている。(取材・文/安藤章司)
「つくらない開発」の実践
なぜ、今、ソフトウェア開発の自動化、すなわち「つくらない開発」が注目を集めているのか。マクロでは、国内市場の成熟度合いが高まったことによる値下げ圧力の強まりがその動きに拍車をかけている。さらには国内情報サービス業のオフショアソフト開発の主な委託先である中国の人件費の上昇がある。さらには低価格化が著しいスマートデバイスやクラウドの業務分野での活用が挙げられる。
スマートデバイスやクラウドを活用したアプリケーションは、とりわけコンシューマ向けの分野で極めて安価に提供されている。こうした現象に引っ張られるかたちで、企業向けの領域でも従来のクライアント/サーバー向けのソフトより数段価格を安く抑えることが求められているのだ。
ソフト開発のコストを削減する方法として注目されているのが、「製造工程」を極限までなくすことである。
●製造工程にメスを入れる 図1で示したように、ソフト開発の流れは、主に「コンサルティング」「要件定義」「外部設計」といった上流工程と、「内部設計」「プログラム設計」「製造(コーディング)」「単体テスト」といった製造工程がある。次のステップとして、製造したソフトウェアモジュールを組み合わせてテストする「結合テスト」、ユーザーに実際に操作してもらい、当初の想定どおり動作するかを確認する「ユーザーテスト」の下流工程に分かれる。ソフト開発の自動化とは、主に「製造工程」を抜本的に見直す行為を指す。

NTTデータ
冨安寛
センタ長 ソフト開発の「価値のスマイルカーブ」と「工数の推移」でみると、「製造工程」は最も価値が低く、最も工数が多い。つまり、極論すれば価値の低い作業を、多くのエンジニアを投入して行う労働集約的な行為であり、人件費の押し上げと粗利益の低下に直結してしまう。ここにメスを入れない限りは、抜本的なコスト削減は難しい。「上流工程」は付加価値の高い工程なので、多少のコストがかかっても採算性は良好とされ、「下流工程」は投入する人数の絶対数が限られている。
これまでは、「製造工程」を中国をはじめとする人件費の安い海外に出したり、同じく人件費の安い国内地方にニアショアとして委託したりして凌いできた。しかし、中国の経済発展に伴って人件費が高騰。労働集約型の付加価値の低い仕事を受けにくい状況へと変わりつつある。将来を見通すと、中国の人件費が上昇することはあっても、下がることは考えにくく、これをミャンマーやベトナムなどへ移管するにもまだ時間がかかる。そこで俄然注目を集めているのがソフト開発の自動化なのである。
●業界のトップ企業が動いた 国内主要SIerのなかで最もラジカルに自動化に取り組んでいるのは、最大手のNTTデータだ。同社の取り組みは、業務特化型言語を独自に開発し、プログラムのソースコードを自動生成するというものである。
企業が使う業務アプリケーションは、究極的には「伝票」の受け渡しである。NTTデータの過去の業務アプリケーションの構築経験をパターン化することで、企業で使う業務アプリケーションに特化した簡易言語を開発。この言語で設計すればプログラムソースコードをほぼ100%自動生成する。ツール名は「TERASOLUNA」シリーズだ。
NTTデータの冨安寛・ソフトウェア工学推進センタ長は、「業務特化型言語で1行書けば、10行以上のソースコードを自動生成するイメージだ」と、その威力を説明する。ここでポイントとなるのは、単純に「製造(コーディング)」部分だけの省力化ではなく、その前後の工程である「プログラム設計」と「単体テスト」をもまとめて自動化する試みである。
つまり、最初の設計の段階から業務特化型言語を使用することで、人の手がソースコードに介在することはなくなり、これによってプログラムの記述ミス(いわゆる「バグ」)を排除し、単体テストの大幅な簡略化が可能になるわけだ。次ページからは個別の事例も踏まえて詳報する。
コスト構造の抜本改革――価値の低い作業はやめる
NTTデータはプログラムソースコードを自動生成する「TERASOLUNA」シリーズを独自に開発し、設計から製造、単体テストまでの製造工程の自動化にめどをつけた。「最も価値の低い作業に、最も多くのエンジニアを投入する」製造工程の主要部分を簡略化する、あるいは、なくしてしまうことでコスト構造を抜本的に変えようという取り組みである。
●国際分業のあり方に変化 NTTデータがプログラムソースコードの自動生成の実用化にめどをつけたのは2008年頃だとみられている。強大なコンピュータリソースが安く大量に使えるようになるとともに、業務アプリケーションの部品化、開発フレームワークの共通化を進めてきたことで、製造工程を自動化しやすい環境整備が進んだことが背景にある。もちろん自動化に向けた技術革新も活発に行われた。
それでも、年間数千件はあるといわれるNTTデータのアジア地域のプロジェクトに対して、なんらかの自動化ツールを適用したケースは今期(2014年3月期)見通しベースで218件の予定で、ごくわずか。裏を返せば自動化できる領域は、まだ果てしなく広がるということだ。NTTデータの主要オフショア開発先の一つである中国には約4000人のスタッフを配備しており、目下、対日オフショア開発を担当している中国スタッフの最大の関心事は、製造工程の自動化にある。
かつては、プログラムの設計まで日本で行い、中国では単純なコーディングだけを担っていた時代があったが、今、同じことを行えば高騰する中国の物価水準に見合う給料が支払えなくなってしまう。そこで自動開発ツールの「TERASOLUNA」シリーズを活用し、設計段階から中国スタッフが行い、プログラムの自動生成、単体テストまで担う方式に変えつつある(図2参照)。
ここまで来ると、もはやかつてのコスト低減を目指す姿はなく、中国エンジニア集団の「TERASOLUNA」に関する高度なスキルを活用するために、中国法人が製造工程を担う構図へと質的変化を遂げていることになる。
[次のページ]