タスク管理のツールとしてオープンソースのRedmineを使っていた。エンジニアだけで使っているうちは特に問題はなかった。エンジニアが10数名、全員でも40人規模の会社なので全員の作業を見える化したいよねってことで全員でRedmineを使い始めた。そして何が起きたか。
プロジェクトが乱立した
エンジニアであれば「プロジェクト」は単位は大体想像がつくと思う。しかしながらツール上ではその単位でプロジェクトは作られなかった。「正規のプロジェクト」の小規模な機能追加であっても「○○対応プロジェクト」と銘打たれツール上にプロジェクトが作成された。
「〜対応プロジェクト」「〜導入プロジェクト」「〜検討プロジェクト」「〜プロジェクト」・・・どんな言葉にもプロジェクトを付ければ”プロジェクト”にできるんだということは新鮮ではあったし、勉強にもなった。(そもそも”プロジェクト”って何だ?)
そして多数のプロジェクトがそれほどグルーピングもされずに乱立されていった結果どうなったか。
誰が何をやっているかわからなくなった
ツール上に作成された「○○プロジェクト」は実際に手を動かす作業者しかプロジェクトメンバーに登録されていない。Redmineは様々な変更をプロジェクトメンバーに通知してくれるが乱立した「ツール上のプロジェクト」では直接の作業者へしか通知がされないことになり「正規のプロジェクト」のメンバーは全体を把握するのが難しくなった。
スケジュールが管理できなくなった
何を言っているかわからねーと思うが俺も何を言っているかわからない。
ようはバージョンやマイルストーンに変わる単位としてプロジェクトが生成されていた。最初はそれでも大丈夫だったのだろうが、沢山プロジェクトが作成されるとどれが現在アクティブなプロジェクトがわからず、今何がどれだけ進んでいるのかはさっぱりわからなくなった。
そして俺が死んだ
とあることで社員1人1人にヒアリングを行っていた。(この話も別の機会に書きたい)みんなが口をそろえて「誰が何をやっているかわからない」「今どの案件が進んでいるのかわからない」と言い出していた。「Redmine上に全部書いてありますよね?」と尋ねても同じ回答が返ってきてようやく深刻な問題だということに気付いた。
奇妙な使い方だとは思いつつ当人達はそれが使いやすい方法なのだろうと放置していたけど実際には使いやすい方法ではなかったのだ。
そこから乱立したプロジェクトの統合やプロジェクト上のタスクやWikiの大移動を始めた。悲しいかなRedmineではマイルストーンやWikiのプロジェクトの移動に対応していないので、わざわざRedmineのプラグイン(タスク)を書いてActiveRecordのモデルやSQL文を直接実行したりした。直接実行するのは怖いからわざわざVagrant+Chef Soloで同じ環境を作って検証することもした。各メンバーに移動していいか確認しながら1週間かけてようやく整理ができた。
真の問題
慣れていないことをするのだからもともと失敗すると思っていたし、最初から細かいルールを作っても大変だろうから、実際に問題が起きて理解してもらってからルールを構築していけばいいと思っていた。だから非効率な使い方になったのは想定内である。根本的な問題は誰もが良いやり方だと思っていないのにも関わらずそれを変えようと相談したり実行したりしなかったところだ。
そもそも使い方がわからないならそれを考えればいいし、問題があれば修正すればいいだけの単純な話だ。この単純なことを実行するのは本当に難しいことなのだろうか?
ルールやツールは守るため、使うためにあるのではなく、いいアウトプットを出すための手段でしかない。結局のところ良い仕事をする、良いものを作るのは運用ルールでもツールでもなく人だということである。しかし自発的に人を巻き込んで問題を解決できる人はそうはいない。経営者はみんなにそうして欲しいだろうしそういった文化を作りたいと思うだろうが、営業時間会社にいればサラリーが貰える環境ではなかなかそういうわけにはいかない。周りに流されて仕事をする方が圧倒的に楽だからだ。
僕はルールを作ったり、コードを書いてツールを向上したりデータを整理することはできても、人の心を変えたり教育する力はまだ持ち合わせていない。それをどこまでやるべきなのかという落とし所もよくわかっていない。客観的に見ても僕が開発に時間を割けないことは会社としてはマイナスなはずだ。開発ができない人や苦手な人でもモチベーターとして有能な人がいるならその人に任せたいのが正直なところ。
ベホマやザオリク唱えられるMPにも限界がある。