« 2010年9月 | トップページ | 2010年11月 »

2010年10月

2010/10/31

HudsonのSubversion Tagging Plugin

ビルド管理ツールHudsonのSubversion Tagging Pluginがとても使いやすいのでメモ。
CVSにも同様のプラグインがある。

【元ネタ】
Subversion Tagging Plugin - hudson - Hudson Wiki

CVS Tagging Plugin - hudson - Hudson Wiki

HudsonのSubversion Tagging Pluginの使い方は下記を想定している。

SVNでタグ付け
例:yyyyMMdd+連番3桁

Hudsonで、指定したSVNタグをチェックアウトして、ビルドモジュールを作成

リリース後、RedmineのバージョンをSVNタグでリネームする。
又は、TracのマイルストーンをSVNタグでリネームして、完了ステータスへ更新する。
又は、Mantisの修正予定・修正済みバージョンをSVNタグでリネームして、バージョンのリリースのチェックを付けてCloseする。

つまり、SVNタグでリリース用モジュールのスナップショットを取った直後に、そのタグをHudson上で指定して、タグのソースをチェックアウトしてビルドモジュールを作る。
この方法の利点は、タグ付けされたSVNリビジョンからビルドモジュールが作られるので、SVNタグがベースラインになる。まさにSVNタグがリリース予定(リリース済)バージョンと同一視できる。

更に、HudsonでリリースされたモジュールをRedmine・Trac・Mantisのバージョン(マイルストーン)に紐づければ、イテレーションとリリース予定バージョンを対応付けることができる。
これによって、XPの小規模リリースを実現できる。

更に、下記で説明されている「ファイル指紋」を使えば、より厳格にリリース管理できる。

Hudsonを使ったアジャイルな開発入門:第3回 Hudsonによるチーム間の連携|gihyo.jp … 技術評論社

ファイル指紋は、ビルドモジュールを一意に識別する文字列。
要はファイルのMD5(ハッシュ)と同じ。

ビルドモジュールをコピーして他のサーバーへアップする時に、ファイル転送が失敗したり、誤った操作で別ファイルをコピーしたりしてしまう時もあるだろう。
そんな時に、リリース用モジュールのファイル指紋と同じかどうかチェックするようにすれば、リリース作業漏れもなくなる。
上記の記事のように、下流ビルドのプロジェクトとして、作ればいいだろう。

SW開発では最近になっても、リリース管理が手作業の部分がとても多い。
単に継続的インテグレーションするだけでなく、ビルドモジュールのリリース作業そのものも自動化して、ミスがおきないような環境にすべきだ。

RedmineやTracの情報はネットに溢れているのにHudsonの情報があまりないが、Hudsonはたくさんのプラグインで機能も豊富なので、もっと研究されるべき対象だと思う。

| | コメント (0) | トラックバック (0)

2010/10/30

【公開】AgileTourOsaka2010講演資料 "Why Ticket Driven Development is Agile? : No Ticket, No Commit!" #agileto2010 #tidd

今日のAgileTourOsaka2010に参加された方、そしてスタッフの皆様、お疲れ様でした。
台風の影響にも関わらず、最終的には約85人も聞きに来て下さって、一スタッフ、一講演者として感謝です。

僕が今日発表した資料を公開します。CC Attribution ライセンスとします。

Redmineによるタスクマネジメント実践技法」の本を購入された方も多く、そしてBlogを読んでいますよという人も多くて、一技術者として非常に励みになりました。
今日の発表資料は、過去3年間、RedmineやTrac、MantisなどのBTSとチケット駆動開発を使って、Agile開発を実践した経験と、そこから考察した内容を自分なりにまとめた集大成です。

僕が思うに、チケット駆動開発がScrumやXPなどの純粋なAgile開発よりも優れている利点の一つは、「No Ticket, No Commit!」に代表されるSCM連携によるトレーサビリティにあると思う。

トレーサビリティのおかげで、要件からビルドモジュールまで追跡できるインフラが整うので、ソースから仕様を探ることができるので、運用保守の作業が楽になり、リバースエンジニアリングも簡単になる。
何よりも、チケットにソース修正理由や変更された仕様を書くので、ソースからガラクタのコメントが消えて、ソースが綺麗になる。

今日は@kami_teruのRedmine+TiDD実践例がとても参考になりました。
Twitterにも書きました。

Twitter / akipii: @kami_teruのRedmine+TiDD実践例がとても興味深かったです。彼のチームの新人の女性に聞いたら、チケットファーストやNo Ticket, No Commitは既に実践している、と。このやり方が普通かどうか知りませんと言っていたのが印象的。#agileto2010

Twitter / akipii: @kami_teru のチームの新人の女性はRedmine+TiDDで良い習慣が自然に身に付いていると思う。良い習慣は品質の良いプログラムを生み出すはず。#agileto2010

BTSをAgile開発のタスク管理に使う発想は僕が提唱したわけではなく、まちゅさんの資料が元にあり、既に色んな人達が試しているし、もっと良い使い方もあるだろうと思います。
そういうノウハウは各人の心の中に閉まっておくのではなく、コミュニティなど社外で共有した方が他人の評価にさらされて更に強化できるし、逆に参考になる時もあります。

だから、是非皆さんの事例(プラクティスもアンチパターンも)も公開して欲しいと思います。
コミュニティという場の意見交換を通じて、より良い使い方へ昇華できるから。

IBMやMSのツールはAgile開発に確かに使いやすいかもしれないけど、値段が高く、一技術者としてそのツールの中身を触ることもできない。
だから、カスタマイズして自分たちのプロジェクトに見合った機能へ改善することもできない。

むしろオープンソースのBTSの方が、SVNやGitなどの最新のバージョン管理ツールやHudsonのような優れたビルド管理ツールと連携出来る利点があるし、不足の機能は自分たちで作ってしまえばいい。
RedmineはRuby on Railsなので、JavaやC#が書ける技術者ならば、仕様さえ決めればすぐに実装できる。

オープンソースのBTSを皆がどんどん使って改良することによって、Agile開発の運用のハードルを下げるだけでなく、Agile開発の新しい運用方法を提唱するレベルまで持っていけたらいいなと思っています。

| | コメント (0) | トラックバック (0)

2010/10/27

「Redmineによるタスクマネジメント実践技法」の感想を集めてみたpart2 #tidd

Tatsuya Saito (two_pack)さんがTiwtterで「Redmineによるタスクマネジメント実践技法」の感想を書いてくれていたので、降順にまとめておきます。
感想ありがとうございます。

【元ネタ】
Tatsuya Saito (two_pack) on Twitter

Tatsuya Saito(@two_pack) - Twilog

(以下引用開始)
「Redmineによるタスクマネジメント実践技法」読了。チームのメンバーに読ませたい一冊。 #redmine_taskmng_practice

金曜にコミットが多いというアンチパターン、か。こういうメトリクスを取れるのがTestLinkなどツールを使うべき理由の一つだよなあ。 #redmine_taskmng_practice

アジャイルテストの4象限 #redmine_taskmng_practice

TestLinkCnvMacroは、すごくいろいろなグラフが出るんだな。上司に見せたら何ていうだろ?w #redmine_taskmng_practice

TestLinkの要件とテストの紐付けはいいなあ。 #redmine_taskmng_practice

メトリクスはその目的と関連付けられなくてはなりません、か。確かに目的をはっきり認識してもらえば測定への気持ちも変わるかも。 #redmine_taskmng_practice

設計書のレビュー工程は、要件定義の代替プロセスと化しており、実際の設計の品質向上につながっていません、か。確かにそうだ。そういうことか。 #redmine_taskmng_practice

後で追えるようにタグ付けてみた。 #redmine_taskmng_practice

CIできても品質に不安が残る。だからシステムテスト、受け入れテストを後半のイテレーションで行う、か。そうだなと思うが、上工程偏重の人がいろいろ言いそうな部分。 #redmine_taskmng_practice

オープン型の権限ポリシーだと、勝手に始まり勝手に終わるから管理側から見ると危険な気がしたが、そうすることでチケット発行が習慣にできるような気もした。

TiDDは面倒なことはコンピュータに任せて、プログラミングに集中できるようにしてくれます、か。うちのメンバーがそういう雰囲気でない理由を考えないとだなあ。みんなで。

作業を端折ることが混乱の原因。確かに。そのためにもプロセスをちゃんと決めとかないとってことだな。

チケットのステータスと進捗率は関連させて定義したほうがいいのかな?解決は70%とか。

これぞまさに「自律的なチーム」だと思った。

と、車の中で妻を待ちながら、Redmineによる~をよんでいるなう

チケット入力の運用ルールさえ徹底できれば、ってところが肝だよなあ。

KPTを続けたいこと、止めること、と繋げて明示すると、発散しすぎない気がした。

開発にリズムが生まれる、というのを体感したいなあ

帰ったら届いていた! RT @akipii: 【告知】「Redmineによるタスクマネジメント実践技法」を出版します #TiDD http://bit.ly/b0Nqnl
(以上引用終り)

Twitter / two_pack: 他の人はどう考えてるのかな?と思ったら、自分の感想だった件w RT @akipii: 「Redmineによるタスクマネジメント実践技法」の感想を集めてみたpart2 #tidd http://bit.ly/bXR3oR

Twitter / two_pack: 「Redmineによるタスクマネジメント実践技法」を読んでバージョンの間隔を短くしたら、メンバーがチケット発行が楽しくなってきたかもと言い始めた!これが噂のリズム!? #tidd #redmine_taskmng_practice

第三者がどの部分に興味を持ち、どんな感想を持っているか、非常に参考になります。
他にもあれば探してみる。

| | コメント (0)

Mercurialで独立並行リリース管理

「Mercurialで独立並行リリース管理」という良い記事があったのでメモ。

【元ネタ】
Computing Memo of 2008/02/26

パッチを作った場合、そのパッチを取り込む方法はCVS・SVN・Mercurialで違いがある。
例えば、コードラインAのリビジョン修正2にコードライン3のリビジョン修正3を取り込む場合、下記のようになる。

cvs up -j 修正2 -j 修正3

svn merge -r r修正2:r修正3

