VS2005 TFS以前の常時結合と問題点

常時結合を行うためには、まずはソースコードをビルドし自動テストを行う仕組みが必要です。

VS2005 TFS以前にも、ビルドツールとして「NAnt」、自動テストツールとして「NUnit」を使うことで実現することができました。さらに、常時結合を行うツールとして「CruiseControl.NET」や「Draco.NET」を選択してきました。



ただし悪いことにそれらのツール類の保守は、一部のプログラマが有志で行うことがほとんどでした。この場合、その人がプロジェクトから抜けると誰も保守できなくなることが考えられます。このためNAntの使用方法を教育したり、ビルドファイルを保守するためのドキュメントを整備したりする必要があり、それらの工数は馬鹿になりませんでした。

さらに、NAntのビルドファイル(ビルドの設定ファイル)は、Visual Studioのプロジェクトファイルと互換性がなく、開発はデバッガやインテリセンスを利用するためにVisual Studioを使い、ビルドはNAntから行うという二重管理をすることがありました。この場合、保守性が非常に悪くなります(アセンブリの参照設定を行う際には、Visual Studioで参照設定したあとに、NAntのビルドファイルにも同様の修正を行う必要があります)。

またビルドツールやテストツール、常時結合のためのツール類はすべて別々のオープンソースのプロジェクトであり、すべてを利用して常時結合ができるシステムを構築するにはそれなりにノウハウが必要でした。

ゆえにこれまでの開発プロジェクトでは、費用対効果が小さすぎるため常時結合しようと考えるプロジェクトが少ないのではないかと感じています。

 

VS2005 TFSの自動ビルドによる常時結合

VS2005 TFSでは、自動ビルド機能を使うことで常時結合がスムーズに取り入れられると考えます。そして常時結合を行うためのツールは、表1のように変化していくのではないかと考えます。
 

これまで
(大多数)
これまで(一部)これから
ソースコード管理VSSVSS、CVS、SubversionVS2005 TFS
ビルドツールVisual Studio(IDE)NAntMSBuild
自動テストNunitNUnitユニットテスト
自動ビルドなしCrouseControl.NET、Draco.NETVS2005 TFS

表1:自動ビルドのこれまでとこれから

その理由には、3つあると考えます。

 

ビルド機能、単体テスト機能、自動ビルド機能が1つのプロダクトセットによって提供されており、導入や管理性がしやすい

これまでフリーのツールを組み合わせながら常時結合を行うためのシステムを構築してきましたが、工数がそれなりにかかり、それに見合うだけのメリットを感じることができないプロジェクトが多かったのではないかと考えます。

しかしVS2005 TFSという1つのプロダクトセットによって、システムの構築を統合的に扱えることにより、導入や管理のコストの障壁はなくなるでしょう。

 

自動ビルドの枠組みの中で、品質面に関するチェックを行うことができる

単体テスト、コードカバレッジ、静的コード分析を自動で行うことができるため、常に品質面でのチェックを入れることができます。

 

ビルドの失敗を放置しない

面白いことに、VS2005 TFSではビルドに失敗すると自動的にバグ票が切られます。そして自動的に作業項目が新規作成されます。これにより、誰もがビルドの失敗を見て見ぬ振りをすることができなくなります。作業項目と連携されているのも、1つのプロダクトセットに統合されているがゆえのなせるわざです。
 

開かれた作業項目
図1:開かれた作業項目
(画像をクリックすると別ウィンドウに拡大図を表示します)

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30