svnでプロジェクト指標を出してみる

ボクがアサインされているプロジェクトもプロトリリースなどを経て後半戦にはいろうとしています。

そこで、ここいらで一回リビジョン番号の推移を計測してみよう考えた。これにより、過渡期が見えたり、次のプロジェクトにつながる何かが見えるかなぁ〜っと思いましてね。

チョチョィと調べて、サクサクっと計算してくれるオプションがあると思ったのに案外なくてガッカリ。

仕方なく簡単なperlスクリプトを書いてテキストに吐き出してエクセルでグラフ化するという手法でトライした。

学生の頃ならここでgnuplotの登場何だけどおとなしくエクセルを使うのが社会人の妥協というもの。

use strict;
use warnings;

sub getlog {
   #リポジトリのURL
   my $url = "http://hostname/trunk/";
   my $tm = shift;
   my ($day, $month, $year) = (localtime($tm))[3..5];
   $year = $year + 1900;
   $month = $month + 1;
   print "$year-$month-$day \t";

   my $str =  `svn log -r {$year-$month-$day\} $url\n`;
   $str =~ s/-//g;
   $str =~ s/\n//g;

   print "$str\n";

}


my $i = 0;
my $days = 300; #さかのぼる日にち

for ($i = $days; $i > 0 ;$i= $i-1 ) {
   getlog(time - $i * 24 * 3600);
}

これで日付とsvn logで取得したレコードが一行にでるので,後はExcelでぐりぐりすれば良いんじゃないかな?
ちなみに,してみた結果は見事にシグモイド曲線みたいになってた...
やっぱり,リリース付近で一気にあがるからねぇ〜...

これをどうやって,フロントローディングしてくかが一つのポイントだね.
まぁ,思うに上司に早いタイミングで危機感を持たせて,割り込みのタスクを減らす事が一つの解決策な気もするかな.

参考URL
前日・翌日の取得 - Perl表技集
/var/log/maeda.log: svn log である日付以降のログを出力する