変化に対応するフィードバック手法
企業にITシステムが導入され始めた当初は、電話や紙によって進めていた業務をシステムに置き換えるなどの業務効率化に主眼が置かれていました。ITシステムとそれを実現するソフトウェアが何をすべきかが明確になっていました。しかし現在は、新しいビジネス創出を目的としたソフトウェア開発など、ソフトウェアの目的そのものが変化し、見えない中で開発を余儀なくされています。これに対して、ソフトウェア開発にフィードバック・サイクルを持たせ、それを高速に回すことで、「動く目標」を確実に捕捉しながら開発のゴールに向かうという「フィードバック手法」が重要となります(図)。
図:今後のソフトウェア開発の課題とフィードバック手法
具体的には以下のような手法・考え方が登場しています。
- ビジネス開拓の段階で仮説検証を高速に回しながら、要求されるビジネスモデルの精度を高めていく「リーンスタートアップ」
- サービス企画・システム開発の段階で、部分的な開発を繰り返しながら機能や品質を洗練させていくScrumに代表される「アジャイル開発」
- 安定運用と頻繁なリリースを両立させ、短い周期でシステムを改善していく「継続的デリバリー」と「DevOps」
高速・高品質開発を実現するソフトウェア開発のIT化技術
また、「(品質を落とさずに)開発スピードをいかに速くするか」がソフトウェア開発の課題として取り上げられることが多くなりました。その解決にあたっては、いまだに労働集約型となっているソフトウェア開発を大きく変えていく必要があります。その突破口がコンピューティングパワーの最大限の活用です。
昨今のあまりあるコンピューティングパワーは、これまで人間の知的作業の固まりだと思われてきたソフトウェア開発のコンピュータ化を急速に進める要因になっています。一般の企業における業務がITシステムの導入によって姿を変えてきたように、ソフトウェア開発現場でも、開発業務にITを活用すること、つまり「ソフトウェア開発のIT化」が進んでいるのです。
具体的には、「自動化」、「再利用」、「開発環境」といった3つの面で、ソフトウェア開発のIT化技術が進展しています。特に自動化については、ソフトウェア開発作業が広範囲にわたり、多種の自動化技術が登場しており、大きく8つの領域で発展をしています(図)。これらの技術進歩により、開発者が担ってきた作業の多くの部分がコンピュータによって支援される、またはコンピュータに任せられるようになりつつあります。
図:8領域で発展する自動化技術
ソフトウェア生産技術の活用
上述のフィードバック手法やソフトウェア開発のIT化技術を効果的に活用していくことが、現在の、そして今後の大競争時代を勝ち抜くための鍵となります。しかし、その必要性は理解できたとしても実践するとなると、乗り越えるべきハードルが多いのが現実です。アジャイル開発を導入しようとしたものの現場を混乱させただけになってしまったという話や、多種多様な自動化技術の中で自分のプロジェクトはどの技術を使えばよいのか分からないという話などさまざまです。例えば、企業のシステム部門の方々が遭遇する典型的場面について、各場面に適したアプローチが考えられます(図)。
図:ソフトウェア生産技術の活用のアプローチ
書籍「革新を続けるソフトウェア生産技術」では、上述のソフトウェア生産技術のトレンドおよび活用の考え方について、具体的な技術解説とともに紹介しています。