無料ブログはココログ

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

[TiDD] Redmine 0.9 feature freeze

またまたあきぴーさんが元ねたです。

詳細はわかりませんが、

0.9 feature freeze

によると、Redmineはどんどん企業向けに充実しそうな気配です。

Unlimited project nesting

WBSの階層http://sakaba.cocolog-nifty.com/sakaba/2009/12/tidd-redminewbs.htmlが不足するような大規模システムで、途中の階層をサブプロジェクトにできるので便利ですね。

Versions inheritance

サブプロジェクトで親プロジェクトと同じバージョンが使えると、全体の管理が楽ですね。

User groups

個人ごとでなくグループ単位で管理できるようですね。

User permissions

異なる権限を同時に持てるようですね。グループの中で限定した人に権限を付加できるので、管理が容易になるでしょうね。

Project creation by non-admin users

システム管理部隊とプロジェクト支援部隊、プロジェクト内の管理部隊など、組織の構造にあわせた権限を付与できるようですね。

Project copy

派生開発やプロダクトラインに便利そうですね。

Issue list improvement

Tracよりも便利になるのでしょうか。

これからが、期待できそうですね。

BOSE Companion2 Series II multimedia speaker system

おいしいものを食べると思わず笑みがこぼれますが、いい音を聞いたときもついついニコニコしてしまいます。

BOSEといえばよい音ですが値段が高いものが多く、色々悩んだ末に別のものを買ってしまいがちです。しかし、このCompanion2 Series II はPC向けに設計され、1万円ちょっとで販売されています。一度店頭で音を聞いてから、いつかは買おうと思っていました。

知り合いから上新電機で安売りをしている店があるとの情報を得て、買ってきました。自宅に近いお店では聞いていた値段より高く、価格.comよりは少し高い値段でしたが、誕生日のクーポンで1万円以内で買うことができました。

さて、この製品はすごく音が良いです。ケーブルが少し太めとか、無駄に2入力つけるなら安くしてほしい、とか色々な思いを忘れさせるオーディオの音です。そういえば、昔はHi-Fiなどという言葉があったなぁ~、などと思わせる音でした。

大きさは普通のPC用スピーカのサイズですが、低音もしっかり出ますし、音の分解能も悪くないです。MP3プレーヤーにしているSONYのICレコーダやポータブルCDを繋げて楽しんでします。

音の良さを表現するのは難しいので、私がこれまでにニコニコした機器を書いてみます。

1)バックロードホーンの自作キット:12cmほどのスピーカでしたが、一体型ホームステレオの30cmスピーカとは雲泥の差でした。

2)SONY MDR-EX70:風きり音がするものの感動的な音。でもゴムがはがれて、カバーが取れて、、、

3)PHILIPS SBC-HE580:断線したり、耳から落ちたり、と問題はありましたが、値段を考えると、すごく良い音でした。イヤーパッドをドーナツ型に加工して使っていました。

4)audio-technica ATH-AD700:今も使っています。ここのヘッドホンは1万円を超えるとなかなか良い音なんですよね。

その程度の感動を感じました。一度、お店で聞いてみてください。


[TiDD] RedmineのWBS

WBS(Work Breakdown Structure)は作業細分構造などと訳されていて、これがなければアポロ計画は成功しなかっただろうと言われています。

WBSはその名の通り作業を段階的に詳細化したもので、見積もりや計画、管理に用いられます。製品構造やプロセス(あるいはマネージメント)に基づいて細分化します。具体的には流派が色々ありますが、システム、成果物、作業などの階層にわけられます。

ハンフリーさんの最初のCMM[Humphrey91]の本には、以下の例が示されています。

 システム-サブシステム-モジュール

大規模な場合は

 システム-サブシステム-製品-コンポーネント-モジュール

となります。このコンポーネントやモジュールに機能を割り付けられ、先進的な設計概念やプロトタイピングが有効に適用できるとされています。

実は、Redmineも同じような構造を持っています。

 プロジェクト-サブプロジェクト-バージョン-チケット

このように見ると、モジュールに相当する部分をバージョンとして、段階的に開発していけば良いことがわかりますね。そして、各バージョンをより詳細な作業のチケットに分ければ良いわけです。

(階層が不足する場合:Redmineのチケットとバージョンは自由に関連付けられます。これは複数のバージョンを同時開発できることになりますので、ネーミングを工夫して複数のバージョンで一つの階層を構成すればよいと思います)

[Humphrey91]Watts S. Humphrey, ソフトウェアプロセス成熟度の改善, 日科技連出版,  pp.99-100, 1991.

[TiDD] Redmine その後

All in One Redmine環境のRedmineLEを紹介しましたが、別のBitNamiマシーンを移行しようとうまくいきませんでした。別のApacheがいるからかもしれません。Mongrelまでいらないし、RedmineLEのシンプルさが良かったのですが仕方ありません。

BitNami環境では英語メニューと日本語メニューが混在していたのですが、個人環境が英語のままだったからのようです。また、PDFで日本語が化けるのはFAQhttp://redmine.jp/faq/general/pdfcsv/でCP932とされているところをSJISとするとうまくいきました(CP932にすると、なぜかマシンが重くなってしまいました)。

ガントチャートのPDFは既にありました。

REDMINEのガントチャートに日付を出したい。

また、元の作者の方はA3対応もされていました。

Redmineのガントチャート(PDF)をA3サイズで出力

以前、tracでTiDDをやったときは通常作業以外に発生する細かな作業の管理に使いました。でも、ここまでできるなら、全ての作業をチケットで管理するほうが楽そうですね。

使うツールによってチケットの位置づけも変わるのかもしれませんね。

[TiDD] 見えるものは制御できる

あきぴーさんがチケット駆動開発(TiDD)を熱く語られています(パチパチ)。

実際にTiDDをやってみるとわかるのですが、これまでバラバラに管理されていたために生かされなかったデータが、チケットを中心に集計でき、見える化される。Redmineを使っていると、そんな可能性を感じさせられます。

しかし、それは「測定できなければ制御できない」というメトリクス中心の考え方だけでなく、より人間的、アナログ的な「見えるものは制御できる」的な良さも重要だと思います。

Redmineがすごいのは、チケットを登録するだけでガントチャートになったり、担当チケット一覧がデフォルトのトップページになっているところです。もちろん、それは定量的なデータが基礎になっているのですが、パッと見た瞬間にアナログ的にわかります。

日々の開発が見える化されてソフトウェア開発が楽しくなります。「あっ、忘れていた!」と言うことが減り、自分の担当でなくても関連するチケットに注目できるので、助け合うことが容易にできます。

最初のXPの本にドライブのたとえが載っていました。当時はその意味が良くわからなかったのですが、今にして思えば、タスクボードで全体の状況が見えることによって人間はうまくコントロール(運転)できることを示していたのだと思います。

行き先の方向を計測して車の進行方向を定めるのではなく、進むべき方向を良く見て、途中にある障害をよけながら進んでいくのだと思います。そのために状況を見えるようにする。その明かりが、タスクボードであり、そのデジタル化したものであるチケット駆動開発だと思います。

チケット駆動開発には2つの良さがあります。一つは管理の側面で、これまでプロセス改善が困難であったプロジェクトにメトリクス収集の基盤を与えることです。

もう一つは、プロジェクトを楽しくすることです。昔読んだBASICの入門書に「プログラミングとは、命令どおりに動作する完全なコンピュータに、不完全な人間が挑むことだ」と書かれていました。当時は格好良く思いましたが、結構これがつらい。人間ですからミスもするし、忘れもする。それをチケット駆動開発は支援してくれます。

また、プロジェクト(や組織)が大きくなればなるほど約束事が増えて、プログラミングの楽しみが奪われていきます。ものづくりは楽しいはずです。TiDDは面倒なことはコンピュータに任せて、プログラミングに集中できるようにしてくれます。メンバーからやらされ感をなくし、進んで開発するような環境(雰囲気)が作り出せるのです。

チケット駆動開発はソフトウェア開発の世界に住む狼男を倒す銀の弾丸ではありませんが、前の良く見えない暗闇の中で、足元を照らす「ともしび」なのだと思います。そのあかりはまだまだ小さいものですが、温もりを感じる斧です。きっと、大きな支えになってくれると思います。

[TiDD] Redmine やるなぁ~

いまさらですが、Redmineを使い始めました。

最初はBitNamiを入れたのですが、英語表示が混じったり色々インストールするわりにいまいちなところがあって、かおるんダイアリーで見かけたRedmineLEの記事を参考にインストールしました。再起動も簡単で、なかなか良い感じです。仮想マシン(VM)を使った環境も色々あるようですが、Linux環境をVMで使うので必要最低限の環境を用意してくれる点が快適です。

Tracでチケット駆動開発をしたときは、WBSにない突発的な作業の管理だけに使ったのですが、Redmineだとガントチャートが表示できるので、全てをチケットにしたくなります。プロセス改善は文化を変える事だと言いますが、Redmineなら変えてくれるかもしれません。

ただ、ガントチャートがちょっと痒いんです。探してみると

Redmineのガントチャートに日付の表示を追加

と言う記事がありました。<>を<>にするのが少し面倒でしたが、なかなか良い感じで表示してくれるようになりました。これがPDFやPNGでも表示してくれると、スケジュール表を別管理しなくても良いかもしれません(誰かしませんか?)。

ちょっと不満なのはトラッカーを変更できない点ですね。仕組み的に仕方がないのでしょうけど、バグだと思ったら仕様で、要望として実現する場合などは、(1)新しいチケットを発行する、(2)カスタムフィールドを用いる、といった工夫が必要なのでしょうね。

自宅環境なので、以下を参考に@niftyでメール送信をしています(インストール時は認証が必要なサーバ設定はできませんでした)。

メール通知が行われない

あとは日本語ヘルプを設定して、今日の作業は終えて使い始めることにしました。

ヘルプを日本語化したい

PSPはレコーディングダイエット

先日、SEA関西の勉強会でのあきぴーさんhttp://forza.cocolog-nifty.com/blog/が言われました。

「PSPはレコーディングダイエットに似ている」

これは、すごく的を射ていると思いました。

レコーディングダイエットは「記録するだけで効果が出る」という表現がされますが、どのような食事を摂ったかだけでなく、そのカロリーも記録します。カロリー過多はダイエットの敵ですので、その問題を見える化することで、食生活を改善していく方法です。

PSPも同じだと思います。単にソフトウェアのメトリクス(尺度)を記録するだけでなく、あらかじめ教育とトレーニングを受けた後に記録するので、問題点を見える化でき、改善できます。

理論が正しいのであれば、それをきちんと実践すればよい、あとはいかに見える化するかなのですね。

[TiDD] 計画できないことの管理と計画できることの管理

知り合いのあきぴーさんのブログを見ていると、Redmineを用いたチケット駆動開発とTestLinkがお気に入りのようです。

それぞれの良いところはわかっているつもりですが、なぜこの2つなのか良くわかりませんでした。そして気付いたのは、この二つが対極にあることです。

チケット駆動開発はアジャイル開発に限らず、開発中に発生する作業を管理します。それは、計画的なものではありません。計画できないことだから、その作業が必要になるたびにチケットを発行して管理するものです。

そもそもRedmineのようなBTSは、BUGという予想できない事象を管理するものなので、計画できない予想外の事象を管理することに向いているのでしょうね。そして、プロジェクト内でその情報をいかに効率よく共有し、管理するかが、ポイントになるということなのでしょう。

一方、TestLinkが管理するテストとは、仕様を満たしていることを確認する作業です。仕様が定まった段階で、テストしなければいけないことが決まりますので、計画的にできる作業と言えるでしょう。

計画的にできる作業ですが、その作業中に計画できないBUGが発見されます。すると、これらを関連付ける必要がでてきます。

すべてのソフトウェア開発には、このような計画できない作業と、計画できる作業があります。それらをいかに関連付けて、効率よく管理するか、それがポイントになるのでしょうね。

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