ITの急速な進化によるソフトウェア品質低下と解決策のリスク:新技術用センターオブエクセレンスの勧め
ソフトウェア分析会社である仏Castのビル・カーティス氏に、ますます厳しくなる業務部門の要求と、アジャイルソフトウェア開発の影響について話を聞いた。
CMM(能力成熟度モデル)ソフトウェア開発フレームワークの開発を指揮しているビル・カーティス氏は、IT業界の移り変わりの速さがソフトウェア品質の足かせになっていると考えている。同氏は、ソフトウェア分析および評価会社のCastでシニアバイスプレジデント兼主任サイエンティストを務めている。
ソフトウェア開発チームは常に悪戦苦闘しているとカーティス氏は話す。
「5年置きにテクノロジーに大きな変化がある。そのため、質の良いコードを作成できるようになったと思ったら新しいテクノロジーと言語が登場している。開発者は常に学習中なので、エラーを起こす率が高くなる」(カーティス氏)
Computer Weekly日本語版 2013年8月7日号無料ダウンロード
本記事は、プレミアムコンテンツ「Computer Weekly日本語版 2013年8月7日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。
なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。
カーティス氏は、「新しいテクノロジーを導入するための部門が必要だ」とし、企業が効果的に戦っていくためのIT機能を構築する総合的な部門の設立を提言する。特定の製品やビッグデータなど特定のテクノロジーを軸にしたCOE(センターオブエクセレンス:研究拠点)を設けるのではなく、どんなテクノロジーにも順応できるアプローチを検討すべきだというのが彼の意見だ。
そこでカーティス氏が勧めるのは、新しいテクノロジーを扱うCOEを設立することだ。そのCOEでは、新興のテクノロジーを企業に導入する方法を研究し、スタッフがそのテクノロジーを使いこなせるように準備する。
クラウドの持つリスク
クラウドコンピューティングによるソフトウェア開発への影響はどうか。
「クラウドのリスクは非常に大きい」とカーティス氏は言う。「クラウドコンピューティングでは、ユーザーが自分でコントロールできないソフトウェアを使うことになる。リスクを内包しているものに、手を出せないところに(ユーザーは)追いやられる」
カーティス氏によると、業務部門はより短時間でさらに多くのアプリケーションを開発し、しかもそれらが完璧に動作することをIT部門に求めているという。
アジャイルソフトウェア開発は、このような業務部門からの要求に、IT部門が迅速に対応できる手段の1つと見なされている。しかしカーティス氏は、アジャイル手法に完璧に従わなければコードの質が損なわれる可能性があると警告する。「短時間で成果物を提供することはできるが、優れた品質になるとは限らない。いわゆる“技術的な負債”を背負い込むことになる」
カーティス氏は、スクラムなどの開発手法を採用するのもよいが、毎日ビルドを行わないなど特定の要素を省くと、その手法の有効性が損なわれると指摘する。
「GoogleやMicrosoft、Amazonなどの企業は、気が遠くなるほどのソフトウェア開発ニーズがある。Googleでは、1日に5000万件のテストを実行し、全てのコードは1つの巨大なコードツリーに含まれている」
実際、アジャイルは自動化を促進してきた。カーティス氏は、「ソフトウェアのビルドプロセスを自動化し、テストを自動化する必要がある」と話し、ソフトウェア開発の工業化は必須だとする。工業化しなければ、保守の問題を優先せざるを得なくなるだろう。IT部門にとって犠牲の大きな作業や、セキュリティ侵害の発生につながる可能性がある。
「Google、Amazon、Microsoftの従業員には、厳しい開発のターンアラウンド要件が課せられている。彼らは、ツールを作成し、テクニックを開発し、作成した大量のコードを管理するすべを学んでいる。今から10年後には、ベストプラクティスとツールがいたるところで利用されているだろう」
カーティス氏によると、CMMはそのようにして発展してきたという。
「CMMはもともと、テクノロジーの最大の問題に直面したときに、米国防省で運用が開始された。その後電話会社で使われるようになり、他の業界にも広まった」
プログラミングフレームワーク
新しいアプリケーションに対する業務部門からの要求に応えるため、IT部門はプログラミングフレームワークを使って、ソフトウェア開発時間の短縮を図っている。
社内で開発する必要がない機能が多数用意されているため、フレームワークはソフトウェア開発者にとっての近道になる。
「フレームワークのおかげで業務部門の要件に応えることはできるが、必ずしもコードの質が改善されるわけではない」
カーティス氏は、フレームワークに問題がないわけではないとくぎを刺す。第三者に頼ることで、ソフトウェアの品質の面でリスクが発生する。「ソフトウェアベンダーは、利用者に自分たちのコードが見られることを嫌がる」
しかし、プログラミングフレームワークが広く利用されていることを考えると、時間の経過と共に、ソフトウェア開発チームがベンダーのコードを理解しなければならない場面は増えるとカーティス氏は見ている。
また、システムが複雑になったことで、コーディングはかつてないほど難しくなっているとカーティス氏は話す。「昔はCOBOLが分かっていれば、システム全体を理解できた。最近では、Java、SQL、ERPなどが融合して、1つのITシステムを構成している。誰もシステム全体を理解できない」
本当に必要なことは文書を最新の状態に保つことだという。
オープンソースからの教訓
続きはComputer Weekly日本語版 2013年8月7日号にて
本記事は抄訳版です。全文は、以下でダウンロード(無料)できます。
Copyright © ITmedia, Inc. All Rights Reserved.