Date:  Wed, 13 Oct 2004 13:06:52 +0900
Subject:  【オブジェクト倶楽部: 2004-38号】

       ┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
       ┃                         ■┃
      ●┃● ● オ ブ ジ ェ ク ト 倶 楽 部   ■ ┃
       ┃                       ■  ┃
       ┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
                          No.66 2004/10/13

■ I N D E X
┃
┣【Topics】Topics JUDE Professionalβ版配布開始
┣【Topics】お試しセミナー『オブジェクト指向の設計原則』開催
┣【PM】プロジェクトマネジメント入門[18]
┣【XP】継続的結合 再入門[1]
┗【アンケート】気になるシステム業界 ホントのところ

〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
 〇  Topics JUDE Professionalβ版配布開始
  〇 〇━━━━━━━━━━━━━ ━━・

このメルマガでも何回か登場しているUMLツールJUDEに、製品版が登場します。
JUDE Professionalです。本日よりそのβ版を公開していますので、ぜひ成長し
たJUDEを体感してみてください。
詳細は、こちらをご覧ください。   http://jude.esm.jp/

〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
 〇  お試しセミナー『オブジェクト指向の設計原則』開催
  〇 〇━━━━━━━━━━━━━ ━━・
 
オブジェクト倶楽部を運営、管理している永和システムマネジメントでは、
格安な「お試しセミナー」を開催しております。その第2弾といたしまして、
10月27日(水)に『オブジェクト指向の設計原則』を開催します。
オブジェクト指向設計に興味のある方、奮ってご参加ください。
http://po2d.esm.co.jp/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━1 s t ■━
■
┗【PM】プロジェクトマネジメント入門[18]

前回から「プロジェクトマネジメントオフィス(以下、PMO)」の話しをし
ています。今回は、PMOの機能について話をします。

一般的に、PMOの機能は、4つあるといわれています。
(1)  プロジェクトチームへの各種支援
(2)  プロジェクトマネジメントのコンサルティングと教育
(3)  プロジェクトマネジメント手法の標準化と普及
(4)  プロジェクトマネージャの派遣

これら4つの機能のなかで最も重要なのは「プロジェクトチームの各種支援」
だと筆者は考えています。プロジェクトチームは、ただでもスケジュールなど
に追われ、実務中心となり、マネジメント業務が疎かになります。また、マネ
ジメント業務が俗人化されてしまいマネージャにより質や量が異なることがあ
ります。これら状況を改善する為に、プロジェクトチームからマネジメント業
務を引き上げ、プロジェクトチームのメンバーが実務に専念し、プロジェクト
メンバーに対して受け入れやすく、質の高いマネジメントを提供することが期
待できます。

筆者のところでは、「プロジェクト推進室」と呼ばれる組織体を設け、専任の
スタッフ1名と兼務のスタッフ2名を配属し、このPMOの機能を実現していま
す。プロジェクトの計画段階から実施、評価までプロジェクトマネージャ(リー
ダ)を支援(プロジェクトによってはマネジメント業務を殆ど吸い上げていま
す)しています。プロジェクトのスケジュール、スコープは、顧客との折衝部
分があるので営業担当部署とプロジェクトチームが主導して決めています。
PMOは、リソース(社内外の開発要員)、経費、プロジェクト実施に関する
課題・問題、社内手続きに関するマネジメントを主におこなっています。

この「プロジェクト推進室」は、発足して1年程度と短く、「バックオフィス」
的な位置付けとなっています。短期的な目標は、単なる「バックオフィス」的
な位置付けから脱皮し、プロジェクトチームへ効果的なプロジェクト推進方法
を助言できる、つまり、PMOの機能に挙げた「プロジェクトマネジメントの
コンサルティングと教育」です。プロジェクト推進の専門的な知識とノウハウ、
そして、洞察力をPMOに蓄積・集中させ、教育を通してプロジェクトチーム
にフィードバックすることでプロジェクト推進力付けて行きたいと考えていま
す。

次回も、PMOの機能について話をしていきます。(事務局長)

_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/cgi-bin/question.cgi?F001+17+0
普通:
http://www.ObjectClub.jp/cgi-bin/question.cgi?F001+17+1
イマイチ:
http://www.ObjectClub.jp/cgi-bin/question.cgi?F001+17+2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━2 n d ■━
■
┗【XP】継続的結合 再入門[1]

■はじめに

