超高速開発コミュニティについて

Concorde

@ITの「超高速開発コミュニティ」を設立――日本が19位で黙っているわけにはいかないという記事を読んで、CASEツールブームの頃の記事を読んでいるかのような錯覚を覚えただけで興味は湧かなかった。*1でもFacebookで「話題の超高速開発について、気になった人は目をとおしたほうがいいと思います。」というコメント見かけたので読んでみた。

「超高速開発コミュニティ」は何を目指すのか - ジャスミンソフト
超高速開発ツール(または手法)の普及活動を行う「超高速開発コミュニティ」がいよいよ立ち上がりました。

だけど「CASEツールブームよ、もう一度」という心象に変わりはなかった。当時を知る人間が決済者に居るであろう現在に再びブームを生むことは極めて難しいんじゃないだろうか。

自分自身はブームの当時にベンダーの片棒を担いで広告記事でインタビュー受けたり、導入検討している会社の担当と話をしたりしていたので*2ツールそのものに敵意はないし、当時はそのツールがなければ完成しなかったであろうシステムもあるのでツールの活用は否定しない。それでも今現在似たようなツールの採用を検討するととなると(しないけど)相当慎重になるのは間違いない。

成功事例や制約事項をベンダーがいくら丁寧に説明しても、ツールの制約や特性を理解したデザイン、ツールによる制約に関わるユーザへの代替案提案能力、ツールの熟知と不具合回避能力などが不可欠であり、ハマれば早いがハマらなければ早く作れるが使いにくいシステムが出来上がるだけになってしまう。*3

またクローズドなために習得できれば高速だが、人員増加が必要なときでも人員を確保できないという問題もあるし、技術者目線でみても特定開発ツールの細かなノウハウを身につけたとしても他への応用が効かずツールと共に終焉を迎えかねないという問題もある。

今回の話はベンダーに加えてユーザ同士がコミュニティで情報交換出来るようにして、これらの問題を乗り越えようとの試みだとは思うが、現場の業務システム開発者がベンダーコミュニティに出てくるとは思い難い。ブームの当時も各ツールのユーザ会はあったが、開発者同士が情報交換できたとういう話は聞いたことが無く、そもそも技術者がメインで参加しているというユーザ会は皆無だった。IT勉強会がブームと言われて久しいけれど、ベンダー主導のコミュニティ運営がどうなるかには注目したい。*4

いずれにしても、なぜ4GLやCASEツール、コードジェネレータのブームが去ったのか、なぜ敬遠されたのかという点を真摯に考えなおさないと、第二のCASEツールブームどころか企画倒れにしかならないでしょう。

それとSI屋の未来みたいなコメントが関連のブックマークのコメントにあったけれど、SI屋は投資した挙句に工期が短くなると減収にしかならないから恐らく乗らない。この流れに乗ろうとするのは情報システム部で業務システム開発しているとろがメインであって、SI屋が乗るとすればツールの売上が欲しいところだけでしょうね。


まぁツール自体は使う開発者がデメリットに対する覚悟さえ出来ればどんどん使えば良いし、ベンダー主体じゃなくて現場の業務システム開発者が集まってコミュニティが出来ると面白いかなぁとは思います。

*1:実はtwitterを追い切れてなかったので、そんなに盛り上がっているとは気がつかなかった。

*2:恐らく10者以上の人と話したはず

*3:結局どれかが欠けていて、作ったシステムのユーザの評判が悪かったり、ユーザの要望に代案を出せず結局高額なツールを捨てた事例を大量に知っている。

*4:企業主体のユーザ会と言えば比較的成功しているように見えたIBMのユーザ会iSUCの最近の動向はどうなんだろうか

Trac入門

Tracはチームが既に確立している開発プロセスと開発ポリシーに影響をなるべく与えないように最小限のアプローチを提供するWebアプリケーションです。

〔改訂〕Trac入門 ~ソフトウェア開発・プロジェクト管理活用ガイド (Software Design plus)

〔改訂〕Trac入門 ~ソフトウェア開発・プロジェクト管理活用ガイド (Software Design plus)

通称「白本」ことTrac入門の改訂版を献本頂きました、ありがとうございます。*1


