Aug 07, 2005

[Misc] 開発作業を整理してみる

さて、先日は開発環境を整理してみたので、次は開発作業を整理してみたい。 ここでの開発作業とは、アプリケーションの実装に必要なあらゆる作業のこと。 コーディング、テスト、ディプロイなど定常的な作業もあるし、ステージング環境の構築のような作業も含める。 定義が結構曖昧だけれど、要は「モノを作る人たち」の責務となる実装に焦点を当てた作業。 その辺りの作業をどこまで自動化できるか、どこまで手順化できるか整理しておきたい。

[開発作業]

★Project Task
プロジェクトスコープのタスク。Shared Environment 構築、Workspace Environment 構築、など。ここは自動化というより手順化。自動化してもコストに見合わないため。
Shared Environment 構築
一番最初に行うべきタスク。手順化しておいて手順書通りの作業を行うようにしておくのがベストか。
アプリケーション雛形作成
ディレクトリ構成や自動化されたタスクのスクリプト、各種ツール類の標準設定などを含んだアプリケーションの雛形を作成するタスク。自動化する範囲にもよるが結構な量の設定が必要となるのでテンプレートもしくはウィザードが欲しい。
Workspace Environment 構築
最低でも手順化は必要だが、開発者の人数が多い場合は必要なソフトウェアを自動インストールしてくれると便利か。
★Phase Task
イテレーション単位のタスク。リリース、結合テスト、コードレビューなど。ここは可能な限り自動化したいが、人手に頼る部分も大きい。
リリース
実行可能なモジュールとドキュメント、ソースコードなど納品物一式を整える。ビルドマネジメントツールで自動化する。Maven は標準でサポートしているのでカスタマイズだけで済む。
結合テスト
コードレビュー
基本的には人手で行う必要があるが、ツールでかなり広範なサポートが可能。Jalopy、CheckStyle、FindBugs、JLint、JMetric などで単純作業を減らす。
★Build Task
実装作業レベルのタスク。コンパイル、単体テスト、パッケージング、ディプロイなど。ここが一番自動化しやすい。このタスクは基本的にビルドマネジメントツールで自動化しておく。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |