« 2007年06月 | メイン | 2007年08月 »

2007年07月31日

TRICHORD 1.2.0をリリースしました

TRICHORD 1.2.0(「破」リリース)を公開しました
今回は「破」リリースということで、TRICHORDの世界を破り、他ツールとの連携機能の追加を目標としました。

連携したい他ツールとして、多くのご要望を頂いていたTracとの連携をはじめ、JUDEマインドマップとの連携が行えるようにしました。その他にも多くの新機能(カード検索、「こと」の階層を見れるビューなど)が追加されています。新機能の詳細はこちらをご覧下さい。

TRICHORD 1.2.0 をお使いになる場合はこちらからダウンロードし、インストールされるか、更新サイトからアップデートを行ってください。
なお、従来通りライセンスが無くてもTRICHORDをお試しいただけますので、ぜひご評価下さい。
従来からの変更点:Changelog

なお、TRICHORD 1.2.0 には次の既知の障害が存在します。

2007年07月27日

Mixiの中でニコニコカレンダーをまたまたバージョンアップ

12%ルールの成果である、Mixiの中でニコニコカレンダーをバージョンアップしたのでお知らせします。
前のバージョンでは右上にニコニコカレンダーがあってmixiのメニューが選べなくて困ると言うご意見がありましたので、マウスでニコニコカレンダーを移動できるようにしました。

使い方は前のバージョンと変わりません。
niko2mixi.user.jsをダウンロードして使ってみてください。

参考
Mixiの中でニコニコカレンダー
Mixiの中でニコニコカレンダーをIEにも対応
Mixiの中でニコニコカレンダーをバージョンアップ
Mixiの中でニコニコカレンダーをまたバージョンアップ

2007年07月25日

先週のふりかえり(2007/07/17-2007/07/20)

先週のふりかえりです。

ふりかえり(2007/07/09-13)



以前から朝の勉強会はテーマを決めて行っていました。
たとえばGimpを扱ってみたり、The Non-Designer's Design Bookを読んでみたりしていました。
先週からはさらに担当者が持ち回りであることについて解説する日もできました。
TRICHORDチームは良い感じに興味がずれているので、
僕はみんなの話を聞くのが楽しいです。



以前からBlogでRubyを使ったスクリプトをいくつか紹介していますが、
少し前から12%ルールの時間にJRubyを使ってそれらのスクリプトを動かすような機能を
TRICHORDへ追加するプラグインを作っています。
たとえばタスクがDONEになったときにスクリプトを動かす仕掛けにもできますが、
こういう機能はいかがなんでしょうか。



ふりかえりのProblemでチキン野郎疑惑がかけられている私ですが、
その汚名を消すようにがんばりますよ。

2007年07月23日

TRICHORD 1.2.0 RCを公開しました

TRICHORD 1.2.0 RCを公開しました。TRICHORD 1.2.0 RCは次期バージョンのリリース候補です。

今回のリリースは次期製品版に搭載する新機能(Trac連携、MindMap連携、カード検索、「こと」の階層を見れるビューなど)を評価していただくためのものです。
実業務では使用しないで下さい。
評価していただける場合は現在お使いになっているTRICHORDとは別の場所にインストールし、新たなワークスペースを作成してください。
TRICHORD1.2.0RCに含まれる新機能については、詳しくは1.2RCの新機能をご覧下さい。

なお、TRICHORD 1.2.0 RCには次の既知の障害が存在します。

TRICHORD 1.2.0 RCをお使いになる場合は当サイトよりダウンロードし、インストールしてください。

Changelog
ダウンロード

2007年07月20日

タスクのコメントをtwitterっぽく出力するRubyスクリプト「tritter」

TRICHORDのタスクの情報を抜き出して、タスクに付加できるコメントをTwitterっぽく出力させるスクリプト「tritter」を公開します。TRICHORDは1.1からカードを裏側にひっくりかえしてコメントを入力できるようになっています。このコメントを有効活用するためにtritterを作ってみました。タスクが完了したときに、そのタスクの思い出を書いておくと、後でみるとその時の記憶が甦ってきますよ。

使い方は、tritter.rbをダウンロードして以下のコマンドで実行します。Rubyはあらかじめインストールしておいてください。出力先ディレクトリは、指定されなければカレントディレクトリに、指定されている場合でなければ自動的に作成します。tritter.htmlというファイルをブラウザで表示するとサンプル画像のようなHTMLが出力されます。

是非お楽しみください。

 $ ruby tritter.rb 対象ワークスペース [出力先ディレクトリ]


tritter.rb


[tritter出力例]

先週のふりかえり(2007/07/09 - 2007/07/13)

先週のふりかえりです。

ふりかえり(2007/07/09-13)

この週は社長による英語講座がありました。
社長:『TRICHORD is agile project management tool. Repeat after me.』
みんな:『トライコード イズ アジャイル プロジェクト マネジメント ツール。 リピートアフタミー。』
と言う感じでさわやかに行われていました。

最近のふりかえりの写真には、開発メンバーのアタマが少しだけ写っています。
今日は特別に開発メンバーの外からアタマのゲスト出演していただきました。
誰のアタマだかわかりますか?

2007年07月13日

今週のふりかえり(7/2-7/6)

IMGP8376.JPG 

先週のふりかえりです。この週もかなり重めのProblemがあがっています。一週間毎にこのように重めの問題が挙がってくると、ある程度重苦しい雰囲気になるのは仕方ありません。しかし問題/課題に目を背けないで、前に進むことの重要さを強く感じます。そして問題/課題に対して、コンサルタントのような外部の方の手を借りて前に進んでいくことも1つの手でしょう。しかし、ふりかえりは、チーム自身が、自分達の頭と手を使って、学習しながら前へ進むための行動なのだとつくづく感じます。

决められた道を淡々と進んでいくというよりも、道をならしながら前進し、道がなければ道を作りながら前へ進む、そんなイメージです。

Rubyを使ってTRICHORDのストーリーデータをCSV形式にする

Rubyを使ってTRICHORDのデータをCSV形式にする』の続きです。
今度はTRICHORDのストーリーデータをCSV形式にしてみました。 使い方は前回とほとんど同じです。まず、Rubyをインストールして、次に下に書いてあるRubyスクリプトを『ワークスペース/sctipts/stories_csv.rb』と言うファイルにします。コマンドラインから

ruby stories_csv.rb

と入力して実行すると、同じディレクトリに『stories.csv』というCSVファイルが出来上がります。
このファイルにはストーリーデータがその所属するフィーチャーやイテレーションとともに出力されています。

ここまでできれば、タスクデータとストーリーデータをつなげて全部の情報の入ったCSVを出すこともできそうなので、またチャレンジしてみます。


require 'rexml/document'
require 'csv'
require 'nkf'


def getElementText(element, name)
  child = element.elements[name]
  if not child
    return nil
  end
  if not child.text
    return nil
  end
  return NKF.nkf("-s", child.text)
end

def get_iteration_theme(iterations, iterationId)
  iterations.each do |iteration|
    if iterationId == getElementText(iteration, "id")
      return getElementText(iteration, "theme")
    end
  end
  return ""
end

def get_release_theme(iterations, iterationId)
  iterations.each do |iteration|
    if iterationId == getElementText(iteration, "id")
      release = iteration.get_elements('../..')[0]
      return getElementText(release, "theme")
    end
  end
  return ""
end

def get_feature_name(story)
  feature = story.get_elements('../..')[0]
  return getElementText(feature, "name")
end

def get_size(story)
  size = story.get_elements('size')[0]
  if size == nil
    return ""
  end
  return getElementText(size, "shortString")
end

CSV.open("stories.csv","w") do |writer|
  writer << ["release", "iteration", "feature", "story", "size"]

  File.open("../projectplan.xml") do |file|
    doc = REXML::Document.new(file)
    stories = doc.get_elements('*/*/Feature/stories/Story')
    iterations = doc.get_elements('*/*/Release/iterations/Iteration')

    stories.each do |story|
      column = []
      column << get_release_theme(iterations, getElementText(story, "iterationId"))
      column << get_iteration_theme(iterations, getElementText(story, "iterationId"))
      column << get_feature_name(story)
      column << getElementText(story, "name")
      column << get_size(story)
      writer << column
    end

  end

end

2007年07月12日

Mixiの中でニコニコカレンダーをまたバージョンアップ

12%ルールの成果である、Mixiの中でニコニコカレンダーをバージョンアップしたのでお知らせします。

今回の変更点は以下のとおりです
・表示位置の変更
 mixiの画面の右上に表示するように変更しました。
 mixiのレイアウト変更があっても、エラーダイアログがでることが少なくなるはずです。

使い方は前のバージョンと変わりません。
niko2mixi.user.jsをダウンロードして使ってみてください。

参考
Mixiの中でニコニコカレンダー
Mixiの中でニコニコカレンダーをIEにも対応
Mixiの中でニコニコカレンダーをバージョンアップ

2007年07月06日

Rubyを使ってTRICHORDのデータをCSV形式にする

Rubyの勉強もかねて、TRICHORDのXML形式データをCSV形式にするRubyスクリプトを作ってみました。

まず、Rubyはインストールしておきます。次に下に書いてあるRubyスクリプトを『ワークスペース/sctipts/tasks_csv.rb』と言うファイルにします。最後にコマンドラインから

ruby tasks_csv.rb

と入力して実行すると、同じディレクトリに『tasks.csv』というCSVファイルが出来上がります。
このファイルにはワークスペース内のタスクカードのデータが出力されていますので、Excelなどで編集することができます。

今回はタスクカードのデータだけしか出していませんが、『ストーリーカードやフィーチャーカードも出したい』、『ニコニコカレンダーのデータも出したい』と言うような要望もあればフィードバックをください。
ユーザーの皆様からのフィードバックが多ければ、TRICHORD本体にも入れようと考えています。

require 'rexml/document'
require 'csv'
require 'nkf'

ROW_NAMES = ["iterationId", "storyId", "name",
             "status",  "estimate", "signedUp",
             "todoDate", "doingDate", "doneDate"]

def getElementText(element, name)
  child = element.elements[name]
  if not child
    return nil
  end
  if not child.text
    return nil
  end
  return NKF.nkf("-s", child.text)
end

CSV.open("tasks.csv","w") do |writer|
  writer << ROW_NAMES

  Dir["../tasks/iteration_*.xml"].each do |filename|
    File.open(filename) do |file|
      doc = REXML::Document.new(file)
      doc.elements.each('PlanImpl/tasks/Task') do |element|
        column = []
        ROW_NAMES.each do |row_name|
          column << getElementText(element, row_name)
        end
        writer << column
      end
    end
  end
end

2007年07月04日

先週のふりかえり(2007/06/25-2007/06/29)

先週のふりかえりです。

ビールのおいしい季節がやってきました。東京は梅雨だというのに夏空が広がっていました。 ということで、今週はみんなでビアガーデンへ行ってきました。TRICHORDチームは フード・ファイターの精鋭がそろっているのですが、そのさらに上を行く人が近くにいるとは 思いもよりませんでした。

プロジェクト外の問題で自分達でなんともしがたい問題が起きることも時にはあります。 しかしそんななかでもおいしいものは欠かさないTRICHORDチームは、 だからこそ止まることなくすすめるのかなと思いました。

また今週は海外のテストツールベンダーに障害かどうか質問をすることがあったのですが、 その対応の早さに驚きました。特にTRICHORDチームのためのビルドを提供してくださった点などは 見習っていきたいと思いました。