結論から言うと、Excelで課題管理してるところは取りあえず読んでおけ!でしょうか。
そんなことを言うと恐らく「今はRedmineでしょ〜」とか「チケット駆動開発が〜」と言い返す人も多いでしょう。でも「話はExcelの管理、日付フォルダを止めてからだ!出来てないんだから四の五の言わず読め!」と言える良さが本書にはあります。道具を変えても変わらない本質的な不具合・課題管理についての話が、この本には書かれています。


白本が出てから5年が過ぎようとしてるとは月日の経つのは早いものですが、未だに何か聞かれると先ずはSubversion実践入門白本をセットで読んでおけと言い放つことが多かったりします。前作ではTracのバージョンが0.11で今では細かい部分で古くなっていて気になるところが出てきていましたが、今回の改訂でTracが1.0がベースとなり、第1章のコラムには0.12からの主な変更点も纏められていてるので、そのあたりの問題も解消されているのでお薦めしやすくなりました。*2


前作も今回の改訂版も不具合・課題管理をTracで対処していく流れには変わりなく、第1章から第4章までは前作ほぼ同じ内容になっています。しかしコラムや挿絵を含めて細部に見直しがされており前作以上にスっと入ってくるように仕上がってます。*3


第5章では近年の技術的環境の変化に併せて前作でのSubversionに加えてGit,Jenkinsについて触れられています。Twitterなどでは「バージョン管理やCIしてなくて許されるのは小学生までだよねww」とまで言われるようになってるので必然と言えると改訂だと思います。ただ前作でもSubversionの下りが分かりにくいという指摘がありましたが、Gitについても本書のみでは分かりにくいです。本書中にもありますがインストールされていることが前提となっているため、GitはGitポケットリファレンスを参考に環境を用意するなどすると理解が進むと思います。
Jenkinsの紹介については少し残念で、CI以外での使い方もあると良かったかなとは思いました。


6章以降も現在の環境に合わせて見直されており、リファレンスとしても十分に使える内容になっています。赤本の改訂が行われていない現状では貴重な書籍ベースでの資料です。



機能的に比較してRedmineに劣ると言われるTracですが本書を読み進めれば、必要十分な機能が備わっていることが理解でき、Tracが最小限のアプローチで開発者を支援してくれることが分かってもらえると思います。
是非<改訂>Trac入門を手に取り古びた管理手法から脱出を試みてください。


そんなわけで私の取りあえず読んでおけのセットは、

となりました。*4

〔改訂〕Trac入門 ~ソフトウェア開発・プロジェクト管理活用ガイド (Software Design plus)

〔改訂〕Trac入門 ~ソフトウェア開発・プロジェクト管理活用ガイド (Software Design plus)

Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)

Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)

Gitポケットリファレンス

Gitポケットリファレンス

入門TortoiseHg+Mercurial

入門TortoiseHg+Mercurial

おまけ

なんか使ってみようかなぁ〜と漠然と思ってる人は、本書の前に読むと良いと思います。
Redmineのようなツール導入で悩む人にいつも投げかける6つの質問 | 「世界」旅と子育てとエンジニアリングマネージャーのブログ

*1:3月8日発売ですが既に店頭に並んでいるところもあるようです。

*2:逆にTracLightningが0.12ベースなのが・・・

*3:読んだ印象が違い過ぎたので、前作を読み直したのですが内容自体はほぼ同じでした。

*4:それに加えて未読だけど入門TortoiseHg+Mercurialかな?

普通の人のためのGit本

Gitポケットリファレンス

Gitポケットリファレンス

少し発売から時間が経ってしまいましたが、前書きがアレゲだと評判になった「Gitポケットリファレンス」のレビューを少しだけお手伝いさせて頂いてました。
Git本といえば入門Gitが定番ですが、決して優しいとは言いがたいものがあります。
それに対してGitポケットリファレンスはポケットリファレンスを名乗りながらもChapter1ではGit学ぶための環境づくりや使い方がWindows向けにも丁寧に書かれており、まずは触って見るための入門書としても利用出来るので非常に良い本になっています。
Chapter1で感触つかんだらチートシート片手にコマンドリファレンスを確認しながら一通りの作業は出来ると思います。そして余力が出来てきたらChapter3を読みながらRedmineGitHubに挑戦してみるということも出来ます。この本は単なるコマンドリファレンスというよりも、Gitへの導きの書と言って良いのではないでしょうか。

