2013年10月31日

イマ旬キーワード

ソフトウェア生産技術革新

激変するビジネス環境やコンピュータ技術の進歩を背景に、今「ソフトウェア生産技術」が大きく進化しようとしています。2つの技術トレンドと技術活用の考え方をご紹介します。

技術開発本部 吉田 英嗣

変化に対応するフィードバック手法

企業にITシステムが導入され始めた当初は、電話や紙によって進めていた業務をシステムに置き換えるなどの業務効率化に主眼が置かれていました。ITシステムとそれを実現するソフトウェアが何をすべきかが明確になっていました。しかし現在は、新しいビジネス創出を目的としたソフトウェア開発など、ソフトウェアの目的そのものが変化し、見えない中で開発を余儀なくされています。これに対して、ソフトウェア開発にフィードバック・サイクルを持たせ、それを高速に回すことで、「動く目標」を確実に捕捉しながら開発のゴールに向かうという「フィードバック手法」が重要となります(図)。

【図】

図:今後のソフトウェア開発の課題とフィードバック手法

具体的には以下のような手法・考え方が登場しています。

  • ビジネス開拓の段階で仮説検証を高速に回しながら、要求されるビジネスモデルの精度を高めていく「リーンスタートアップ」
  • サービス企画・システム開発の段階で、部分的な開発を繰り返しながら機能や品質を洗練させていくScrumに代表される「アジャイル開発」
  • 安定運用と頻繁なリリースを両立させ、短い周期でシステムを改善していく「継続的デリバリー」と「DevOps」

高速・高品質開発を実現するソフトウェア開発のIT化技術

また、「(品質を落とさずに)開発スピードをいかに速くするか」がソフトウェア開発の課題として取り上げられることが多くなりました。その解決にあたっては、いまだに労働集約型となっているソフトウェア開発を大きく変えていく必要があります。その突破口がコンピューティングパワーの最大限の活用です。

昨今のあまりあるコンピューティングパワーは、これまで人間の知的作業の固まりだと思われてきたソフトウェア開発のコンピュータ化を急速に進める要因になっています。一般の企業における業務がITシステムの導入によって姿を変えてきたように、ソフトウェア開発現場でも、開発業務にITを活用すること、つまり「ソフトウェア開発のIT化」が進んでいるのです。

具体的には、「自動化」、「再利用」、「開発環境」といった3つの面で、ソフトウェア開発のIT化技術が進展しています。特に自動化については、ソフトウェア開発作業が広範囲にわたり、多種の自動化技術が登場しており、大きく8つの領域で発展をしています(図)。これらの技術進歩により、開発者が担ってきた作業の多くの部分がコンピュータによって支援される、またはコンピュータに任せられるようになりつつあります。

【図】

図:8領域で発展する自動化技術

ソフトウェア生産技術の活用

上述のフィードバック手法やソフトウェア開発のIT化技術を効果的に活用していくことが、現在の、そして今後の大競争時代を勝ち抜くための鍵となります。しかし、その必要性は理解できたとしても実践するとなると、乗り越えるべきハードルが多いのが現実です。アジャイル開発を導入しようとしたものの現場を混乱させただけになってしまったという話や、多種多様な自動化技術の中で自分のプロジェクトはどの技術を使えばよいのか分からないという話などさまざまです。例えば、企業のシステム部門の方々が遭遇する典型的場面について、各場面に適したアプローチが考えられます(図)。

【図】

図:ソフトウェア生産技術の活用のアプローチ

書籍「革新を続けるソフトウェア生産技術」では、上述のソフトウェア生産技術のトレンドおよび活用の考え方について、具体的な技術解説とともに紹介しています。

著者プロフィール

【写真】

技術開発本部 吉田 英嗣

開発自動化技術を中心としたソフトウエア生産技術に関する技術開発に従事。NTTデータにおける「自動化」の推進役。最近は大量の開発資産を活用した新しい開発手法について研究中。Java等に関する書籍・記事執筆も行う。

お気軽に
お問い合わせ
ください

革新を続けるソフトウェア生産技術に関するお問い合わせ

お問い合わせフォーム

革新を続けるソフトウェア生産技術に関連する情報

サービス

システム開発の手順・環境やサポートを一体化したトータルソリューションで、お客様業務の大幅効率化を実現