近年、市場環境や競合環境の流動化はますます加速しています。そうした状況下で、システム開発における目標の設定は非常に困難になっています。というのも、開発当初に掲げた目標が、さまざまな変化によってすぐに適合しなくなってしまう可能性をはらんでいるからです。そうした状況が繰り返されるのであれば、開発目標そのものにも流動性が求められるべきです。

 流動的な目標、つまり「動く目標」を確実に捕捉しながら開発のゴールに向かうというアプローチこそ、今後のシステム開発にとって最も重要になりますが、そのような「動く目標」への対応にはフィードバックシステムの構築が有効です。これまでに紹介してきました、「リーンスタートアップ」や「アジャイル開発」、「継続的デリバリー」は、そのようなシステム開発におけるフィードバックシステムを構築する手法でした。

 そのようなフィードバックシステムを効果的に機能させるためには、フィードバックサイクルを高速に回す必要があります。そうでないと「動く目標」に対しての軌道修正が遅れることになります。つまり、ソフトウエア開発の高速化が必要なのです。前回記事での「継続的デリバリー」の紹介の中でソフトウエアリリース作業の自動化について解説しましたが、それはソフトウエア開発の高速化のための有効な1つの手段といえます。

 一方で、いかに高速にソフトウエアが作れたとしてもそこに品質が伴わなければ、ビジネス継続に支障を来します。例えばレビューやテストの作業に手を抜くことで、開発スピードを高めることは今でも可能かもしれませんが、それでは適切なフィードバックを得られるソフトウエアは提供できません。やるべきことはやらなければなりません。これまでは、人海戦術による対応や、開発プロセスのマニュアル化などで対応してきたのが実態です。

 したがって、開発者が手を抜くことなくソフトウエア開発を高速に行うための環境をどのように整備していくのかという、とても実践的な課題があるのです。

IT要素技術の発展が開発者にもたらしたもの

 昨今のCPUやストレージ、ネットワークなどIT要素技術の急速な発展は、これまで人間の知的作業の固まりだと思われてきたソフトウエア開発のコンピュータ化を急速に進める要因になっています。一般の企業などにおける業務処理がITシステムの導入により姿を変えてきたように、ITシステムを作り上げるソフトウエア開発業務そのものにおいてもITの活用、つまりコンピュータ化が重要なトレンドとなってきており、それにより開発者を取り巻く環境も大きく変わりつつあります。