意識高く「Git学んでやるぜ!」「使ってやるぜ!」というユーザは入門Gitや入門gitがお勧めですが、

  • プロジェクトの都合でGitを使わなくてはいけなくなった人
  • 最近周りで良く聞くから触ってみようかなという人
  • 入門Gitを手に取ったけど心が折れてしまった人*1

といった普通の人にはGitポケットリファレンスが今一番お勧めなGit本だと思います。


入門Git

入門Git

入門git

入門git

*1:私は一度折れましたw

豆ナイト「続・CI超入門」で話してきました。 #jenkins_night

2月22日に豆蔵さんで行われた豆ナイト「続・CI超入門 〜 Jenkinsのススメ2 CI導入の壁を越えろ 〜」で「Startup Jenkins〜CIからはじめないJenkins入門〜」というタイトルで話をしてきました。

これまで何度かtrac関連での話はしてますが、Trac以外で、かつ依頼を受けてという話をするのはこれは初めて。
TracではなくJenkinsを俺に?」と驚きもありましたが以前にここに書いたTrac Lighting付属のHudsonをCI以外の目的で使ってみるを下地にしての発表なら出来ますよと返事をしたら「超入門なので大丈夫です。面白そうですね。」との返事を頂いき目出度く発表となりました。*1


ちなみにタイトルは[twitter:@kyon_mm]さんの

という発言をから「これだ!」ということで拝借。

私の発表前のディスカッションタイムの時に第1回のアンケート結果の話があったのですが、やはりCIの導入以前に悩んでいる人も多くアンケートの回答の中には「CIより先にバグ管理じゃない?」的なものがあったり、「バージョン管理システムですら導入できてません」な回答も結構あったのを見て、意外と今日の発表は意外と受け入れられるかなと緊張もほぐれたのですが・・・
「何らかのバグ管理システムを使ってる人」と聞いたところ7〜8割の人が導入済み*2、Jenkins導入済みの人もほぼ同じ割合という結果に!
むぎゅぎゅ、想定ターゲットに合致しない人が多いなぁと思いながらの発表へ・・・

ディスカッションの時にBTSもJenkinsも導入できてない人が座っている辺りは把握できたので、発表しながら様子をみてたのですが意外と反応が良かったので取りあえず一安心。このスライドを見て踏み出してみようかなと一人でも思ってもらえれば嬉しいです。

懇親会で「Redmine使ってるんですがTracLightning使ってみます!」とか言われて結構嬉しかったんですが、5分でApache+svn+Jenkins+サンプルを簡単に得るのが目的なので、現状Redmineを使っているのなら無理にTracを使う必要はないです。
もちろん使ってもらえれば嬉しいのは確かですけどね(笑)


最後になりましたが、このような機会を与えてくれた豆蔵さん、話を聞いてくれた参加者の皆さん、ありがとうございました。




ちなみにちゃんと入門したい人は

を手に入れることをオススメします。

もう少し深くJenkinsに突っ込みたい人は話題の蛙本こと

またスライドでも出てきた

は少ないながらも実用的な利用例が書かれていて非常に便利なので、Windowsコマンドプロンプトで格闘する人は手元に置いておいて損のない一冊だと思います。

ふりかえり(?)

  • CIだけでなくバージョン管理にしてもBTSにしても入門には需要がある。*3
  • 適用例として「Web給与明細の自動取得」とかを入れておけば、そしたらSelenuimの話までいけてCIに繋ぐことが出来たなぁ。
  • 既に手を付けてる人向けにSonarの話を盛り込めば良かった。
  • 勝手にコソコソ支援する人を増やせるといいなぁ
  • 彦摩呂川平慈英が似てるというネタがウケたのか、ウケなかったのかが不明*4
  • やっぱり自分は道具の人なんだなぁ
  • Jenkins未体験の人を対象に超入門(真のStartup Jenkins?)と題してセットアップを飛ばして解説+デモ+ハンズオンを2h程度でやれそう*5

*1:まぁ、これ以外はJenkins関連でまともな話は出来ないんですけどねw

*2:どのBTSを使ってるかと言うところまでは聞きませんでしたが恐らく殆どの人はアレを使ってるんだろうなぁ

