なぜITS導入は失敗したか?あるいは僕のがっかりメモ

出張してもどってきたら社内Tracが残念なことになっていた

最近、もともと所属していたチームをはなれて外で開発をしていた。
久しぶりにもどってきてTracを覗いたところ、非常に残念な感じなっていて、有り体に言えばゴミタメになる寸前だった。
(今現在も解決していない)

ほかのチームでRedmineを展開してそこそこ上手くいっていたので、
なんでこんなことになったのか?どうすれば防げたのかをいろいろ考えた。

個人的なメモ。

何がいけなかったのか

個人的に思うところは以下の3点

・マイルストーンの役割を誰も理解していない
・バグ表を作る人(≒リーダー)がTracを使えない、使う気がない
・求められる機能とTracの機能に乖離があった

マイルストーンの役割を誰も理解していない

「ソフトウェアのリリースとITSのマイルストーン、リポジトリのブランチはそれぞれ同期する」なんて
ITS使ってる人には常識。

これは プログラマの思索 で あきぴー さんが再三指摘されていることなので、
理論的な部分についてはそちらを見てほしい。

この理解がないとチケットの収拾がつきにくく、want fix していいのかどうかの判断もできない。
結果、関係者に話を聞いてまわることになり、ITSを使う意味がなくなる。

この辺は導入者の啓蒙に責任がある。
責任者はどこか。

僕である。

Redmineを導入したプロジェクトでは事前にRedmineによるタスクマネジメント実践技法を読んでいたし、
チームのリーダーと一緒に見ながら導入したりしたので、マイルストーンを立てる人間の意識を作ることが出来ていた。
この違いは大きい。

教訓:最低でもマイルストーンを立てる人にはマイルストーンの役割をきちんと説明する。

バグ表を作る人(≒リーダー)がTracを使えない、使う気がない

これもまた啓蒙の問題。

バグ表を作る人は大抵プロジェクトのリーダーだ。

彼らにITSを使うようにさせない限り、日付付きExcelのバグ表を量産し、そちらに記入しろと強制してくる。
二重起票は面倒臭いし、うるさいことを言われないITSは徐々にメンテされなくなる。

しかも大抵の場合、プロジェクトのマイルストーンを決定するのは彼らだ。
だから、何がなんでもプロジェクトのリーダーにはITSを使わせる必要がある。

社内でITSを展開している場合、社外からアクセス出来ないことを理由にITS利用に及び腰になる人は多い。
先回りしてExcelのインポート・エクスポート機能を提示し、どうしてもアクセス出来ない場合は
Excelをメールでやりとり出来ることを教えれば多少は安心する可能性はある。

教訓:プロジェクトリーダーの退路を断ってITSを使わせる

求められる機能とTracの機能に乖離があった

僕の所属していたプロジェクトはいわゆるソリューション開発というやつで、リリースするお客さんごとに
微妙にカスタマイズするのが常である。

SCMについてはメインラインモデルを利用した管理で十分だったが、ITS側でもカスタマイズごとに
プロジェクトを分けて管理した方が、視覚的にも整理されたのではないかと感じる。

TracでもTraMで複数プロジェクトが管理できるが、Redmineの「プロジェクトの親子関係」の方が
直感的で分り易く、やりたいことがすぐに実現できたのではないか。

事実、Redmineを導入したプロジェクトもソリューション開発であるが、早期からプロジェクトの親子関係を
使って顧客ごとにプロジェクトを分割したため、要件の整理に大変役立った。

教訓:ITSによって向き不向きがある。1W程度試用して、やりたいことができるのか確認するべき。


他にもブランチマネジメントが微妙だったとか、CIあるのに一時の速度を求めてメンテしないとか
いろいろ問題はあるけど、「ITSで何ができるのか」をきちんとメンバーに教えるのが導入者の役目。
そこをサボってしまったことに、今回の問題の本質があるように感じる。