PR
 SQL Server 2005の売りの一つに,開発者の生産性が著しく向上するというのがある。SQLCLRやWeb Services,Encryptionなどの能率を上げる機能があるのだから,SQL Server 2005はSQL Server 2000やOracle 10g R2よりも生産性が高いはずだ,と思うのは当然だ。だがどうすれば,これが事実であることを証明できるのだろうか?

 この問いに答えるため,SQL Serverチームは最近,SQL Server 2005によるアプリケーション開発の効率性を,SQL Server 2000やOracle 10g R2の効率性と比較する,「開発者と生産性に関する調査」を実施した。その結果,SQL Server 2005の一部の機能(具体的に言うと,ネイティブ暗号化のサポート,C#でトリガーを作成する機能,Reporting Servicesなど)を利用できる開発者は,SQL Server 2000やOracle 10g R2を使っている開発者よりも迅速に作業を完了できることがわかった。

生産性をテストする

 SQL Serverチームは,この調査を3 Leafという開発会社に依頼した。Microsoftは,3 Leafに基本的なアプリケーション仕様書を提出した。その仕様書には,例として使用するContoso Timesと呼ばれる新聞社のWebサイトに載せる全コンテンツの簡単なデータベースと,そのWebサイトに追加する拡張機能セットが記述されていた。

 追加する拡張機能は,

  • Custom and Ad-Hoc Reporting(カスタムとアドホックのレポート作成)
  • Middle-Tier Caching(中間層キャッシュ)
  • Offline Smart Client Application(オフライン・スマートクライアント・アプリケーション)
  • Paid Articles and Subscriptions(有料記事とサブスクリプション)
  • Targeted Advertising(ターゲット広告)
の五つである。Oracle 10g R2は調査の開始からかなり時間が経過した後にリリースされたため,Custom and Ad-Hoc ReportingとOffline Smart Client Applicationのみを対象にして調査した。

 3 Leafは三種類の環境(ASP.NET 2.0とSQL Server 2005,ASP.NET 2.0とSQL Server 2000,Oracle JDeveloperとOracle 10g R2)でそのWebサイトを再構築し,MicrosoftやSQL Serverチームから一切助けを得ずに,拡張機能を実装した。それぞれの環境での再構築に開発者が一人ずつ割り当てられた。彼らは皆,それぞれの環境で同程度の経験を持っていた。

 この調査の期間中,開発者たちは自らの手法や問題,成功についての日記を毎日つけていた。63ページに及ぶこの日記は,MSDNに掲載されている同調査の最終報告書のベースになっている(同調査報告書の全文は,「Comparing Enterprise Development Productivity: SQL Server 2005 versus SQL Server 2000(企業における開発の生産性の比較: SQL Server 2005対SQL Server 2000)」「Comparing Enterprise Development Productivity: SQL Server 2005 versus Oracle Database 10g(企業における開発の生産性の比較: SQL Server 2005対Oracle Database 10g)」で読むことができる)。

 表1にあるように,それぞれの拡張機能や合計で,SQL Server 2005を使った開発者の開発時間は,SQL Server 2000やOracle 10g R2を使った開発者よりもかなり短い。平均すると,SQL Server 2000を使った開発者より34.4時間早く,そしてOracle 10g R2を使った開発者より47.3時間早く作業を完了した。テストの対象となったすべての拡張機能で,SQL Server 2005を使った開発者が作業を完了するのに要した時間の合計は,SQL Server 2000を使った開発者より173時間短く,Oracle 10g R2を使った開発者より94.5時間短かった。

表1●SQL Server 2005,SQL Server 2000,Oracle 10g R2の開発時間(単位:時間)
拡張機能SQL Server 2005SQL Server 2000Oracle 10g R2
Custom and Ad-Hoc Reporting(カスタムとアドホックのレポート作成)16.529.530
Middle-Tier Caching(中間層キャッシュ)66.5--
Offline Smart Client Application(オフライン・スマートクライアント・アプリケーション)155096
Paid Articles and Subscriptions(有料記事とサブスクリプション)27.598--
Targeted Advertising(ターゲット広告)3285--
総開発時間97270126