*3:ターゲットを絞った勉強会の開催が課題

*4:そもそも「出来るんです!」は川口さんには伝わってなかった orz

*5:社内向けにやる方向で検討中

Shibuya.trac #13で「SCRUMでやってみた」の資料公開

僕の前に道はない
僕の後ろに道は出来る
ああ、自然よ
父よ
僕を一人立ちにさせた広大な父よ
僕から目を離さないで守ることをせよ
常に父の気魄を僕に充たせよ
この遠い道程のため
この遠い道程のため
〜道程〜高村光太郎

あけましておめでとうございます。

はてな自体は半年以上放置のうえ年も越してしまいましたが、Shibuya.trac第13回勉強会で「SCRUMでやってみた」という、SCRUMで開発するにあたってどのようにTracを使ったのかという話を前振りにした、自戒を込めた発表をさせてもらいました。


資料と発表の詰めが甘くて伝わりにくかった部分もあり、Tracアジャイルな開発に向かないとも取れてしまう内容になってしまいましたが、伝えたかったのは「ツールが当たり前になったその先を考える」「導入を進めようとした原点を思い出す」の二点でした。

プロセスやツールよりも個人と対話を」という言葉に象徴されるように、プロセスやツールは手段であり目的ではありません。目的達成のために道具に深く関わることになりShibuya.tracに参加していますが、道具を使うことが目的である道具(ツール)の人になりすぎていたなと猛省しています。

BTS/ITSを活用したチケット駆動開発という言葉がメジャーになりましたが、俊敏に開発し純粋に作るということだけ突き詰めると付箋やインデックスカードが最強だと思います。ただ付箋では補いきれない部分(追跡可能性等)を道具(ツール)でどうやって補うかがポイントなんだろうなと。

Tracでも3年」道具を使うことが当たり前になったからこと、当初目的のものは得られたのか、次は何を目指すのか。顧客に価値あるシステムを提供し続ける為の努力を、これからも継続していきたいと思います。

自分の前に道は無くても、自ら切り開き歩くことで自分の後に道は出来る。自分が作った道が元の原野に戻るのか、切り開いた道を他の人が同じく歩むことで道としてあり続けるのか。己の欲求のためではなく後に続く人の為に道を切り開いていければと思います。自分の切り開いた道が原野にならないように時々振り返りながら。

TracLightning 3.1.2 正式版をリリースしました。

TracLightning 3.1.2 正式版をリリースしました。
基本は3.1.1に同梱されている各種プラグインのアップデートですが、幾つかのプラグインや機能が追加になっています。

バックアップの定期実行サンプルの追加

今回のリリース一番のポイントかもしれません(笑)

TracLightningにはJenkinsが同梱されているので、JenkinsのJobサンプルとしてbackup.batを登録ました。*1サンプルではbackup.batの実行だけではなく、バックアップの世代管理が出来るようにしてありますので是非確認してみてください。
なお、Jobがサンプルなのは今後のアップデート等で上書きされる可能性があるためで、実運用で利用する場合には必ずリネームしてから使うようにしてください。

「CIなんてまだまだだから・・・」とこれまでJenkinsを利用していなかった方も、Jobの定期実行や実行ログの保管などJobの実行管理ツールとしても非常に使いやすいので、これをきっかけにCI以外でもJenkinsを使ってみては如何でしょうか。

フォームログインのサポート

各種プラグインをアップデートしたので以前に書いた、フォームログインの利用が簡単になりました。


サンプルのカスタマイズテンプレート追加

「チケットとカスタムクエリの日付表示フォーマットを変える」で書いた、テンプレートのカスタマイズがプロジェクトを新規作成した際にプロジェクトをTemplates以下に

  • query_result.html.sample
  • ticket.html.sample
  • ticket_box.html.sample

としてコピーされます。

チケットとカスタムクエリの日付表示フォーマットを変えたい方はリネームすることで、プロジェクト単位で変更することが可能になりました。



追加になったプラグイン