(A側) hg transplant -s (A')修正3

(前略)
むっちゃ簡単! 「どのパッチを取り込む」かを指定するので指定には 「修正3」 とか一個だけでなく何個でも書け,「修正x:修正y」のようにコロンで区切って範囲指定もできる。
そして,既に適用したパッチかどうかはチェンジセットIDで確実に判別してくれるから,リバースパッチなんていうアホな自体に陥ることがない。すごい,速い,簡単!
cvsやsvnよりずっとイイ!

Mercurialの場合、パッチの単位で履歴管理しているから、取り込みたいリビジョンを指定すればいいだけ。
リバースパッチもチェックしてくれるらしい。

リバースパッチとは、UNIXの部屋 コマンド検索:patch (*BSD/Linux)によれば、「diff コマンドでパッチを作る際、ファイルの引数を逆にしてしまうと、リバースパッチと呼ばれる正反対のパッチが作成される」ものらしい。
つまり、パッチの取り込み先が真逆という間違いなのだが、Mercurialがリバースパッチも判断してくれるのはありがたい。

上記のような方法を使いたい状況は、複数のバグ修正を別々のトピックブランチで直していて、開発順序とリリース順序が異なる場合があるだろう。
バグ修正のリリース順序は、顧客の要望の重要度やプロジェクトにおける作業の優先度によって変わりやすいから、マージ作業をサポートするツールは必須だろうと思う。

Agile開発は自然に並行開発になるため、MercurialやGitのような優れたバージョン管理ツールは必須だと思う。

なお、Mercurialのコマンド一覧は下記のPDFがお手軽でよい。
GitやSVNのコマンド一覧も1頁に納まっているので、印刷しておけば楽だ。

Mercurial Cheat Sheet 日本語版 | textdrop

そして、SW構成管理のパターンは、下記PDFを参考にすればいい。
パターンによるソフトウェア構成管理 (IT Architects’ Archive―ソフトウェア開発の課題)」にある構成管理パターンを一覧化したものなので、手元に置いておくと参考になると思う。

Software Configuration Management Patterns

| | コメント (0) | トラックバック (0)

2010/10/26

MSのTestManagerはTestLinkと全く同じ!

MSのTestManagerの記事があったのでメモ。

【元ネタ】
InfoQ: 新しいテスト専用ツールを活用したテスト プロセスの包括的な管理

Microsoft Visual Studio - ソフトウェア テストの包括的な管理で生産性と品質を向上

TestManagerのホワイトペーパーを読んだら、テスト管理の概念やテストプロセスは、TestLinkと全く同じだ。
プロジェクト、テスト計画、テストスイート、テストケース、ビルドの用語も意味も、TestManager、TestLinkと全く同じ。
つまり、下記の構造を持つ。

プロジェクト◇--テスト計画◇--テストスイート◇--テストケース
テスト計画◇--ビルド

MSのTestManagerがTestLinkよりも優れている点は、MSらしくユーザインタフェースが使いやすそうで、TeamFoundationServerのような他のツールとスムーズに連携出来ること。

テスト管理ツールは、テストケースやテスト結果の管理のためにあるが、バグ管理やタスク管理、ビルド管理、バージョン管理などとも連携できなければ、その威力は半減するからだ。
それらのツールと連携して、各種のレポートやメトリクスを出力して、SW開発のリスクや課題、方針などの意思決定をサポートする方向へ進化している。

IBMもSW開発を支援するツールを最近強化していて、タスク管理やバグ管理だけでなく、テスト管理などもサポートするツールを販売している。

IBM スマートなソフトウェアで生産性を向上 Rational Jazzポータル概要 - Japan

IBMもテスト管理については、そのノウハウを公開している。

前編:テスト管理のベスト・プラクティス

第2回:テスト管理のベスト・プラクティス

最近、IBMやMSがAgile開発に力を入れている動きと、これらツールの販売は非常に密接に絡んでいるのではないだろうか、と直感している。

僕自身も、Redmineによるタスク管理、TestLinkによるテスト管理、Hudsonによるビルド管理を通じて、SW開発を効率化できただけでなく、Agile開発の有効性とその課題を経験することができた。
Agile開発は、本に書かれた知識を鵜呑みにするだけでは成功しない。
真にAgile開発を運用するには、数々のノウハウが必要であり、それを知っている人だけが、Agile開発の恩恵を受けているように思う。

多分、IBMもMSもSW開発支援ツールを通じて、有効な結果を出すことに気づき、更にツールを通じてAgile開発を小規模から大規模までのプロジェクトに応用できることを知り、SW開発支援ツールとAgile開発をセットに売り出そうとしているのではないか?

では、何故、SW開発支援ツールとAgile開発が密接に絡むのか?
Agile開発は、高度なツールなしでは運用が難しく、SW開発のキャズムが存在しているからではないか?
Agile開発はそもそも、従来のExcelやPostItによる手作業のマネジメントだけでは絵に描いた餅であって、本来の力を発揮するには、特有の開発環境を必要としていたからではないか?

僕が経験した限りでは、チケット駆動開発のような強力なタスク管理やイテレーション管理は必須だし、並行開発やソフトウェアプロダクトラインをサポートするバージョン管理も必要だし、強力なビルド管理やテスト管理によって品質を確保することも大事。
それらのノウハウが無ければ、Agile開発をいくらやりたくても多分うまくいかない。

IBMもMSもテスト管理、チケット管理、ビルド管理を統合した製品でSW開発、更にはAgile開発を支援する方向に進んでいるように見受けられる。

| | コメント (1) | トラックバック (0)

2010/10/25

CMMIはアジャイル化できるのか?

SPIJapan2010で、CMMIとアジャイルのパネルディスカッションがある話を読んだ。
その時丁度、InfoQ: 2つの世界の衝突:PMI(米国プロジェクトマネジメント協会)とアジャイルも読んで、思ったことをラフなメモ書き。
#以下はあくまでも一つの意見に過ぎない。

【元ネタ】
日本SPIコンソーシアム (JASPIC) - SPI Japan 2010

InfoQ: 2つの世界の衝突:PMI(米国プロジェクトマネジメント協会)とアジャイル

BABOKはアジャイル開発に使えるか - 記者の眼:ITpro

アジャイルはなぜ失敗するのか?~教科書には載っていない反復型開発の3つの掟: プログラマの思索

BABOKをアジャイル開発へ拡張: プログラマの思索

BABOKはアジャイル開発に使えるか: プログラマの思索

CMMIが日本で受け入れられている理由は、ソフトウェア工場の発想だと思う。
CMMIの本来の思想がどうであれ、日本のソフトウェア開発は製造業のように、前工程のミスをなくして後工程につなげて、後戻りしないような作業工程を作り出し、品質をアップしようと言う発想だと思う。

そんな発想の日本流CMMIにアジャイル開発の発想を取り込むことは可能なのだろうか?
CMMIは整然とした理論体系となっていて、現場の改善よりも現場が理論に合わせることを強制させられている。
そんなCMMIに、アジャイル開発のアイデアを取り入れたら、整合性が取れなくなるのではないか?

僕は、アジャイル開発の根本アイデアである小規模リリースをCMMIがどのように取り入れているのか、が知りたい。
イテレーションという概念をどのようにプロセスに実装するのか?
多分、そのままでは受け入れにくい。
繰り返し型開発と言いながらも、ScrumやXPのようなインクリメンタル型ではなく、RUPのようなイテレーティブ型になっているだろう。
多分、そのままではプロセスとして運用しにくいだろう。

PMIがアジャイルに反論しているのは、PMBOKがアジャイルとは違った発想から成り立ち、発展してきた経緯を考えれば当然だ。
多分、折衷案はありえないと思う。
せいぜいスコープ管理が似ているとか、そういうレベルでしかないと思う。

BABOKも同様だと思う。
BABOKがシステム化提案や要件の引き出しという超上流工程でアジャイル化しようとすれば、それはRUPのようなイテレーティブな繰り返し型開発にならざるを得ず、それは純粋なアジャイル開発ではないと思う。

CMMI・PMBOK・BABOKのアジャイル化に力を入れるよりも、アジャイル開発がそれらの良い所を取り入れて、アジャイル開発を更に理論として強化する方が生産的な気がしている。

| | コメント (0) | トラックバック (0)

2010/10/24

てつ。さんのAgile Tour Osaka 2010の予習ガイド #agileto2010

てつ。さんが今週末に迫ったAgile Tour Osaka 2010の予習ポイントを解説してくれているのでメモ。

【元ネタ】
Always All Ways: [IT] Agile Tour Osaka 2010 予習ガイド

おかげさまで、定員100人で満員御礼です。
#キャンセルが出れば予約は可能ですが。

僕個人は牛尾さんの講演が楽しみ。
僕の発表も「Redmineによるタスクマネジメント実践技法」の要約に変えました。
既にチケット駆動開発を運用している人達には、総復習のイメージで聞いてもらえればと思います。

世界中のアジャイラーとどのように共演できるのか、ちょっと楽しみです。

| | コメント (0) | トラックバック (0)

2010/10/23

Mantisのチケット集計機能にある最大放置日数と平均完了日数

Mantisには要約(summary_page.php)というWebページがチケット集計機能に相当する。
そこに表示されている「最大放置日数」「平均完了日数」についてメモ。

【元ネタ】
MantisBT Git - mantisbt.git/blob - lang/strings_japanese.txt

Mantisの日本語化の文言

脱サラ大学生のプログラム日記~Mantisカテゴリ

アジャイル開発と品質管理の関係: プログラマの思索

Mantisの要約ページは、Redmineのサマリ画面のように、優先度・開発者・起票者などの観点でチケット数を集計表示してくれる。
その中で興味を引いたメトリクスは、「最大放置日数」「平均完了日数」。

【1】最大放置日数は、チケットが起票されてから未完了のまま放置されている期間を表示している。
RedmineやTracでチケット駆動開発を実践してみると、チケットが放置される時は多い。

例えば、チケットに起票された課題を解決するには、顧客や上司の同意が必要だったり、回答を得て課題が解決したと思っても見直してみたら、実は別の不明点が出てきたりする時がある。
あるいは、結合テスト工程でバグがたくさん出て、チケットが乱発されてしまい、チケットの棚卸しが出来ていない時もあるだろう。
ダメなプロジェクトリーダーほど、チケットの棚卸し、つまりチケットの優先順位付けを判断出来ていない。

最大放置日数が長いチケットがたくさんあるほど、チケット管理がうまく機能されていない状況を意味する。
せっかくプロジェクト管理をチケット管理に置き換えたとしても、次々に起票されるチケットが解決されなければ、プロジェクトは停滞していることと同じ。

チケット駆動開発では、チケットは単なるタスクや障害だけでなく、設計上の課題や実装リスクも起票されるので、それらのチケットを管理することはリスク管理につながる。
次々に起票されるチケットはプロジェクトのリスクとして見える化されたわけだから、プロジェクトリーダーはそれらチケットに対して、あらゆる手を使って解決しなければならない責任を負っている。

特にバグが発見されて、そのチケットの難易度がたとえ簡単であったとしても、放置されている期間が長いほど、残存バグの解決コストは大きくなる。
残存バグの解決コストは、難易度×最大放置日数だからだ。
たとえ簡単なバグであっても、発見されずに放置されれば、リリース後の改修コストは非常に高くつく。

【2】平均完了日数は、チケットが起票されてから完了するまでの平均日数を表示している。
例えば、バグが発見されてから、開発者が修正して、テスターが検証して解決するまでの期間に相当する。

平均完了日数はまさに、ソフトウェアのMTTR(平均修復時間)を表している。

平均修復時間 - Wikipedia

チケット駆動開発の場合、イテレーション単位にAgileに開発していくから、平均完了日数がイテレーション期間よりも短くなるように調整しなければ、そもそもリリースできないだろう。
Scrumなら4週間、XPなら2~4週間のサイクルで小刻みにリリースする開発スタイルを実践したいならば、平均完了日数はその期間以下に抑える必要がある。

普通のチケットは1人日以下で終わる時が多いだろうが、テストやレビューで検証NGとなって差し戻しになったり、設計上の課題を質問して回答を得ても精査したら整合性があっていなかったので再質問する時もあるだろう。
又、プロジェクトの運営上、放置すると意思決定したチケットもあるだろう。
そうすれば、結局、平均完了日数は、例えば5日とか10日などのように長くなる。

逆に言えば、チケットの平均完了日数よりも短いイテレーションでAgileに開発することは不可能。
つまり、開発チームが実現できるイテレーションの長さには平均完了日数という制約がある。

リーンソフトウェア開発を運用したいなら、毎日リリースするわけだから、平均完了日数が1日以下にならなければ、そもそも実現できないだろう。

ここで、アジャイル開発と品質管理の関係: プログラマの思索にも書いたように、「アジャイル開発はMTTRを重視している」意見もあるらしい。
リファクタリング、テスト自動化、継続的インテグレーション等のプラクティスは、保守性という品質を高めてソースを修正しやすくすることを目指している。つまり、バグ修正工数と言うMTTRを短くすることにも注力していることにつながる。

平均完了日数が長いシステムは、経験的に品質が悪いように思う。
簡単に直せるバグに必要以上に時間をかけてしまうわけだから、作業効率が悪くなっているのだろう。
例えば、たくさんのバグが発見されてチケットが乱発されてしまって、チームが混乱してしまい、作業効率が悪くなっている状況があげられるだろう。

個人的には、Redmineでも「最大放置日数」「平均完了日数」をプロジェクト単位、イテレーション単位に集計表示してくれると面白いだろうと思う。
チケットの「最大放置日数」「平均完了日数」はシステムの品質とプロジェクトの生産性を映し出す鏡だからだ。

| | コメント (0) | トラックバック (0)

30分でだいたいわかるアジャイル開発

2010/10/22に角谷さんがSlideShare「30分でだいたいわかるアジャイル開発」を公開されていたのでメモ。
とても分かりやすい。

| | コメント (0) | トラックバック (0)

2010/10/22

TracやMantisによるチケット駆動開発の運用方法

最近、RedmineではなくてTracやMantisを使う機会が多い。
チケット駆動開発をTracやMantisで運用する方法について考えたことをメモ。

【チケット駆動開発を運用する時の注意点】
Redmineでなくても、TracやMantisでもチケットをXPのタスクカードのように扱うことはできる。
BTSのチケット管理をプロジェクト管理に置き換える発想は、Redmineの場合と変わらない。

しかし、Redmineに比べると、TracやMantisによるチケット駆動開発とAgile開発を組み合わせて運用するためには、いくつかのノウハウが必要だ。
僕の経験では、Redmineに比べるとTracやMantisは、イテレーション管理とSCM連携がやりにくい。

【1】Agile開発の基本である小規模リリースを実現するには、イテレーションをBTSに実装しなければならない。
Redmineなら、バージョンがそのまま当てはまるのですごく自然だ。
しかし、そのイテレーションをTracやMantisへ当てはめるにはノウハウが必要。

その内容については以前書いた。

バージョンのないRedmineプロジェクト~TiDD初心者が陥りやすい罠: プログラマの思索

Agile開発の肝はイテレーションにあり: プログラマの思索

RedmineとTracの機能比較: プログラマの思索

Mantisの使い方: プログラマの思索

つまり、TracやMantisにもバージョンの概念はあるし、ロードマップの機能もあるので、それを流用すればいい。
例えば、Mantisのロードマップや変更履歴は下記のようになるから、バージョンをリリースしたバージョンでリネームする運用にすればいい。

ロードマップ - MantisBT

変更履歴 - MantisBT

Tracのロードマップも同様。

Roadmap -- WordPress Trac

【2】又、まちゅさんが発見したプラクティスである「No Ticket, No Commit!」のご利益を被るには、BTSにSCM連携の機能がなくてはならない。
Redmineなら、SCMリポジトリを簡単に閲覧できるだけでなく、「fixes」「refs」などのコミットログを使い分けるとステータスを自動更新できる機能があったり、チケット単位にSCMリビジョンの履歴を表示してくれたり、機能が豊富だ。

RedmineがExcelよりも素晴らしい点: プログラマの思索

チケット駆動開発でXPの計画ゲームを実施する: プログラマの思索

しかし、TracやMantisでは、コミットログとチケットNoをそもそも紐づける設定方法が結構面倒。
だから、サポートするためのいくつかの方法が必要だと思う。

Mantisなら下記のように、SVNコミットフックのスクリプトを用意して、MantisへログインするSVN用ユーザを作り、コミットするとコミットログのチケットNoがリンクする仕掛けを準備する必要がある。

mantis - バグ管理システム - SCMとの統合

むしろ、TortoiseSVNに元々付属しているBTSと連携する機能を使った方が楽だ。
その方法については、以前からよく知られている。

プロジェクト設定

Tracなら下記のやり方がある。

ソフト/Bug Tracking/trac/TortoiseSVNやSubclipseとチケットを連動 - discypus

TracDoc/TortoriseSVNTrac -- HirobeのHack倉庫 -- Trac

もちろんMantisでも方法は同様だ。

TortoiseSVNとITS・BTSの連携 - idesaku blog

※TortoiseSVNからBTSへ連携する方法については既に過去に調べているので、下記もご参考下さい。

TortoiseSVNからBTSと連携する: プログラマの思索

TortoiseSVN から Redmineと連携する: プログラマの思索

TortoiseHgもRedmineチケットへの接続をサポート: プログラマの思索

但し、MantisやTracでは、チケット単位にSCMリビジョンを表示してくれる機能はないみたい。
ソースからチケットNoを辿ることはできるけれど、チケットから関係するSCMリビジョンに辿るのは自動化されていないように思う。

SCM連携の利点は、要件からビルドモジュールまでのトレーサビリティを実現してくれることにある。
このトレーサビリティによって、機能追加の影響調査や障害修正時の同類バグ調査がやりやすくなる。
だから改善の余地はあると思う。

【3】でも、TracやMantisを使ってみて、Redmineとは違う発想のBTSなのだと思うようになった。

Tracはクエリ機能のおかげで、レポート出力の機能が豊富。
自分でSQLを書けば、いくらでも好きなレポートを出力できる。
そして、TracはBTSの中で最もWikiが書きやすい。
共有したい情報があれば、Wikiに自由に書いていけばいい。

Mantisは障害管理だけに使うならば、BTSの中で最強だと思う。
Mantisチケットのレイアウトはまさに障害報告票をWeb化した形式なので、テスターやプログラマは特に違和感なくBTSを運用できるだろう。
又、Mantisのチケット一覧は、ステータスごとに色分けしてくれるので、カラフルで見やすい。

各種BTSを触ってみた感想は、BTSの運用こそがSW開発の基本のような気がしたこと。
BTSの機能には、世界中の開発者のベストプラクティスが含まれている。
BTSには、過去のSW開発の歴史から得られたノウハウがたくさん詰まっているのだ。

| | コメント (0) | トラックバック (0)

2010/10/21

電子書籍はSaaSの一つに過ぎない

10/18に放映された「NHK クローズアップ現代 電子書籍が「本」を変える」の記事があったのでメモ。
僕は見ていないので、あくまでも思ったことをメモ。

【元ネタ】
NHK クローズアップ現代 電子書籍が「本」を変える

NHK クローズアップ現代 『電子書籍 新時代の衝撃』を観て・・・ ? Agile Cat ― Azure & Hadoop ― Talking Book

日本の大企業には米クラウド勢の恐ろしさを知らない無垢な人が多すぎる ? Agile Cat ― Azure & Hadoop ― Talking Book

「日本の大企業にはGoogle、Amazon、Appleの恐ろしさを知らない無垢な人が多すぎる」/「図書館は国会図書館がやってくれないと自分ではできないと考えている?」・・・「再編される出版コンテンツ市場と図書館の役割」:三田図書館・情報学会第144回月例会 - かたつむりは電子図書館の夢をみるか

大手メディアは今どこも厳しくなっているのに、Google、Amazon、AppleがWebやスマートフォンでまさに世界を変えようとしている恐ろしさを知らない人が多いらしい。

(前略)
朝日新聞から来たのは書評の担当であった人でもあるが、そのとき半分からかい、半分本気でいったのは、「朝日新聞は大企業だと思っているだろうが、零細である我々(角川)から見たら朝日新聞は Amazon より小さい。本当に(朝日新聞で)できるの?」と言ったら絶句していた。日本の大企業には Google、Amazon、Apple の恐ろしさを知らない無垢な人々が多すぎる。
(後略)

電子書籍はSaaSの一つに過ぎないという指摘は秀逸。
iTunesも音楽配信というSaaSであり、SaaSのビジネスモデルとして最も成功した一つ。
AmazonもGoogleも同様のビジネスモデルを作ろうとしている。


(前略)
なんと言うか、クラウド・コンピューティング全体から見ると、電子書籍といっても 1つの SaaS に過ぎないわけですが、社会のあり方や個人のライフスタイルを、新しい概念で置き換えていく際の、モデル・ケースになることに間違いはありません。
(後略)

上記の指摘を読んで、以前、XP祭り2005でMSの萩原さんが話したことを思い出す。

XP祭り2005の感想: プログラマの思索

「ITを使って革命を起こしたい」
「現在は鉄道が普及し始めた時代と同じ。百貨店は鉄道という産業が興隆して作られた。鉄道によって、消費都市と生産都市が結ばれ、都市の拠点に百貨店が作られて、新しい産業ができた」
「ITも同じで、ITの普及によって新しい産業を作り出せるはず。今はコスト削減とかつまらないことにITを使っている」

ITを使って人々のライフスタイルが変わった例として、AppleのiTunesとiPod/iPhone/iPad、AmazonやGoogleのWebサービスがある。
SaaSが人々の生活も価値観もより豊かになるように変えた。
SaaSが世界を変える。
そしてSaaSはAgile開発と相性がいい。

電子書籍に関して興味を持っていることは、オープンソースから端を発したクリエイティブ・コモンズと著作権の関係。
電子書籍がビジネスモデルとして成功するには、著作権の問題をクリアしなければならない。
その問題の糸口には、クリエイティブ・コモンズが鍵を握っていると直感している。
クリエイティブ・コモンズについては、もう少し考えてみる。

| | コメント (1) | トラックバック (0)

2010/10/20

チケット駆動開発から発生したチームの変化

さかばさんの記事とyusuke-kokuboさんのつぶやきを読んで思ったことをメモ。

【元ネタ】
[#TiDD] チケット駆動開発はプロジェクト成功の3C(Commitment、Communication、Collaboration)を実現する: ソフトウェアさかば

Twitter / yusuke-kokubo: 社内Redmineのチケットに「後で振り返る?:Boolean」というカスタムフィールドを追加した。

僕もRedmine導入前は、Excelで課題管理、タスク管理をやっていたし、Excelのテスト仕様書でテストして、Excelで障害管理もやっていた。
プロジェクトをどう進めればよいか、は自分では見えていたけれど、制御するのは非常に難しかった。

Redmineでチケット駆動開発を運用し始めて、色んな事に気づいた。
単にAgile開発を初めて実際に運用できただけでない。

従来からやっていた朝会や、新しく取り入れたふりかえりがスムーズになじんだ。
朝会でロードマップを見ながら説明するのが、チームにゴールを提示しているのだと気付いた。
ふりかえりで、僕が作ったワークフローに苦情が出て、むしろ開発者が議論しながらワークフローを作り出したこともあった。
ふりかえり後、私が思っていたことは他の人も同じように思っていたんですね、と感想を漏らした若手の女性もいた。
朝会やふりかえりはチーム力を強化してくれる。

定期的なリリースのサイクルが自然にイテレーションのリズムとして、開発チームの速度になった。
チケットを登録して消し込んでいく運用に開発者自身も慣れて、作業を始める前に必ずチケットをToDo代わりに起票するようになった。

開発中に不明な仕様が出たら課題を必ずチケットに登録して、課題の回答を得てソースに反映したらチケットを解決するというワークフローに開発者も慣れたが、管理者自身も今抱える課題が一覧表示できるのは良かった。
たくさん出てきた課題こそがリスクであり、それを解決しなければプロジェクトは前進しないから。

「No Ticket, No Commit!」の運用ルールに開発者自身が慣れると、そのルールに則っていない別チームの開発者に苦情を言うようになった。コミットログに変更理由やチケットNoを書かないと、何故そんな修正をしたのか、分からないので作業に支障が出る、と。
又、コミットログを後で振り返ると、やる気が出てくるみたい。

StatSVNやStatCVSでソースのLOCやコミット数を毎晩Cronで出力して公開したら、特に若手のモチベーションが上がった。
自分は半年間で1万行も書けたのか、とやる気が出てきたみたい。
公開された開発者ごとのLOCは、まさにプロジェクトへの開発者の貢献度を意味するから。

チケット駆動開発で、単に開発やプロジェクト管理の生産性が上がるだけではなく、各人の作業が見える化することによって、コミュニケーションが促進される。
そして、定期的なリズムがあるからこそ、リリース後にチーム独自の運用ルールを見直して、更に改善していこうという雰囲気が生まれる。

チケット駆動開発はチームビルディングも強化してくれるのだ。

| | コメント (0) | トラックバック (0)

2010/10/19

TortoiseHg+hgsubversionの導入方法

TortoiseHg+hgsubversionの導入方法の記事があったのでメモ。

【元ネタ】
hgsubversionの導入 - 文殊堂

Gitはgit-svnという優れたツールがあるが、Mercurialはhgsubversionを使うといい。
但し、結構はまる。
上記の方法を試すと良いと思う。

git-svnやhgsubversionの利点は、中央集権SCMであるSVNをあたかも分散バージョン管理のリポジトリかのように扱えること。
マスターリポジトリはSVN、開発者のプライベートブランチはGitやMercurialと使い分けて、trunkから派生させて機能追加して実験したり、トピックブランチ上でパッチを作ったり、色々試せる。

特に、修正の順序とリリースの順序が異なる障害修正のパッチを従来よりも楽にコントロールできるのはよい。

Mercurial以前と以後のチケット駆動開発: プログラマの思索

また、構成管理ツールを使うと、やる気が出てくるという副次的効果もある。
作業履歴からいつでもUndo、Redoできるのは、自由に思索する時に都合がいい。

バージョン管理ツールを使うとやる気が出る: プログラマの思索

構成管理は実は、Agile開発と密接に関係する。
Agile開発は従来の開発スタイルよりも、マシンのリソースが有り余っているという時代背景と密接に関係しているからだ。
豊富なマシンリソースをふんだんに使って、本来のプログラミングに専念できる開発スタイルをAgile開発は目指している。

アジャイル開発が並行開発になる理由: プログラマの思索

プロジェクト管理=ソフトウェア構成管理: プログラマの思索

ソフトウェア構成管理に至るまでの道のり: プログラマの思索

アジャイル開発は構成管理ツールが必須条件だ: プログラマの思索

| | コメント (1) | トラックバック (0)

2010/10/17

「Redmineによるタスクマネジメント実践技法」の感想を集めてみた

まだ発売されて1週間も経っていませんが「Redmineによるタスクマネジメント実践技法」の感想を集めてみた。
皆様ありがとうございます。

【元ネタ1】
「Redmineによるタスクマネジメント実践技法」を読んだ

創薬研究という仕事の観点からチケット駆動開発について書かれているので興味深い。

【元ネタ2】
Twitter / Wataru Yukawa: Redmine本読了。ブログ読んでいるせいか真新しいものは無いが類書も見当たらないので貴重だとおもう。

Twitter / Wataru Yukawa: Redmine本第二部読了。ブログを整理したものという感じだな。結構デジャブなかんじ。

Twitter / Wataru Yukawa: 第一部読了。下流工程でのチケット駆動開発は現実的でいいかも。チケット=バグという運用だとわかりいいかも。

Twitter / Wataru Yukawa: 3章まで読了。まあそんなに新しい発見は無い感じ。

Twitter / Wataru Yukawa: Redmine本のp39にShibuya.tracという言葉が出てきた。

Twitter / Wataru Yukawa:今日買った本。 http://plixi.com/p/50965996

僕のBlogを細かい所まで読んで下さっているらしく、デジャブみたいという感想とのこと。
どうもありがとうございます。

他にもあったら探してみる。

【追記】
他にこんな感想もあったので、ちょっとびっくり。
僕のBlogをそれほど読み込んでいる人は結構多いのかな?

Twitter / ASR: まだあまり読めてませんが同じ感じをもちました。@akipiiさんのおっかけしてる方には情報の整理用途でしょうかね RT @wyukawa: Redmine本第二部読了。ブログを整理したものという感じだな。結構デジャブなかんじ。

Twitter / wyukawa: 僕のつぶやきを引用していただいて恐縮です。f^_^;)RT @akipii: 「Redmineによるタスクマネジメント実践技法」の感想を集めてみた http://bit.ly/cZ8puW

Twitter / tkusukawa: もちろん気づいてましたよ。p11で親近感upでした。 RT @haru_iida: 『Redmineによるタスクマネジメント実践技法』の11ページに載ってるチケットが、私が以前www.redmine.orgに投稿したバグチケットだということに気づいた。

| | コメント (0) | トラックバック (0)

日本製の携帯がなくなる日

Docomo携帯からGmailへログインできない症状が頻繁にある。
原因を調べたら下記の記事を見つけた。

携帯からGmailへログインできない■【特効楽】■ - mut3の日記

携帯電話からgmailがログインできない件 - tangkai-hatiの日記

どうやら、ドコモで2010年6月に新しく追加された以下のIPだとGmailにログインできない。
 202.229.176.0/24
 202.229.177.0/24
 202.229.178.0/24

http://taruo.net/e/ で携帯のIPアドレスを調べると、確かに、202から始まるIPアドレスがアサインされていたらGMailにログインできない。
うーん、そろそろDocomo携帯を止めてiPhoneへ移行すべきなのか?

DocomoにせよAUにせよ、スマートフォンで頑張ろうと言う熱気があまり感じられない。
Android携帯が今後流行するだろうと言われているけれど、実際に使い勝手に関してはiPhoneとは雲泥の差がある。

日本の企業は、たくさんの部品のすり合わせというニッチな技術と品質管理で世界を制覇してきたが、そのやり方が通用しなくなってきた。
その象徴が日本の携帯電話。
日本の携帯は、ハードとソフトを組み合わせた組込製品の中で最も最先端な地点にいるが、いつの間にか世界の潮流から乗り遅れている。

日本製ケータイがなくなる日  :日本経済新聞

アメリカのテレビ産業は既に亡くなったように、日本の携帯電話メーカーも衰亡の危機にあるらしい。
上記の記事にあるように「テレビ好きのアメリカ人は外国製のテレビを見ているように、携帯好きの日本人は外国製の携帯電話を使っている」状況に近づきつつあるのかもしれない。

| | コメント (1) | トラックバック (0)

「Redmineによるタスクマネジメント実践技法」はお早めに!

Redmine.JP | Redmine on Twitterを見ると、「Redmineによるタスクマネジメント実践技法」が引き続き好調なようです。
確かに初版はそれほど多くはないので、興味のある方は早めに購入されることをお勧めします。

【元ネタ】
[#TiDD] 好評「Redmineによるタスクマネジメント実践技法」お早めに!: ソフトウェアさかば

Twitter / kzfm: これは良かった。必読! - Redmineによるタスクマネジメント実践技法

Twitter / ODA Terutaka: SIは「お客さんをIT化」するサービス業w RT @Judas_Seven: Redmineをどうにか安定して運用したい。運用したい。TDDとかしたい。というか、管理管理うるさいくせに未だにローカルなエクセル管理をしたいってどういうこと、IT系って名乗っていいの?

Redmineによるタスクマネジメント実践技法」では、Redmineによるチケット駆動開発とAgile開発を組み合わせた運用方法を中心に解説していますが、Redmineの最新バージョン1.0.1(今は1.0.2)とプラグインについても補足しています。

Ver1.0.1で注目すべき機能は、SubtaskingとREST APIの2つですが、Subtaskingについてはチケットを要件管理として使うアイデア、REST APIは他システムとの連携に使うアイデアとして説明しています。
但し、Redmineのソースを絡めた説明は特にしていませんのでご注意ください。

又、プラグインについては、Hudson・コードレビュー・CSVインポート・Charts・工数管理などをあげて、どの場面でどのように運用すると効果的なのか、について説明しています。
但し、インストール方法は詳しく説明していませんのでご注意ください。

更にRedmineプラグインは、執筆時に比べると、現在は数も質も大幅に増えています。
Redmine本家やr-labsを参考にした方が最新の情報が手に入ります。

Redmine - Plugin List - Redmine

r-labs - Redmineプラグイン集 - Redmine

Redmineの機能に飽き足りない人は、自分でプラグインを作ることをオススメします。
Railsなのでフレームワークのルールに慣れれば簡単に書けますし、プラグインの作成方法はネット上にたくさん情報があります。

r-labs - プラグイン チュートリアル - Redmine

Redmine プラグイン開発入門 - mallowlabsの備忘録

Ruby Freaks Lounge:第34回 Redmineプラグイン開発(1)|gihyo.jp … 技術評論社

特に、チケット集計による進捗報告や他システム(Hudson、TestLinkなど)連携などの機能は自作した方が早いかもしれません。

| | コメント (0) | トラックバック (0)

2010/10/16

Redmineのアーキテクチャ

Redmineのアーキテクチャを知るための方法を公開していた記事をメモ。
これは素晴らしい。

【元ネタ】
Redmine の ERD を描いてみました - kiwamu日記

MOONGIFT : Railsを見える化「RailRoad」 オープンソース・ソフトウェア/フリーウェアを毎日紹介

RailRoad diagrams generator

ruby-graphviz を使う - Loud Minority

GraphvizをRubyから使う | Jottin, Jotting!

Railsを見える化するツールRailRoadを使えば、コントローラやモデル一覧を自動生成できる。
真似てやってみた。

gem install ruby-graphviz
gem install railroad

railroad -o controller.dot -C
railroad -o model.dot -M
neato -Tpng controller.dot > controller.png
neato -Tpng model.dot > model.png

但し、ER図はDBDesignerなど他のツールでリバースする。
関係は自分で引かないといけないが、一覧できるのはスゴクいい。
Rubyはメタプログラミングが強いから、ソースコードからアーキテクチャを再現するためのリバースエンジニアリングの手法が充実しているのだろうと想像する。

redmineのテーブルは47個ぐらいで、そんなに多くない。
だからER図を一度きちんと書いてみたいな~と思っていたが、Redmineの構造を知る上でこのツールは良い。
ER図の関連さえ分かれば、モデルやコントローラーはテーブル間の関係(relation)や業務ロジックを実装しているに過ぎないから。

興味を惹いたのは、ワークフローを管理するテーブル。
trackers テーブルとworkflows テーブルが用意されているので、新規のトラッカーを追加したり、ワークフローを新規追加するのが可能になっていて、すごく柔軟な作りになってる。

きちんと見ていないけど、テーブルの構造はかなり正規化されているので、機能追加やプラグインによる機能拡張がやりやすい構造になっているのだろう。
Redmineのプラグインを作りたい人は、上記のツールを使って、ER図やアプリケーションの構造に目を通しておいた方が、良いアプリケーションを作れるようになるだろう。

できれば次回の本のネタにしておきたい(笑)

| | コメント (0) | トラックバック (0)

2010/10/15

自社製品をドッグフードで開発

自社製品をドッグフードで開発する記事について、ラフなメモ書き。

【元ネタ】
「ドッグフード」もミッション、マイクロソフトIT部門の仕事とは? (2/2) - ITmedia エンタープライズ

マイクロソフトが社員に勧める“ドッグフード”栄養学 - CNET Japan

上記の記事に書かれているように、ドッグフードとは、「作ったものが美味しいかどうか、まずは自分たちで試す」の通り、社外にβ版や評価版、正式版をリリースする以前に、社員自らが自社製品を試用する全社規模での取り組みを指す。
ドッグフードはパッケージ製品や組込製品など、自社で開発した製品をまず自分たちが運用してユーザビリティを向上させることが目的の一つ。

ソフトウェア開発では、ドッグフードと言う開発スタイルはすごく重要な気がする。
普通の受託開発ではドッグフードがそもそもありえない。自社で必要なソフトではないし、システムの著作権が顧客にある時が多いから契約上ありえない。
だから、テストが足りない時もあるだろう。

パッケージ製品や組込製品を自社で開発している会社ならば、ドッグフードは可能だろう。
ドッグフードによって、自社製品の品質やユーザビリティを向上させるだけでなく、運用ノウハウを蓄積して自社の業務の生産性を上げられれば、なおよい。
製品とプロセスをセットにして販売すれば、コンサルティングも可能になるだろう。
つまり、本来の意味で、ITのツールを使ったソリューションになる。

ソフトウェアを売るのではなく、顧客が抱える問題に対してIT化によるソリューションを提供する。
それが本来のITサービス業のはず。

しかし、実はSIer自身の業務はIT化がすごく遅れている。
Excelによるプロジェクト管理が然り、自分たちの売上やコストをPOSのようにリアルタイムに管理出来ていないことも然り。
まずは、ドッグフードによってSI自身の生産性を上げることが重要なのかもしれない。
そして、そのソリューションの一つにチケット駆動開発があるのかもしれない。

| | コメント (0) | トラックバック (0)

「Redmineによるタスクマネジメント実践技法」が販売好調

AmazonのTwitterを見ると「Redmineによるタスクマネジメント実践技法」が販売好調のようです。
皆様、ありがとうございます(m_m)

【2010/10/14】
Twitter / book ranking jp: 【コンピュータ・インターネット ベストセラー9位】 Redmineによるタスクマネジメント実践技法 http://amzn.to/csjifm , 【ヒット商品9位(->)】

【2010/10/15】
Twitter / book ranking jp: 【コンピュータ・インターネット ベストセラー6位】 Redmineによるタスクマネジメント実践技法 http://amzn.to/csjifm , 【ヒット商品6位(->)】 .

Twitter / book ranking jp: 【コンピュータ・インターネット ベストセラー4位】 Redmineによるタスクマネジメント実践技法 http://amzn.to/csjifm , 【ヒット商品4位(->)】

いつもお世話になっているRedmine.JP | Redmine on Twitterを見ていると、購入された方のコメントがチラホラと表示されます。

ツール(Redmine)とプロセス(チケット駆動開発)をセットに説明した書籍は今までに無かったので、ニッチなニーズをつかんでいるのかなと思います。

| | コメント (0) | トラックバック (0)

2010/10/13

イテレーションはSW開発で何故重要なのか?

バージョンのないRedmineプロジェクト~TiDD初心者が陥りやすい罠が思いのほか評価されていたので、理由を再考してみる。
以下、ラフなメモ書き。

【元ネタ】
アジャイルはなぜ失敗するのか?~教科書には載っていない反復型開発の3つの掟(1/4):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

バージョンのないRedmineプロジェクト~TiDD初心者が陥りやすい罠: プログラマの思索

チケット駆動開発の本質はバージョン・ファースト: プログラマの思索

牛尾さんが書いているように、イテレーションはAgile開発で最も特徴的な概念だ。
その発想はすぐに理解できるが、実際に実践してみると、そんなに簡単に運用できるものではない。
何故、イテレーションを実際のSW開発に運用するのが難しいのだろうか?

僕の数少ない経験上、イテレーションを実際の開発プロセスに実装した場合、3つの意味を持つと思っている。
一つ目はリリース予定バージョン。
二つ目はマイルストーン。
三つ目はベースライン。
この三つの意味を意識して使っていないから、イテレーションの意味を混同しているのではないか?

【1】イテレーションは構成管理上のリリース予定バージョン。
リリース予定バージョンの意味は、イテレーションがリリースできる最小の単位であることを意味する。
「リリースできる」という意味が重要だ。

WF型開発のように、工程単位に開発していく場合、要件定義が終わっただけ、設計が終わっただけでは、リリースとは呼ばない。
実際のシステムは作られていないし、動かないから、そもそもリリースとは言えない。

だから、Agile開発のようにイテレーションをリリース予定バージョンに対応付けると、小刻みに機能拡張しながら頻繁にリリースする開発スタイルになる。
これがXPの小規模リリースのプラクティスになる。

小規模リリースはインクリメンタル型開発の一番良い具体例。
リリースできる単位まで機能を分割し、イテレーション期間中に要件定義から設計、開発、テスト、デプロイまで全てを行う。
この開発スタイルを実現するために、テスト駆動開発で単体テスト品質は保証し、継続的インテグレーションで常時リリース可能な品質を保つ仕掛けが必要になる。

そのやり方は、アルゴリズムの分割統治やスクリプト言語の編集・実行・確認の手法に似ているから、開発者には馴染みやすい。

そして、プロジェクトマネジメントの観点では、品質・コスト・納期の三角形ではなく、スコープ・コスト・納期の三角形で制御するようになる。
つまり、品質やコストや納期は開発人数やイテレーション期間が固定のため、スコープをいじって調整するしかないことを意味する。
PMBOKではスコープ管理をとても重視するが、Agile開発も同様で、スコープを調整することによって、納期やコストのバランスを取ろうとする。

リリース予定バージョンを細かくたくさん作って運用すると、それらをまとめると、自然にリリース計画(ロードマップ)になる。
SW開発でもっとも重要な計画書はリリース計画だ。
いつ何をリリースするのか、を決めるのがマネージャの仕事なのだ。

そしてリリース済みのバージョンは、リリース履歴(ChangeLog)になる。
リリース履歴を見れば、システムがどのように修正されて成長したのか、一目で分かる。

【2】イテレーションはプロジェクトマネジメント上のマイルストーン。
マイルストーンは例えば、普通は上司へ進捗報告したり、顧客へ要件定義に出かけるタイミングに相当する。

Agile開発は上流工程へ応用しにくいと言われる最大の原因の一つは、イテレーションの概念を要件定義や上流工程の設計プロセスへ上手く運用出来ていないからだと思う。
でも、設計工程であっても、要件定義書や設計書を作るというプロセスがあって、アウトプットが出て、上司や顧客がそれを評価するサイクルになっている。
だから、アウトプットを評価するタイミングをマイルストーンに区切って、イテレーション単位に設計書を作ってブラッシュアップしていくプロセスにすればいい。

但し、そのプロセスの構造はXPの小規模リリースのような漸進型開発ではなく、RUP(Rationl Unified Process)のような反復型開発になっているのに注意しよう。
つまり、システム全体を薄く作りながら、アーキテクチャや品質を高めていくスタイル。
この手法も繰り返し型開発の一例であり、特に上流工程で有効な手法。

でも、反復型開発が漸進型開発よりも難しいのは、システム全体を薄く作りながらブラッシュアップしていく方法を取るので、スコープ管理が難しいこと。
要求の変更や要件漏れ、設計ミスなどを取り込んでいくうちに、スコープがどんどん発散しがち。
反復型開発を運用する時は、モデリング手法などのスキルが高くなければ、同じ作業を何度も繰り返すだけで成果物の品質が上がらないだろう。

逆に言うと、小規模リリースの場合、きちんと動くものをリリースすると言うわけだから、顧客の要望のスコープにも制限をかけることができる。
実際、Scrumでは1ヶ月のスプリント期間中は仕様変更を認めないように、イテレーション期間中はスコープを固定する。

僕がAgile開発を運用した経験上、小規模リリースをベースに、状況に応じて反復型開発を使ってシステムのアーキテクチャや品質を作り込むイテレーションを別途設けるなどすれば、繰り返し型開発を制御できると思う。

【3】イテレーションは変更管理上のベースライン。
ベースラインとは、プロジェクトの成果物に対し、顧客や上司などのステークホルダーが承認した状態を指す。
実際のプロジェクトでは、要求の変更や緊急の障害修正で、設計書やソースが頻繁に変わる。
ベースラインがあるからこそ、修正された成果物とベースラインの差分を計測して、工数や品質をステークホルダーが評価して、リリースするかどうか決定する。

つまり、ベースラインはチェックポイントでもある。
ベースラインがあるから、修正したソースをリリースした直後にトラブルが発生しても、前回のベースラインまで戻せばいい。
いつでも以前のベースラインは再現可能。
ベースラインがあるから、UndoやRedoが可能。

又、ベースラインは単なるタグ付けだけではない。
ステークホルダー全員が承認したというマネジメント上の意思決定も含む。
ダメなプロジェクトは、「ステークホルダーが決める」という行為を理解出来ていない人が多いために、いつまで経っても何も決まらない。

変更管理はそもそも、顧客から変更要求(Request for Change)が発生して、元々確定していた要件や仕様が変更されることを管理するためにある。
そもそもRequest(依頼)なのだから、対応せずに却下する時もありうる。

だから、変更要求がどんな経緯で発生し、どんな議論が生じて、どの仕様で合意したのか、を記録する必要がある。 
当然、開発チームは、工数や技術上の難しさなどの観点から、口を挟む権利はある。

しかし、マネジメントの弱い開発チームは、開発チームの立場の意見を言わずに顧客の言いなりで全てを抱え込んでしまい、合意を取らないまま開発を進めて、リリース間際になって火を噴くことが多いだろう。
あるいは、顧客と合意した内容や履歴をきちんと記録していないために、無駄に時間を浪費したり、他システムへの影響を把握できずに、リリース後に障害を発生させたりするだろう。

バージョンという概念は、単なるタグだけでなく、合意というマネジメント要素も含んでいる。

つまり、イテレーションを開発プロセスに実装すると、単なるリリース単位だけでなく、繰り返し型開発の種類を決定づけたり、マネジメント上の合意を含むことも意味するようになる。

イテレーションは単なるタグ(符丁)ではなく、SW開発の根源に深く関わる概念だと直感している。

| | コメント (0) | トラックバック (0)

2010/10/11

電子書籍の作り方part7

Webで気に入ったページをepub化して、iPhone/iPod touchで読めるようにするために、電子書籍化するプログラムをRubyで書いている。
下記のライブラリeeepubが使いやすそうなのでメモ。

【元ネタ1】
jugyo's eeepub at master - GitHub

iBooks用にRuby on Rails GuidesのePubを自炊してみた

epubは普通のHTMLを元に、ファイルの依存関係や目次を構造化するcontents.opfとtoc.ncxさえ作ればいい。
今は自作のRubyプログラムを作っているけど、汎用ライブラリを使った方が楽だ。

他にgepubというライブラリもある。
僕個人は、eeepubの方が直感的で分かりやすい。

買い物ログ別館: gepub アーカイブ

skoji's gepub at master - GitHub

又、テキストやRSSからepubを作るツールもネット上に存在する。
フィードやファイルが複数個ある場合、もう少しカスタマイズする必要があるだろう。

【元ネタ2】
text2epub-clj更新、行頭"!!"でePub目次設定。 : サルノオボエガキ

deltam's text2epub-clj at master - GitHub

「お前のブログをePubにしてやろうかぁ!」、feed2epub-clj作りました。 : サルノオボエガキ

気分が良くて何が悪い?| feed2epub-clj - RSSフィードを一発でePub形式に変換するコマンドラインツール

epubを作るには、デザイナーがデザインにこだわって作る方法と、上記のようにテキスト媒体をプログラムで直接自動生成する方法の2種類がある。
縦書きやルビにこだわる人達は、出版と同じレベルを目指しているのだろうが、僕個人はあまり重視していない。
むしろ、Webページやローカルに過去に貯めてきたテキストをいつでも電子書籍化して、好きな時に気楽に読める方がいい。

自分が書いた過去のBlogを電子書籍化して暇な時に読み返してみると、こんなことは過去に考えていたのか、と新たな発見をする時がある。
もっと気楽に電子書籍を楽しみたいのだ。

epubは目次があるので、興味のあるページにいつでも遷移できるし、検索も可能だから、ナビゲーションに優れている。
又、Stanza上でも、epubの文字を拡大できるし、HTML5のタグを使えば音声や動画の取り込みも可能だから、アクセシビリティにも優れている。
epubにはたくさんの可能性が秘められているように思う。

電子書籍の作り方については色々試してみる。

| | コメント (0) | トラックバック (0)

2010/10/10

ハードなプロセス、ソフトなプロセス

さかばさんの記事を読んで思ったことをラフなメモ書き。

【元ネタ】
[#TiDD] チケット駆動開発の開始タイミング - 良いプロダクトはふさわしいプロセスが生む -: ソフトウェアさかば

システム開発から属人性を排除しようとして失敗する: プログラマの思索

さかばさんが書かれているように、製造業の会社から派生したSIはハードウェアの開発に憧れて、ソフトウェア工場によるソフトウェア開発の工業化を目指していたように思える。
属人化を廃し、信頼性重視の開発スタイル。

(前略)
ソフトウェア開発の歴史を振り返ると、ソフトウェアはハードウェアの開発にあこがれていたと思います。各社が「ソフトウェア工場」を作り、ソフトウェア開発の工業化を目指していました。
工業化における品質とは主に信頼性です。計画された仕様が満たされたかどうか、設計どおりに実現されているか、それが求められます。当初定められた計画通りにできることを重視する、それをここではハードなプロセスと呼びます。
しかし、近年のソフトウェアに求められるものは、そのようなハードなプロセスでは実現が難しい柔軟な対応です。作ってみないとわからない仕様や、日々変化する実行環境とビジネスに対応できるソフトウェアです。
(後略)

ソフトウェア工場による開発を目指していたのは、製造業の会社から派生したSIだけではない。
マイクロソフトも一時期興味を持っていたようで「ソフトウェアファクトリー」のような本を出していた。

ソフトウェアファクトリー」を僕も読んだけれど、ピンとくるものが無かった。
オブジェクト指向による限界を示した部分はなるほどと思ったけれど、内容はモデル駆動開発(MDA)のように思えた。
MDAは、抽象的な論理モデルをお絵描きしたら、動くソースを自動生成できるはずという思想。
OOAを突き詰めると、MDAにぶち当たる。

しかし、プログラムが書けない業務SEやPMはモデル駆動開発にいつも憧れているけれど、実現が難しいのが実情。
むしろ、RailsやSeasarのように、DOAによるデータモデル設計さえしっかりしていれば、優れたフレームワークによって、従来よりも大規模な実装が少人数で可能になった現実がある。

平鍋さんが主張するように、ソフトウェア開発は「プロジェクトを生産的に、協調的にするには、人の力とモチベーション、コミュニケーションを引き出すことが一番重要である」のが本質なのだろう。

チケット管理システムをつかってみよう!:An Agile Way:ITmedia オルタナティブ・ブログ

ソフトウェア開発は生物(なまもの)だ。
僕もチケット駆動開発を運用して、プロジェクトファシリテーションの各種のプラクティスを実践してみて、なるほどと思う所が沢山あった。
ザ・ファシリテーター2―理屈じゃ、誰も動かない!」に書いてある「解けない問題を解ける問題へ変換すると、人は自然に解決する方向へ動き出す」ことを身近に感じられたからだ。
実際、ロードマップを見れば、チームのゴールが共有され、そのゴールへ到着するために何をしなくてはならないのか、メンバー自身が考え始める。

【Facilitation】解けない問題を解ける問題へ変換する: プログラマの思索

チケット駆動開発とプロジェクトファシリテーションの関係についても、もっと考えてみる。

| | コメント (0) | トラックバック (0)

2010/10/09

アジャイル開発とソフトウェアアーキテクチャの間のバランス感覚

牛尾さんが書いた記事を読んで、アジャイラーとアーキテクトの間の緊張関係に関する対策方法について示唆が得られたのでメモ。
やっぱり牛尾さんの著作は素晴らしい。

【元ネタ】
アジャイル導入を推進するためのバランス感覚~アジャイル導入 始めの一歩~(1/5):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

アジャイル導入を推進するためのバランス感覚~アジャイル導入 始めの一歩~(2/5):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

アジャイル導入を推進するためのバランス感覚~アジャイル導入 始めの一歩~(3/5):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

アジャイル導入を推進するためのバランス感覚~アジャイル導入 始めの一歩~(4/5):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

アジャイル導入を推進するためのバランス感覚~アジャイル導入 始めの一歩~(5/5):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

RUPから見たアジャイル開発のアーキテクチャ助走路: プログラマの思索

アジャイラーとアーキテクトの緊張関係: プログラマの思索

アジャイル開発とソフトウェアアーキテクチャの緊張関係: プログラマの思索

牛尾さんの記事には、アジャイル開発とソフトウェアアーキテクチャの緊張関係についてこんなことが書かれている。

(前略)
 ところが、分野によってはアジャイルとソフトウェア・エンジニアリング、マネジメントの手法が真っ向から対立する場面もあります。その場合は無条件にアジャイル開発を優先すれば良いのでしょうか? 実はそうとは限らないのです。アジャイル開発に含まれるさまざまなプラクティスは、それらが十分に効果を発揮するための条件や、トレードオフの関係にある要素が必ず存在します。
 大抵のプロジェクトでは、純粋なアジャイル開発の考え方だけでは上手くいきません。プロジェクトの状況を見ながら、ソフトウェア・エンジニアリングやマネジメントとうまくバランスをとることが必要なのです。
(後略)

そして記事を注意深く読んでいくと、経験に裏打ちされたノウハウが深く書かれている。

初期のアジャイル開発だけの考え方だけでは、やはり足りない部分はある。
ソフトウェアアーキテクチャやマネジメントなどの部分を補完すれば、更にアジャイル開発を適用できる範囲は広がるし、より強固に運用できるはず。

|

TortoiseHgの気になるExtension

TortoiseHgは、mercurial.iniの[extension]へコマンドを追加すれば機能拡張できる。
その中でコードレビューに関する機能があったのでメモ。

【元ネタ】
8. Extensions ― TortoiseHg v1.1.3 documentation

UsingExtensions - Mercurial

【元ネタ1】CodeReview

* This extension allows you to manage reviews for your code in any project you like.
* It helps to keep the review management inside the mercurial.
* One can add files to the review or remove them.
* The reviewer can mark the code as 'completed' review cycle.
* You can also check what is the review status - what is done and what is not yet.
* The extension will automatically spot the files that were changed since their last review and notify about that.
* The notification to reviewer about new files for review and notifications for developer about current review round finish are also managed by this tool through email just by 1-Click

* Code review database is stored in .code-review file in your repository root directory as a simple text file holding a map of each file and revision when review was done.

You may want to add it to your Mercurial.ini or a repository’s hgrc like this:

[extensions]
hgcr-gui=

【元ネタ2】pbranch

Patch Branches (pbranch) is a way to develop a series of patches for submission into a main repo. It is based on topic branches, one per patch, and is thus highly suitable for collaborative and/or long-term patch development and maintenance.

You may want to add it to your Mercurial.ini or a repository’s hgrc like this:

[extensions]
pbranch = C:\path\to\pbranch.py

【元ネタ3】TortoiseHg Reviewboard extension: プログラマの思索

TortoiseHg Reviewboard extension available for testing ? Michael De Wildt

http://bitbucket.org/michaeldewildt/tortoisehg_reviewboard

分散バージョン管理とコードレビューは相性が良いと思っている。
理由は、厳重に管理されているtrunkとハックしたトピックブランチの間でリビジョン同士を指定すれば、簡単に差分が見れるからだ。

ReviewBoardやRietveldなどのコードレビューWebツールは、パッチをローカル上で作ってアップロードする手間がかかる弱点がある。

分散バージョン管理ならば、トピックブランチとtrunkの間でPullやPush、Rebaseなどのマージ作業が非常にやりやすい。
コードレビューで受けた指摘をトピックブランチ上で修正して、レビューアに認めたれたら、trunkへ簡単に自動マージできる仕掛けがある。

TortoiseHgの使い方について更に調べてみる。

| | コメント (0) | トラックバック (0)

アジャイルはなぜ失敗するのか?~教科書には載っていない反復型開発の3つの掟

牛尾さんがCodeZineに、アジャイル開発の運用のハードルが何故高いのか、優れた記事を立て続けに書かれているのでリンクしておく。
牛尾さんのように、実際のAgileな開発だけでなくシステム化提案や要件定義のAgile化など、下流工程から上流工程まで全てで経験し尽くしている人だからこそ、分かっているような内容ばかりでとても興味深い。

【元ネタ】
ウォーターフォールの次に行け!~日本のソフトウェア開発を今一度洗濯いたし申し候(1/2):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

なぜアジャイルは本のとおりに実践しても失敗するのか?(1/4):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

なぜアジャイルは本のとおりに実践しても失敗するのか?(4/4):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

アジャイルはなぜ失敗するのか?~教科書には載っていない反復型開発の3つの掟(1/4):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

アジャイルはなぜ失敗するのか?~教科書には載っていない反復型開発の3つの掟(2/4):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

アジャイルはなぜ失敗するのか?~教科書には載っていない反復型開発の3つの掟(3/4):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

アジャイルはなぜ失敗するのか?~教科書には載っていない反復型開発の3つの掟(4/4):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

どの記事も経験に裏打ちされて非常に納得感がある。
アジャイルはなぜ失敗するのか?~教科書には載っていない反復型開発の3つの掟(1/4):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)に書かれている下記の文章は、まさに僕が思っていることズバリだ。

(前略)
今回は、われわれが慣れ親しんできたウォーターフォール型開発と最も異なるアジャイルの特徴「イテレーション」を取り上げます。短期間(1週間~4週間程度)の開発を繰り返しながら機能を充実させていきます。口で言うのは簡単ですが、大抵の人は初めてのイテレーションで失敗します。それが上手く回るための仕組みがわかっていないからです。
(後略)

そして、僕が今抱えている問題点「上流工程のアジャイル化」についても一つの示唆を与えているように思える。

アジャイルはなぜ失敗するのか?~教科書には載っていない反復型開発の3つの掟(4/4):企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)に書かれているけれど、Agile開発導入によって顧客の役割まで変わってしまうのに、顧客のマネジメント力が弱いためにうまく回っていないアンチパターンについても書かれている。

(中略)
アジャイル開発プロジェクトの失敗事例を見ると「顧客が要求を出せない」「顧客側の体制が弱い、時間が取れない」「行き当たりばったり開発になって、無限開発になってしまっている」といった例が非常に多く見られます。これらは、「ポイント3 要求を出せる」という条件を満たしていないため発生する現象です。
(後略)

XPでは「オンサイト顧客」というプラクティスがある。
このプラクティスが言いたいこと、その利点は分かるけれども、実際の現場では適用しづらい。
だから、倉貫さんが以前提唱していた「顧客プロキシ(顧客代理人)」のような役割を業務SEが担って、要件や仕様を詳細化していくのが現実的だろうと思う。

アジャイル実践者インタビュー(2) - @IT

【中級】反復開発 現場のノウハウ 第2回 - ITエンジニアのスキル向上ゼミナール:ITpro

しかし、その顧客プロキシも実際は上手く回らない。
顧客プロキシに対応する業務SEの負荷が高すぎて、実際の設計作業が滞りがちなのだ。

オンサイト顧客というプラクティスは確かに従来の開発の問題点を明確化したけれども、その対策は不十分だと思っている。

だから、牛尾さんは萩本さんが提唱する要求開発にも関わっていると推測するが、BABOKも似たような動機を持っているように感じている。

Requirement Development Alliance : 要求開発アライアンス

#実際、理事の細谷さんがまさに「BABOK2.0と要求開発」という資料も公開している!
BABOK 2.0 and Requirement Development

この部分に関しては、色々考えている所があるのでもう少しまとめてみたい。

| | コメント (0) | トラックバック (0)

AgileTourOsaka2010のタイムテーブル公開 #agileto2010

AgileTourOsaka2010のタイムテーブルが公開されたのでリンクしておく。

Agile Tour Osaka (Japan) | agiletour.org

You can download the detailed TimeTable from here.

内容はてつ。さんによるAgile Tour Osaka 2010の見どころ解説と同じです。

Always All Ways: [IT] Agile Tour Osaka 2010の見どころ解説

XPJUG関西のWikiにも掲載されています。

【Event】AgileTourOsaka2010 - XpjugWestWiki

なお、本イベントのハッシュタグは「#agileto2010」に決まりましたのでご利用下さい。

| | コメント (0) | トラックバック (0)

バージョンのないRedmineプロジェクト~TiDD初心者が陥りやすい罠

TiDD初心者が陥りやすいアンチパターンを実際に見つけたのでメモ。

【1】チケット駆動開発の概念に慣れておらず、Redmineでタスク管理をまず始めた人に多い特徴がある。
それは、バージョンが設定されておらず、ロードマップが空っぽないし非表示な状態。

話を聞くと、Redmineのバージョンの意味や使い方が理解できないらしい。
だから、彼は、Redmineのチケット一覧画面でタスク管理を実施している。

彼のチケット一覧画面を見ると、スクロールできないくらい、たくさんのチケットが無造作に一覧表示されている。
どうやら、必要なタスクはチケットに登録しているが、彼のチケット管理を見ていると、チケットの納期が意識されていない。

そのチケットはいつリリースするのか?の観点が漏れているみたい。
何故なら、チケットがたくさんありすぎて、どのチケットが必要なのか、チケット一覧画面では分かりにくいからだ。
だから、担当者やカテゴリで絞ったりして、自分に必要なチケットをフィルタリングしているみたい。
だが、複数の担当者で一つの成果物を作る場合、それらのタスクの依存関係まで考慮されていないようだ。

だから、チケットが乱発されて放置されやすい。
チケットの棚卸が出来ていないみたい。
プロジェクトマネジメントで最も重要な手法であるスコープ管理が意識されていないから、納期までにどれだけのチケットをこなさなければならないのか、という観点が漏れている。
だから、タスク漏れや考慮漏れが多い。
つまり、作業ミスが多発したり、いつまでたってもデグレードしやすい弱点がある。

バージョンが設定されていないから、イテレーションのリズムが無い。
チケット一覧にスクロールできないくらいたくさん残っているチケットを、延々と消化し続けなければならない。
だから、残業や休日出勤が多いみたい。

見ていると、中間マイルストーンと言う観点もないようだ。
リリースとは言わなくても、内部で何らかの形式で報告するタイミングはあるのに、そのタイミングを一区切りとしてタスクを棚卸しする考え方が無いみたい。
だから、上司にすぐに進捗報告できる体制がないし、今どんな課題やリスクがあるのかを報告するのが大変みたい。

【2】何故バージョンの概念が出てこないのか、彼に聞いてみると、WF型開発の意識が強いようだ。
フィードバックが無いシーケンシャルな開発スタイルにしがみついているみたい。
つまり、工程単位の開発にこだわっている。
設計書をちゃんと書いて、それから開発して、全部開発が終わってから単体テスト、みたいな流れ。

このやり方で開発を進めると、本番リリースは一番最後の1回だけになる。
途中でリリースしたとしても、工程単位に開発しているから、設計だけ終わっても、それはリリースとは言えない。
動かないシステムをリリースしたと言っても、それは普通はリリースとは言わない。
開発が終わっても、単体テストが終わっていないシステムをリリースしてもまともに動かないから、リリースとは言いにくい。

リリースする時は必ずバージョンやタグを付けるけれど、リリースが1回しかないから、バージョンを付けるタイミングも1回しかない。
だから、わざわざバージョンをたくさん作って運用する理由がない。

Redmineの場合、バージョンが一つも設定されていないと、ロードマップは空になる。
しかも、設定画面でロードマップ表示をOFFにできるので、ロードマップそのものを使わない運用も可能。
だから、彼はロードマップが不要と判断したらしい。

彼のような運用スタイルはRedmineだけでなく、TracやMantisによるタスク管理でも起きやすい。
特に、TracやMantisでは、TracのマイルストーンやMantisの修正済みバージョンは、Redmineのバージョンに比べて正直使いづらい。
だから、Tracのチケット一覧やMantisのチケット一覧に、たくさんのチケットが無造作に登録されて乱発されてしまい、放置されてしまう。
すると、納期の観点が薄れるし、タスク漏れが起きやすく、チケット駆動開発の利点が薄れる。

【3】彼にバージョンの意味を教える時、僕が実際に運用しているRedmineのロードマップを見せたら、彼は一目でバージョンの意味を理解したようだ。
僕のRedmineのロードマップでは、バージョン名が実際のリリースバージョンに対応している。
また、Redmineはバージョンの横にリリース日が表示されるから、一目でRedmineのバージョンの意味が分かったみたい。

そして、ロードマップを見て、これが実際のリリース履歴なのだとすぐに分かったみたい。
つまり、過去のバージョンはどんな対応を行ったのか、ロードマップに表示された終了チケットのリンクを押せばいい。
そして終了チケットには、SVNリビジョンが一覧表示されているので、そのチケットでどんなソース修正が行われたのか、一目で分かる。
彼は、SCM連携機能を使っていなかったようなので、そのチケット画面を見てすぐにその利点が理解できたようだ。

【4】ソフトウェア開発で最も重要なものは、リリース計画だ。
いつ何をリリースするのか、一目でわかるようにした計画書であり、Redmineならロードマップになる。
Agile開発の観点では、短期計画のイテレーション計画に対し、リリース計画は長期計画に対応する。
PMBOKなら、リリース計画はプロジェクトマネジメント計画書そのものになるだろう。

Agile開発では、リリースの単位がイテレーションであり、それはリリース予定バージョンに対応する。
頻繁にリリースできるのがAgile開発の最大の特徴だ。

バージョンをイテレーションに同一視することによって、短期間に小刻みに機能拡張しながら、顧客へいち早くソフトウェアの価値を提供していくスタイル。
この仕組みが小規模リリースと言われるものになる。

だが、短期間に頻繁にリリースするのはたとえAgile開発でも難しい。
半年に1回のリリースが2~4週間に1回のリリースサイクルに変わったら、開発プロセスも成果物も抜本的に変えなければ、そのリリースサイクルに対応しきれないだろう。
1回のリリースでも大変なのに、何回もリリースするのはAgile開発でも難しさは変わらない。

まず、リリースする対象の機能を絞り込む必要がある。
そのために、プロジェクトマネジメントの観点を品質・コスト・納期ではなく、スコープ・コスト・納期へ切り替えて、スコープでコントロールする。
イテレーションが短いので、タスクはすぐにあふれやすいからだ。

又、ソフトウェア開発では、当初見込んだタスクだけではなく、バグ修正や仕様変更が頻発するから、マネジメントを意識しなければ、すぐにタスクが溢れてしまう。
だから、タスクの優先順位を変えるだけでなく、後回しにしたり、却下したり、チケットの取捨選択が重要になってくる。
チケット駆動開発は、プロジェクト管理をチケット管理に置き換えているのがミソになる。

そのために必要な概念がバージョン。
下記にも書いたが、イテレーションの概念を自分たちのプロジェクトで運用出来ているかどうかで、Agile度が分かるような気がしている。

Agile開発の肝はイテレーションにあり: プログラマの思索

【追記】
記事に関する感想を集めた。

チケット駆動開発の感想を集めてみた #tidd: プログラマの思索


【元ネタ】
プロジェクトマネジメントとアジャイル開発というやつを調べている - Chiseiのはてなダイアリー

Twitter / @Chisei Takenouchi: [ブクマ] アジャイルなプロジェクトマネジメントの本質が書いてあるような気がした。まだアジャイルというものを実践出来ていないのでそんな気がした、というレベルでしかないが http://bit.ly/gmO3ec

Twitter / @Chisei Takenouchi: [ブクマ] すごい発見の多いエントリーだった。アジャイル開発というものに触れるために必要な知識を仕入れることが出来た。 http://bit.ly/hR81xL

プロジェクトマネジメントとアジャイル開発というやつを調べている - @chisei のはてなブログ

(引用開始)
アジャイル!
ブコメにも書いたが「アジャイルって聞いたことあるけどどんなリスクがあるの?怖い!」って時に読むと「なるほど」と思える発見のあるエントリでした。
参考になります。

バージョン=イテレーション。リリース計画、スコープ重要。
(引用終了)

[#TiDD] ソフトウェアプロセスも複雑なソフトウェアである: ソフトウェアさかば

(引用開始)
マイルストーン重要
プログラマの思索に掲載された「バージョンのないRedmineプロジェクト~TiDD初心者が陥りやすい罠」に、ショックを受けました。記事内容がどうとかではなく、記事に出てくる「彼」と,Twitterで賛同の声があったことです。
「マイルストーン」を適切に定めるなどということは、かなり昔から、少なくとも80年代半ばまでには言われていました。いつまでに何をやるかという短期目標(一里塚)をはっきりしなければ、プロジェクトは糸の切れた「たこ」のようになってしまいます。
プログラムで言うなら、クラスや関数に分割されない一本のプログラムのようなものです。少しでもややこしいことをするならスパゲティプログラミングになってしまいます。
(引用終了)

| | コメント (0) | トラックバック (0)

2010/10/08

「Redmineによるタスクマネジメント実践技法」を倉貫さんに紹介して頂きました #TiDD

Redmineによるタスクマネジメント実践技法」を倉貫さんに紹介して頂きました。
ありがとうございます。

チケット駆動開発のススメ~No ticket! No commit - Social Change!

倉貫さんには推薦文を書いて頂いてます。
チケット駆動開発について、下記の説明がとてもシンプルで分かりやすいです。

(前略)
チケット駆動開発は、見えないタスクの問題を解決する糸口になります。
チケット駆動開発は、もともとはソフトウェア開発におけるバグ管理のタスクをチケットという単位で管理していたことを応用した手法になります。プロジェクトにおけるすべての作業を、チケットという単位で管理を行い、そのチケットを消化していくことで開発を進めていきます。
こうすることで、作業漏れやどういった進捗状況であるのかをすぐに共有することができるようになります。"No ticket! No commit"という言葉もあり、チケットにないプログラムの改修はコミットしてはいけない、というシンプルなルールがあります。
では、そのチケット駆動開発において、仕事を表すチケットはどのように管理するのか。昔ながらのプロジェクトの場合、多くはExcelを使っているかもしれません。しかし、それでは片手落ちです。チケット駆動開発の本当の良さを発揮することができません。チケットを誰でもすぐに見える形で共有するからこそ価値があるのです。
チケット駆動開発において、チケット管理に向いているのは、tracやJira、Redmineなどのバグ管理システム(BTS)や課題管理システム(ITS)と呼ばれる製品です。こうしたワークフローを備えたツールを使うことで、効率的なチケット管理ができます。
(中略)

又、チケット駆動開発の対象読者についてもイメージしてくれてます。

(中略)
本書を読むことで、チケット駆動開発とRedmineについて同時に学ぶことが出来ます。まずチケット駆動開発について理解してから始めたい人も、まずは動かして触ってみたいという人まで、多様なニーズに応えた本になっています。
(後略)

対象読者については、レビューアにもなって頂いた倉貫さんに言われたのですが、RedmineやTracなどのプロジェクト管理ツールを一通り運用した経験のある人には、経験を整理して他人に利点を説明できるくらい本書にヒントがたくさん詰まっていると思います。
ですが、アジャイル開発を初めて知る人や障害管理ツール(BTS)の経験がない人には、本書に出てくるたくさんの概念に翻弄されて分かりにくくなるかもしれません。
さかばさんの言う通り、本書のターゲットは中堅読者に置いているからです。

BTSとITSの違い、XPなどのAgile開発、PMBOKやITIL、Agile開発と同様に繰り返し開発の例にあげられるRUPなどの概念に慣れてい開発者には、本書の内容はピンと来ないかもしれません。
逆に、Agile開発の運用に苦労している開発者、PMBOKやITILやRUPなどの開発プロセスに詳しいマネージャなら、本書の主張を汲みとってくれるでしょう。

又、Redmineの細かな機能とチケット駆動開発を絡めて説明しているので、RedmineやTracなどのITSのツールに慣れていないプロジェクトマネージャには、本書の主張がピンと来ないかもしれません。
逆に、RedmineやTrac、Jira、MantisなどのBTSをタスク管理に運用している開発者には、本書の内容に納得する部分があるでしょう。

又、SVNやGit、Mercurialを触ったことがないプロジェクトマネージャには、チケット駆動開発と並行開発の関係や構成管理パターンについて、ピンと来ないかもしれません。
逆に、構成管理ツールを使ってリリース作業を担当しているライブラリアンにとっては、本書の内容に現場の改善のヒントが得られるでしょう。

特に、テスト技法や品質管理の経験がない開発者にとっては、本書の後半に書かれているテスト管理ツールTestLinkが何故必要なのか、そしてその利点は何なのか、も腑に落ちないでしょう。
逆に、組込製品やパッケージ製品の品質管理部門やテスト部隊でテスト管理に苦労している人達には、本書の内容からテスト管理の奥深さに納得してくれるでしょう。

色んな立場の人が自分の観点で本書の内容を読み取ってもらえればと思います。

| | コメント (0) | トラックバック (0)

2010/10/06

「Redmineによるタスクマネジメント実践技法」 詳細目次 #TiDD

翔泳社のHPから詳細な目次が公開されたようです。

【元ネタ】
[#TiDD] 出版裏話5:「Redmineによるタスクマネジメント実践技法」 詳細目次: ソフトウェアさかば

さかばさんが書いているように、実際はもう少し多めに書いたのですが、分量が多すぎると言うことでいくつかの章は削除になりました。
でも、その裏話もどこかのコミュニティで少しずつ講演していこうかと思ってます。

さっそく著者には本が届きました。
表紙の艶もよく、白と赤のコンストラストがとても綺麗で、まるで光沢のある曲線的なデザインのiPhoneみたいでした(笑)

RedmineやTracなどのBTSのツールのインストール方法については、既にたくさんの良書が出版されています。
しかし、それらのツールの背後に隠れているチケット駆動開発というプロセスの説明、そしてチケット駆動開発の背後に更に隠れているAgile開発を見出して詳しく説明した本は他にはないと思っています。

Agile開発の運用につまずいている人、ソフトウェア開発のプロジェクト管理に悩んでいる人は是非読んでみて下さい。

Redmineによるタスクマネジメント実践技法 -株式会社翔泳社:SEShop.com

はじめに
   まえがき -平鍋健児-
   まえがき -倉貫義人-
プロローグ -開発現場で試行錯誤した経験談-
   Redmine導入前の問題点
   Tracは使いこなせなかった
   Tracによるチケット駆動開発
   Redmineによるチケット駆動開発で運用を工夫した点
   Redmine導入後
   Redmineによるチケット駆動開発でさらに気付いたこと
   Redmineによるチケット駆動開発の可能性
   まとめ

第1部  チケット駆動開発技法 -BTSによる作業管理-

第1章 障害管理ツール(BTS)
   1. 1 節 ソフトウェア開発の難しさ
   1. 2 節 BTSの歴史
   1. 3 節 オープンソースBTSが選ばれる理由
   1. 4 節 障害管理の目的
   1. 5 節 障害管理からチケット管理
第2章 BTSとツールの連携
   2. 1 節 構成管理ツール
   2. 2 節 構成管理ツールの歴史
   2. 3 節 ブランチとメインラインモデル
   2. 4 節 他の支援ツール
第3章 チケット駆動開発 -チケットによるタスク管理-
   3. 1 節 チケット駆動開発が生まれた背景
   3. 2 節 チケット駆動開発の誕生と発展
   3. 3 節 チケット駆動開発とは
   3. 4 節 TiDDのチケット
   3. 5 節 BTSのチケットの特性
   3. 6 節 チケット駆動開発とソフトウェア工学
   3. 7 節 Redmineの構造とWBS
   3. 8 節 チケットの候補
   3. 9 節 コミュニケーションと見える化
   3.10節 日々のプロセス
   3.11節 マネジメントとトレーサビリティ
   3.12節 見えるものは制御できる
第4章 チケット駆動開発(TiDD)のはじめかた
   4. 1 節 チケット駆動開発の運用方式
   4. 2 節 チケット駆動開発の権限ポリシー
   4. 3 節 [事例]下流工程でのチケット駆動開発
   4. 4 節 [事例]XPのプロセス改善
   4. 5 節 TiDDはプロジェクトのアジリティを高める

第2部  Redmineによるタスク管理

第5章 Redmineの運用方法
   5. 1 節 Redmineの特徴
   5. 2 節 Redmineのインストール
   5. 3 節 チケット駆動開発の運用サイクル
   5. 4 節 Redmineチケットの概念モデル
   5. 5 節 Redmineチケットの状態遷移
   5. 6 節 Redmine運用フロー
   5. 7 節 有用なRedmineのプラグイン
   5. 8 節 バージョン0.9の新機能
   5. 9 節 【速報】最新バージョン1.0.1
第6章 Redmineの高度な使い方
   6. 1 節 チケット
   6. 2 節 バージョン
   6. 3 節 プロジェクト
   6. 4 節 ワークフロー
   6. 5 節 レポート出力
第7章 チケット駆動開発の実践的な運用方法
   7. 1 節 アジャイル開発と組み合わせて運用する方法
   7. 2 節 並行開発と組み合わせて運用する方法
   7. 3 節 チケット駆動開発のプラクティス
第8章 チケット駆動開発を発展させるアイデア
   8. 1 節 PMBOKのEVM
   8. 2 節 測定できれば制御できる
   8. 3 節 Redmineと外部ツールを連携
   8. 4 節 ITILと組み合わせて運用する方法
   8. 5 節 大規模プロジェクトで運用する時の注意点

第3部  RedmineとTestLinkの連携

第9章 TestLinkの運用方法
   9. 1 節 TestLinkの概要
   9. 2 節 TestLink運用前のテスト工程における問題点
   9. 3 節 TestLinkの概要モデルと運用サイクル
   9. 4 節 TestLinkの運用例
   9. 5 節 TestLinkの運用後
   9. 6 節 TestLink運用のまとめ
   9. 7 節 TestLinkのプラクティス

エピローグ -チケット駆動開発の魅力-
参考文献
参考資料
索引

| | コメント (0) | トラックバック (0)

2010/10/05

「Redmineによるタスクマネジメント実践技法」を平鍋さんに紹介して頂きました

Redmineによるタスクマネジメント実践技法」を平鍋さんに紹介して頂きました。
ありがとうございます。

【元ネタ1】
チケット管理システムをつかってみよう!:An Agile Way:ITmedia オルタナティブ・ブログ

平鍋さんには推薦文も書いて頂いたのですが、下記の文章が一番惹かれます。

(中略)
私は2000年から10年以上、アジャイル開発やプロジェクトファシリテーションを提唱しながら、チームのパワーをどうやって引き出すか、ということに焦点をあてて活動してきました。
プロジェクトを生産的に、協調的にするには、人の力とモチベーション、コミュニケーションを引き出すことが一番重要である、ということを2000年代にアジャイル開発が発見しました。その「人の力を活かす」という原則の裏には、実は、徹底的に「マシンの力を使う」という原則が隠されています。
(後略)

Agile開発には、開発者が生き生きと開発できる環境づくりという目的から、人間同士のコミュニケーション重視とマシンによる徹底的な自動化と言う相反する二つの観点が混じっていることに改めて気付かされました。

又、いつもお世話になっているRedmine.JP さんにも紹介して頂いてます。

書籍「Redmineによるタスクマネジメント実践技法」10月13日発売 | Redmine.JP Blog

又、倉貫さんからもTwitterで推薦してくれてます。

Twitter / Yoshihito Kuranuki: No Ticket! No commit! ソフトウェア開発はもっと近代化できる。オススメです。 RT @hiranabe: プロジェクト ファシリテーションにもオススメの一冊。「Redmineによるタスクマネジメント実践技法」

ソフトウェア開発をもっとIT化するための道具の一つとして、チケット駆動開発のアイデアが普及するといいなと思います。

| | コメント (0) | トラックバック (0)

2010/10/04

てつ。さんによるAgile Tour Osaka 2010の見どころ解説 #agileto2010 #tidd

てつ。さんによるAgile Tour Osaka 2010の見どころ解説の記事があったのでメモ。

【参考】
Always All Ways: [IT] Agile Tour Osaka 2010の見どころ解説

とても分かりやすい。
そして、英語のHPだと日本人には分かりにくい。

Agile Tour Osaka (Japan) | agiletour.org

一観客としては、XP祭り関西2006でアジャイル王子としてデビューされた牛尾さんの講演が一番気になるかな。
ITコンサルタントの立場で、アジャイル開発を現場に適用するためのテクニックを聞かせてくれるだろうから。
もちろん、懸田さんの講演は、アジャイル開発における要件定義や要件管理について、何らかのノウハウを得る機会になるだろう。

是非、皆様のお越しをお待ちしております。

| | コメント (0) | トラックバック (0)

HTML/CSSは今後500年先まで使われる技術と見据える電子書籍の動向

昨日の下記のTwitterを見ながら考えたことをメモ。

【元ネタ】
Twitter / 河村 宏: EPUBはナビゲーションとアクセシビリティーが他の電子書籍フォーマットに比べて格段に高く、更に数式等のサポートと縦書きやルビ等の日本語固有の表現を含む国際言語対応の改定作業中。無償でプロセスの透明なEPUBの日本語対応を支援しない3省懇談会の結論は偏っていると言わざるを得ない。

CSS3が日本語の禁則処理、傍点、縦書きなど対応へ、ドラフト公開 - Publickey

電子書籍の政府での議論が心配だ - Publickey

確かにepubをiBooksで読む場合、文字の拡大、音声出力などが可能だから、高齢者や障害者にとってアクセシビリティは高まる利点がある。
また、目次や索引などのリンクも簡単だから、ナビゲーション機能も優れている。
個人的には、epubにはとても可能性を感じていて、epubの将来にとても興味を持っている。

しかし、日本の現状は世界の流れから遅れているように見える。
上記の記事でこんな事が書かれている。

(前略)
CSSの発案者であり、いまもCSS3の議論の中心的な存在であるオペラソフトウェア CTOのホーコン・リー氏は、「活版印刷が発明されて500年。HTML/CSSもこれから500年先まで使われる技術」と言い、知識を表現するための重要な技術だとHTML/CSSを位置づけています。
こうした認識で議論されている(そして本当にこの先500年使われるかもしれない)国際標準のど真ん中に、いま日本語の縦書き組み版が入るかどうかを議論しているときに、国はXMDF+ドットブックを国際標準へ支援するという方向で本当にいいのでしょうか?
(後略)

今後500年先まで使われる事を想定して、世界中の開発者が仕様を決めているepubやCSS。
かたや日本国内のフォーマットを世界に持って行こうとする日本政府と日本企業。
日本政府と日本企業のやり方は世界の潮流に乗り遅れてないか?
いくら技術が優れていても、日本の携帯電話のように、世界では全く存在感が無い状況の二の舞にならないか?
日本政府が産業育成を主導しようとする発想そのものが既に時代遅れなのかもしれない。

すなわち、技術を主導する場が政府や会社ではなく、オープンソースのような公共の場に移りつつあることを意味しているのかもしれない。


| | コメント (0) | トラックバック (0)

2010/10/03

ナビゲーションとアクセシビリティーが格段に良い電子書籍フォーマットepub

下記のTwitterを見つけた。

Twitter / 河村 宏: EPUBはナビゲーションとアクセシビリティーが他の電子書籍フォーマットに比べて格段に高く、更に数式等のサポートと縦書きやルビ等の日本語固有の表現を含む国際言語対応の改定作業中。無償でプロセスの透明なEPUBの日本語対応を支援しない3省懇談会の結論は偏っていると言わざるを得ない。

電子書籍のうちepubフォーマットにはとても興味がある。
RubyやPerlなどのスクリプトを使うと、Web上にある記事をHTMLで取得して、epubに則った形式へ整形するだけ。
HTMLがあれば、簡単にepub形式にフォーマットできて、iPhone/iPod touch/iPadで簡単に読めるからだ。

上記のtwitterで面白いのは、epubの特徴にアクセシビリティとナビゲーションが他の電子書籍フォーマットよりも優れているという指摘だ。

アクセシビリティとは、アクセシビリティ - Wikipediaにもあるように、高齢者・障害者を含む人々がWebのサービスを支障なくアクセスできる度合いを指す。
iPadでepubを読む場合、文字が小さくても拡大すれば読みやすくなるので、高齢者にとってはうれしい機能だろう。
あるいは、音声化することも可能だから、視覚障害者に電子書籍を朗読して聞いてもらうことも可能だろう。
epubは所詮XHML+CSSなので、最近のHTML5の機能も取り込めば、動画や画像、音声も取り込むことが可能なので、百科辞典のように扱うこともできる。

また、ナビゲーションとは、Webページの案内を指す。例えば、サイトマップやパンくずなどがあげられる。
epubでは、目次が必ずあり、そこから各章へリンクできるので、目次を見ればその本の中身が想像できるし、リンクを押せば必要なページに簡単にアクセスできる。
デジタル化の利点としては、索引がとても簡単に作りやすいし、目次や索引、参考文献などを動的に作り出すことも可能。
つまり、欲しいと思う情報に簡単にアクセスできる仕掛けがある。

翻って、シャープやソニーなど日本企業は既に古くから電子書籍リーダーや電子書籍フォーマットを作り出しているのは、昔から知られていた。
しかし、日本の出版業界が電子書籍をビジネスにうまく取り込めておらず、著作権などの法規制と現在進行形のデジタル化がうまく解決できていないために、全く普及していない。

3省懇談会とは下記のニュースに相当するだろう。

電子書籍の課題や制度を検討、3省合同の懇談会が初会合 -INTERNET Watch

日本だけでなく、世界の電子書籍化の動向からかけ離れているように思える。

epubの弱点として、縦書きやルビが対応していないという批判が根強く存在するが、epubはオープンな形式なのだから、その機能が欲しければ自ら率先して作ればいいだけのこと。
僕自身は、Webや理系の本では横書きが主流なので、縦書きにあまり魅力を感じていないから、その批判はあまり意味が無いように思っている。

| | コメント (0) | トラックバック (0)

2010/10/02

【告知】AgileTourOsakaで「Redmineによるタスクマネジメント実践技法」出版記念講演第1弾をやります #agileto2010 #tidd

【参考】
Agile Tour Osaka (Japan) | agiletour.org

10月30日 AgileTourOsaka2010

■Agile Tour 2010へようこそ!

Agile Tourは、2010年10月を通して世界各地で開催される非営利のイベントです。

■Agile Tourとは

昨年開催された2回目のAgile Tourでは、世界(カナダ、フランス、ルクセンブルク、スイス、USA、中国)の18都市で合計2,500人以上が集まりました。こうして2009年には、Agile Tourはアジャイルに関する世界で最大のカンファレンスとなりました。

第3回となるAgile Tour 2010は、さらに堂々としたものになるでしょう。30都市以上でアジャイル、スクラム、クリスタル、リーン、ソフトウェア工学、心理学的側面、人間学、人事などのトピックスが取り上げられます。

詳細は、Agile Tour Osaka (Japan) | agiletour.orgを参照してください。おそらくあなたの家の近くのAgile Tourのイベントを見つけることができるでしょう。もし、なければ、それはあなたにとってイベントを開催する側になるチャンスです。

■AgileTourOsaka2010

世界規模で開催されるAgileTour。この一大イベントに、西日本のアジャイル・コミュニティの有志が参加を決意。「アジャイル」をキーワードにした著名人による多彩なセッションを開催します。皆様お誘い合わせの上、是非ご参加下さい。

■開催概要
日時 2010年10月30日(10:30~16:30)
開催場所 大阪産業創造館 
(大阪市中央区本町1-4-5)
参加費 無料
定員 100人(先着順)
申し込み終了 2010年10月24日 23時59分まで

懇親会場所 スターアイル大阪産業創造館店
(大阪市中央区本町1-4-5 大阪産業創造館16F)
懇親会費 4,000円前後(税込)
懇親会定員 60人(先着順)
主催 AgileTourOsaka実行委員会

■開催スケジュール

10:00 - 10:30 Welcome & Registration

【PART 1】
10:30 - 10:45 Opening Yasuo Hosotani (Organizer)

10:45 - 12:00 Keynote: Transition of Agile Developments in Japan and Future by Yoshihide Nagase

12:00 - 12:50 Lunch break

【PART 2】
12:50 - 13:40 Session 1:Why Ticket Driven Development is Agile? : No Ticket, No Commit! by akipii oga

【邦題】
チケット駆動開発がAgileになる理由~No Ticket, No Commit!~

【講演者】
あきぴー(akipii oga)

【概要】
近年のソフトウェア開発は短納期・大規模化しているにも関わらず、プログラミング技術の進化に対して、開発プロセスやプロジェクト管理の技法は現場ではそれほど進化していないように見受けられます。
私自身もXPJUG関西に所属後、XPの実プロジェクトへの運用を試していたものの、ずっと上手く実践できてきませんでした。
しかしながら最近、高機能化したバグ管理システム(BTS)をソフトウェア開発のタスク管理に応用すると、Agileに開発できる経験をしました。
その開発プロセスはチケット駆動開発と呼ばれており、プロジェクト管理機能を持つBTSをベースにAgileな開発プロセスに特化した手法です。
今回は、過去3年間運用したチケット駆動開発の経験談と、Agile開発との親和性についてお話します。

13:40 - 13:50 (Break) -

13:50 - 14:40 Session 2: Secrets of Agile Consulting: A Guide to Success by Tsuyoshi Ushio

14:40 - 14:50 (Break) -

14:50 - 15:40 Session 3: User Story Mapping for Agile Planning by Takeshi Kakeda

15:40 - 15:45 (Break) -

15:45 - 16:15 Lightning Talks by Various Talkers

16:15 - 16:30 Closing by Tetsuji Maegawa (Organizer)

■今回のイベントの趣旨

AgileTourとは、毎年10月に世界中の各国のAgileの有志が一斉にイベントを開いて、皆で楽しもうと言う集いです。
上記のHPを見ると分かりますが、フランス、中国、インド、ブラジルなど欧米以外にも色んな都市で開かれています。

西日本でAgileに興味を持つ有志によって、大阪が日本で初めてAgileTourを開催されるということで、関西のAgileコミュニティとしては一大イベントになります。
また、XPなど初期Agileの頃から普及に努められた長瀬さん、Agile王子として有名な牛尾さん、元永和/チェンジビジョンで認定スクラムマスターでおられる懸田さんなどのビッグネームもお呼びするので、とても濃い内容になるでしょう。

私も、10/13にチケット駆動開発の本「Redmineによるタスクマネジメント実践技法」を出版するので、出版記念も兼ねて発表させて頂きます。

日本の他都市でAgileに興味を持つ有志も是非、来年度はAgileTourを企画して、日本中をAgileに染めてしまいましょう。

なお、本イベントのハッシュタグは「#agileto2010」に決まりましたのでご利用下さい。

| | コメント (0) | トラックバック (0)

« 2010年9月 | トップページ | 2010年11月 »