なぜ我々はMavenなのか(プロジェクトにおける有効性)
そろそろ時代に乗り遅れないようにJ2EE5.0の勉強を開始しようと思います。w
私がJ2EE勉強を始めるに当たり設定するゴールはこちら
この2つのゴールは、最終的にはJ2EE5.0において実際的な開発を行なうための必須条件です。1点目については言わずもがなです。最も普及しているIDEである以上、当然利用します。
さてここからが本題ですが・・・・
重要なのは2点目です。Maven2にこだわるのには理由があります。
これらは一見すると些細なことのようですが、下記にあげるように、プロジェクトの効率性を大幅に向上させます。
つまり、これらは新規開発リソースの追加時にプロジェクトにおける負荷が低いことを示しており、開発要員の立ち上がりがスムーズに行なわれることを意味します。
事実、私の所属する組織(上海でのオフショア開発)において絶大とまでは行かずとも一定の明らかに目に見える効果をもたらしました。
例えば、あるプロジェクトがピンチの時、他のプロジェクトからリソースを投入しても手法が一貫しているため、エンジニアの追加投入作業が非常に容易でした。また、当然ながら新規プロジェクト開始時にもプロジェクトの立ち上がり自体がスムーズに行なわれます。
さらに、必殺「私の環境では動いた!」というオフショアに顕著な事情に対する予防策にもなります。つまり、コミットやビルド時に
「Maven2でmvn packageしたものをデプロイして動いたらOK。」
というシンプルなルールを決めるだけで、ある一定のクオリティが自動的に保証されます。これはひいてはContinuumなどの利用による継続的インテグレーションにつながります。
SIの顧客やPMの皆さん、技術者や発注先がMaven2を利用したいと言ってきた場合、上記の理由からどうか是非受け入れてあげてください。(もちろん、顧客やPMは上記の効果を要求すべきだし、当然その権利があります。)
参考
その他
#現地パートナー会社の中国人エンジニアGさん(超勉強熱心!)より教えていただいた情報
実はThoughtWorksは西安に拠点を持っている。(本当)
http://www.thoughtworks.com.cn/index.html
私がJ2EE勉強を始めるに当たり設定するゴールはこちら
- Eclipseによる開発
- Build&DeployはMaven2を利用
この2つのゴールは、最終的にはJ2EE5.0において実際的な開発を行なうための必須条件です。1点目については言わずもがなです。最も普及しているIDEである以上、当然利用します。
さてここからが本題ですが・・・・
重要なのは2点目です。Maven2にこだわるのには理由があります。
- IDEのプロジェクトの準備が容易
- IDEを用いることなくコマンドラインベースにてビルド、デプロイが可能
- 各種ライブラリの準備・管理が容易(バージョン競合がない)
これらは一見すると些細なことのようですが、下記にあげるように、プロジェクトの効率性を大幅に向上させます。
- コマンドラインベースのため環境構築、リリースなどのドキュメントが比較的容易に記述可能
- バージョン管理システムからチェックアウトした後、開発環境を構築するまでの時間が予測可能なうえ、非常に短い
つまり、これらは新規開発リソースの追加時にプロジェクトにおける負荷が低いことを示しており、開発要員の立ち上がりがスムーズに行なわれることを意味します。
事実、私の所属する組織(上海でのオフショア開発)において絶大とまでは行かずとも一定の明らかに目に見える効果をもたらしました。
例えば、あるプロジェクトがピンチの時、他のプロジェクトからリソースを投入しても手法が一貫しているため、エンジニアの追加投入作業が非常に容易でした。また、当然ながら新規プロジェクト開始時にもプロジェクトの立ち上がり自体がスムーズに行なわれます。
さらに、必殺「私の環境では動いた!」というオフショアに顕著な事情に対する予防策にもなります。つまり、コミットやビルド時に
「Maven2でmvn packageしたものをデプロイして動いたらOK。」
というシンプルなルールを決めるだけで、ある一定のクオリティが自動的に保証されます。これはひいてはContinuumなどの利用による継続的インテグレーションにつながります。
SIの顧客やPMの皆さん、技術者や発注先がMaven2を利用したいと言ってきた場合、上記の理由からどうか是非受け入れてあげてください。(もちろん、顧客やPMは上記の効果を要求すべきだし、当然その権利があります。)
参考
- SunMicrosystemsのNishigayaさんのブログ
J2EE5 SDKによる開発をMaven2にて行なう際に非常に参考になります。
Maven 2を使ったJava EE 5アプリケーション開発 〜導入編〜
http://blogs.sun.com/nishigaya/date/20060824
Maven 2を使ったJava EE 5アプリケーション開発 (2) 〜マルチモジュール〜
http://blogs.sun.com/nishigaya/date/20060829 - Maven2のTipsを集めるWiki
かゆいところに手が届くTipsがたくさん掲載されています。
http://wiki.fdiary.net/maven2/ - 裏マキノ式
手前味噌ですが、私の書いたWikiです。
Maven2Reference
http://www.makino-style.org/ura/index.php?Maven2Reference
Maven2CargoDeploy
http://www.makino-style.org/ura/index.php?Maven2CargoDeploy
その他
- Maven2
http://maven.apache.org/ - Continuum
http://maven.apache.org/continuum/ - 継続的インテグレーション
マーチン・ファウラーによるドキュメントの邦訳です。オブジェクト倶楽部です。
http://www.objectclub.jp/community/XP-jp/xp_relate/cont-j
- アジャイルソフトウェアプロセスを使ってオフショア開発
同じくマーチン・ファウラーによるドキュメントの邦訳です。教えてくれたのは元同僚の恩師であり、さらに現在の同僚の同期であるIさん。(私信:Iさん返事が遅れてすいませんm(_ _)m)
http://andore.com/money/trans/agileOffshore_ja.html
#現地パートナー会社の中国人エンジニアGさん(超勉強熱心!)より教えていただいた情報
実はThoughtWorksは西安に拠点を持っている。(本当)
http://www.thoughtworks.com.cn/index.html



Comments
> 私の所属する組織
何か「組織」っていうと、アレな感じがするので、普通に「会社」って言おうよ。
Add Comment