FootNoteマクロ
脚注をWikiで利用するためのwikiマクロ。
ChangeDateRecordプラグイン
QueryChartプラグインでは自動設定する日付フィールドの更新が一括でしか更新できませんが、このプラグインを利用するとチケット番号指定で行えます。
FlashEmbededマクロ
wikiFlashなどを埋め込む為のwikiマクロ。SlideShareの資料やYouTubeの動画などをwikiに埋め込むことが可能になります。
ExtendVersionPlugin
Ticketのバージョンを使ってマイルストーンを束ねるプラグインです。*2

各種不具合対応

リリースノート及びsourceforge.jpのチケットシステムをご参照ください。

リリース作業について

コミッタとなって初のリリースマネージャとしてのリリース作業*3だったわけですが、着手から3ヶ月やっとリリースできました。
反省点が沢山ありました。大所だけでも、

  • リリース期限を決めなかった。
  • プラグインの不具合に対処しきれなかった。
  • Python力不足

と、まぁコミッタとしては意味致命的ですね(^^;
リリース期限については今回の私のダメさ加減から「決めてから作業する」という方向で動いています。
ただし最大の問題は、プラグインの不具合への対処。元々他のコミッタと比較しても圧倒的にPython力が足りない中で*4、他のコミッタやメンバーにヘルプをお願いすれば良いものを自分で対処しようとした結果、各種プラグインのアップデートに留め早めのリリースを目論んでいいたはずなにの、着手から3ヶ月もかかってリリースとなってしまいました。仕事でもよく同様のパターンにハマることがあるのですが、上手に人にタスクを振っていかないとなぁと猛省しています。

ともあれ無事にリリースできてホッとしていますが、色々足りないところもあるので修行が必要だなぁとシミジミ。TracLightningは、これまでOかもとさんが、一人でリリース作業をしていましたが、今回のリリースからコミッタ3人でリリースマネージャー輪番体制を取ることになりました。リリース頻度は間違いなく上がってくると思います。

不具合や要望がありましたらTracLightningのsf.jpへ報告をよろしくお願いいたします。



おまけ:やりたいなぁと漠然と思ってること
  • プロジェクトテンプレートの管理簡素化
    • 実運用でのプロジェクト作成を楽にするために、Kanonと同じ形式でディレクトリを用意するだけで簡単に追加出来るようにしたい。
  • 各種管理作業のJenkins可

*1:以前に書いた「HudsonをCI以外の目的で使ってみる」を実践的なJobにしました。

*2:Tracのマイルストーンを階層化する - wadahiroの日記

*3:TracLightningがリリースマネージャー輪番体制になってからも初めて

*4:足りないどころか無いに等しい

Shibuya.trac第12回勉強会〜チケット管理システム大決戦 第二弾

ちょうど一ヶ月が経過しようとしていますが、デブサミのセッションでは物足りないという声から、Shibuya.tracの勉強会として行われたチケット管理システム大決戦 第二弾にtracのパネラーとして参加しました。*1

Shibuya.tracの主催なのでホーム有利な流れかなと思いつつ、気が付けば「Tracはアレだけど、そちらは?」みたいな感じで【資料公開】チケット管理システム大決戦 第二弾 | Ryuzee.comと一緒になって完全に煽る側に廻る感じで、かなり話している側として楽しいイベントでした。

打合せゼロだったのですが、Tracチームであるはずの原田さんの上げたメリット・デメリットが、私の上げたものと良い感じで対象になってたのは、ツールのコミュニティーであるものの「道具じゃ無いよね」というスタンスで活動するShibuya.tracとしては非常に良かったなぁと。実はパネラーに指名された際に、もう一人誰にしましょうという話がRyuzeeさんからあったのですが提案して大正解でした。
忙しい中、快諾してくれた原田さんありがとう御座いました。*2

他、細かい話は既に色々なひとが書いてますし、Ryuzeeさんのところに感想含めて纏まってますので、そちららを参照してください(^^;;

個人的にはパネラーの皆さんが、道具が何かを解決してくれるというスタンスではなく、問題を解決するために道具(BTS/ITS)の使い方を考えてたり工夫してるとよというのが、良く分かった非常に良い勉強会になったと思います。

なんか第三弾を〜という声も聞こえるので実現できると良いですね。


追記
あの時話していたTracLightning 3.1.2も一ヶ月経過して、やっとリリース出来ましたので是非お試し下さい。

*1:スタッフの皆さん、色々ありがとう御座いました。

*2:それとRedBullもw