Team Developmentパターン
今回は、複数人によるスクリプトの開発をスムーズに行うことができる「Team Development」パターンを見ていきます。
1 課題
DataSpiderのスクリプト開発を複数人で行っていたところ、以下の問題が発生した。
・複数人で同一プロジェクトを開発したため、プロジェクト保存時の後勝ち問題が発生し、開発した内容が消失してしまった
・そのため、各メンバーに開発用のプロジェクトをあてがって開発を進めたが、各メンバーが担当しているスクリプト同士の連携効率が悪化した
・細かくプロジェクトの保存を行ったためにプロジェクトのバージョンが増えすぎてしまい、HDD容量を圧迫した
2 解決方法
専用に用意されたチーム開発機能を使用することで、これらの問題を解決する。
3 説明
チーム開発機能を有効にすると、以下の機能を使用できる。
・プロジェクトのローカル保存
・プロジェクトのサーバへのコミット
・プロジェクト/スクリプトの競合検出
・サーバプロジェクトの状態をローカルプロジェクトに反映
・ローカルスクリプトの履歴管理
・プロジェクトへのコメントとタグの設定
開発の流れとしては、各メンバーがプロジェクトを開発し、タイミングを見てサーバにコミットする。
明示的にサーバにコミットしない限りは、プロジェクトはローカルに保存されているため、他のメンバーへの影響を抑えられる。
ただし、サーバのコミットでは他のメンバーとの競合(コンフリクト)が発生する可能性があるため、慎重に行う。
また、開発フェーズごとにプロジェクトにタグを設定することで、サーバにあるプロジェクトがどの状態にあるのかが分かるようになる。
開発が完了したら、サービスとして登録し、次のテストフェーズに移行する。
4 メリット
・標準で搭載されている機能のみを使用して実現できる
・複数人による開発を、統合開発環境(IDE)やバージョン管理システムライクに行うことができる
・いったんローカルで保存し、サーバにコミットする形であるため、プロジェクトのバージョンの増加を抑制することができる
5 注意点
・DataSpider Servista 3.0以降で使用可能
・統合開発環境(IDE)やバージョン管理システムを使用したことがある開発者向けの機能
・リポジトリDBが必須
6 関連事項
・チーム開発機能を使用した場合でも、 スクリプトパターン「Script Guideline」を意識する必要がある。ガイドラインが定義されていないと、チーム開発機能を駆使しても、各メンバーが開発したスクリプトを統合する際に多大な労力がかかることが予想される。