継続的結合(Continuous Integration、以下CI)は、1日に何度もプロダクトコー
ド全体のビルド及び自動テストを実行する作業のことを指します。本連載では、
CIの重要性を読者の皆さんに知って頂き、実際にどのようにCIを実施するかに
ついてお話することを目標とします。

今回は一般的に言われているCIの概要のおさらいと、最近出てきた新たな動き
についてお話しします。

■継続的ってどういうこと?

CIは、1日に何度も最新のプロジェクトツリーをコード管理リポジトリから取得
し、含まれる全てのコードの結合を行う作業を指します。ここで言うコードの
結合とは、ビルド作業と自動化されているテストの実行を指します。自動テス
トを実行するためには、自動でテスト可能な実行環境を構築する必要がありま
す。Javaで言うところのjarやwar、earなどの複数のアーカイブから構成される
プロジェクトの場合には、最新のコードからアーカイブを生成し、最新の実行
環境の元でテストを実行します。CIの概念は以前から存在していましたが、結
合の頻度は1日1回のデイリービルドが一般的でした。eXtremeProgramming(XP)
はデイリービルドを更に強く押しすすめてプラクティスに含めました。1日1回
ではなく、何度も結合する...ここが継続的たる所以です。

■XPにおける継続的結合

XPにおいて、CIは、プロジェクトを円滑に進めていくのに不可欠なプラクティ
スとされています。頻繁なフィードバックを価値としている ^1 XPでは、1日に
何度も結合を行うCIのプラクティスの採用は必然です。XPでは、ほとんどのコー
ドにはテストコードが存在します。テストコードはプロダクトコードと一緒に
作成、実行されますが。その際にはプロダクトコードは100%テストが成功した
ものがリポジトリに登録されることになります。
 
理論上、リポジトリ中のプロダクトコードは全テストにパスしていることにな
ります。しかし実際はインターフェースの変更や、バグの混入などにより必ず
しも常に100%のテスト成功を維持しているとは限りません。アーキテクチャ下
層のような独立性の高いコードから、アーキテクチャ上層のような複数の依存
関係から成るコードに至るまで、多くのテストが存在するため、特定の時点で
の全コードを結合することでプロジェクトの状態を知ることができます。

少なくとも、全テストが常に100%成功するように維持できていれば、プロダク
トコードは仕様通り(=テストにのっとった)の動作であることが保証されます。
もちろん、テストが100%成功しているからといって、完璧なコードであるとい
う意味ではありませんし、バグは常に潜んでいます。しかしCIを実施していく
ことで、最新の全プロダクトコードの状態を継続的に把握することができるの
です。

■プロジェクトの人間ドック

CIを人間ドックにたとえてみましょう。身体計測から始まり、X線検査、心電図、
血圧、血液検査、便検査、尿検査、超音波検査、体力測定などなど、数多くの
検査を行うことで、被験者の健康状態をより緻密に把握できます。人の単体テ
ストは、各一般検査 ^2 に相当するでしょう。もし人間ドックを受ける頻度を
上げることができれば、常に健康状態を知ることができます。もし10年に一度
しか人間ドックに行かなかったら...。身震いするのは筆者だけではないでしょ
う。 ^3 人間ドックを1月に1度受けることができれば、ちょっとした健康状態
の変化にも気づいて即時対応できます。現実には、人間ドックはお金も時間が
かかるため、そうそう頻繁には実施できません。しかし、CIは最初に準備をし
ておけば、後は無理なく実施し続けることができます。

■今までの継続的結合の現状

XPにおいて「継続的結合」という言葉が使われてから数年立ちますが、これま
でに実際にどうやってCIを実現するか、という話題はさほど行われてきません
でした。単純にスケジューラーに結合処理を登録して回していくといった方法
で済まされていたのでしょうか?そんな昨今、 Pragmatic Project Automation ^4 
という書籍が「達人プログラマー」で知られている「Pragmatic Programmer」 ^5 
のシリーズである「PragmaticBookshelf」の一部として出版されました。この
書籍は海外や国内の一部で既に評判になっています。Pragmatic Project Automation
は開発に関する様々なプロセスを自動化するためのエッセンスを記しています。
もちろんCIについても当然含んでいます。CIというと、今までは単純にスケ
ジューラーを使用して結合作業を自動化するというだけで済まされてきたのか
もしれません。しかし今ここでCIを見直す機会だと筆者は考えます。

CIは、生産性 ^6 を高めるための「攻め」の考え方とは異なり、どちらかとい
うとリスクに対しての「守り」の考え方です。プラクティス自身の効果が見え
にくい点もあってか、これまでクローズアップされることはさほどありません
でした。しかし、結合のビックバン ^7 という攻撃に対抗するだけの防具を身
につけなければ、開発プロセスをうまくドライブしていくことは困難です。ま
た防具も漫然と身に付けているだけでは不十分です。しっかりと防具の身に付
け方を学ばねばなりません。 ^8

■今回のまとめと次回予告

今回はCIの重要性と現状についてお話ししました。XPのプラクティスとして広
く認知されたCIですが、どちらかというと守りのプラクティスのために、それ
ほど重要視されてきませんでした。しかし Pragmatic Project Automation の
ような書籍も出版されて、見直す時が来たといえます。次回はCIにもいろいろ
な種類がありますので、それぞれの種類についてのお話をします。(懸田)

[1] 4つの価値「コミュニケーション、シンプル、フィードバック、勇気」

[2] 病院の検査は大きく一般検査と特殊検査に分かれます

[3] 主に30代中盤以降の方限定でしょうか(^^;

[4] http://www.pragmaticprogrammer.com/starter_kit/auto/index.html

[5] http://www.pragmaticprogrammer.com/

[6] ここでの生産性は「コーディングに直接寄与する」という意味で使用しています

[7] 結合を最終フェーズで一気に行って大爆発してしまう意

[8] 剣道の防具もきちんと身に付けていないと打たれて痛い思いをしてしまいます

_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/cgi-bin/question.cgi?G002+0+0
普通:
http://www.ObjectClub.jp/cgi-bin/question.cgi?G002+0+1
イマイチ:
http://www.ObjectClub.jp/cgi-bin/question.cgi?G002+0+2
 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━3 r d ■━
■
┗【アンケート】気になるシステム業界 ホントのところ

今週は「好きな季節はいつですか」のホントのところ。10月も中旬に入りまし
た。もうすぐ紅葉の時期ですね。日本は四季に恵まれてるわけですが、さて、
みなさんの好きな季節はいつですか?

  全部スキです。
     http://www.ObjectClub.jp/cgi-bin/question.cgi?Z001+31+0
  春です。
     http://www.ObjectClub.jp/cgi-bin/question.cgi?Z001+31+1
  夏です。
     http://www.ObjectClub.jp/cgi-bin/question.cgi?Z001+31+2
  秋です。
     http://www.ObjectClub.jp/cgi-bin/question.cgi?Z001+31+3
  冬です
     http://www.ObjectClub.jp/cgi-bin/question.cgi?Z001+31+4
  特にどれもスキじゃないです。。
     http://www.ObjectClub.jp/cgi-bin/question.cgi?Z001+31+5
  それは秘密です。
     http://www.ObjectClub.jp/cgi-bin/question.cgi?Z001+31+6
  ちょっと語らせて!
     editors@ObjectClub.jp まで詳細を!!

アンケート結果はオブジェクト倶楽部サイト上にて公開します。お楽しみに。
なお、前号「夏休み何日取得しましたか?」の結果は公開中。是非ご覧下さい。
⇒http://www.ObjectClub.jp/special/kininaru
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗編集後記

こんにちは、編集人です。観光先で存在を知ったある旧人は、キリンビールの
前身会社を設立推進した人でした。キリンビールのラベルのモデルは狛犬ですっ
て!その人の金髪から黄金色してるんですって!!その人に髭が生えてたから髭を
つけたんですって!!!キリン好きという接点を通して、その人を一気に身近に感
じました。ではみなさんにとってのオブ倶楽との接点はなんですか?みなさん
が、オブ倶楽を身近に感じてくれるよう、いろんな情報を提供していきますね。
 
今週の強引な一 *** 鶯鳴かせたこともある(ことわざ)***
「最近の若い者は、机上デバッグをやらなくてけしからん!」なんて、過去の
自分との違いを嘆いていませんか。今は今、昔は昔です。技術の進歩をどう味
方につけていくかに頭を使う時代かもしれませんね。 
(さとみ)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
● ご意見、ご感想は         ⇒このメールに返信ください
〇 配信中止、アドレス変更は ⇒http://www.ObjectClub.jp/community/object_ml/help/
〇 免責事項、過去の記事は   ⇒http://www.ObjectClub.jp/community/object_ml/
■ 発行:オブジェクト倶楽部 ⇒http://www.ObjectClub.jp/
■ 編集代表:平鍋  健児
Copyright (c)2003-2004 オブジェクト倶楽部. All Rights Reserved.
powered by Eiwa System Management, Inc.