管理業務を少しつずつやるようになりまして、情報管理や進捗管理がメインになりました。
その場合、比較的イレギュラーなケースの情報管理が面倒でして、自分の場合、特に
- 今やっている作業(開発やdocument修正)と並行して、ソースに修正が加わった場合、それをどう管理、告知し、作業フローに落とし込んでいくか?
- テスト工程以降で、発生した修正に対してどのように業務フローに落とし込んでいくか?
などでいろいろ問題が発生することが多かったです。
ウォーターフォールのようにすすめてはいるんですが、現実的にテスト工程終了後に開発が並行して行われているなんていうのは頻繁にあります。その場合どう対処していくかという問題がついてまわります。
その場合、ややイレギュラー対応がでてくることが多かったんですが、あまり考えずにExcelでの資料をつくって進捗管理することがおおかったです。
ただ振り返っても、無駄な資料を結構作りがちだなぁ・・と思ったので反省の意味もこめて記事をかいてみようかと。
生ソースからの情報の出力を考える
システム開発の場合、必ず元になるソースがあるので、ソースの状態を可視化できれば一番いいので、できるだけ
- 人が見て転記という作業は基本的に無駄と考える(どうしてもそれをしないと成り立たない場合のみ実行する)
- コマンドなどで一括で出力できる手法があればそれを活用する
- 人が見て確認するのではなく、APIのライブラリ(例:swagger)などを検討する
- その他なるべく実ソースとの差分が生まれないような手法を検討する
のようにして、元ソースと差分がうまれないようにすることが大切だと思います。
全力で二度手間、二重管理を避ける
直近で「プロジェクト管理ツールを使っているのに、別途そこから1つずつソースを目視して転記などの作業を行う」、ということをやってまして、もう全力でやめるべきだなと(汗)
もうプロジェクトが動いてしまった場合は仕方ないんですが、なるべく、プロジェクト管理ツール(Redmine,Backlog,Github)などから直で情報を出力でき、そこから情報を見るようにした方がよいなとおもいました。(ラベルやカテゴリーなどのフィルタリング機能を使えば大部分のことができると思います。なるべくそのプロジェクト管理ツールの機能をフル活用して、二度手間や二重管理をしないようにすべきだと思います。)
現状のプロジェクト管理ツールでは無理、どうしてもその作業をしないと立ち行かなくなる時に仕方なく作る・・というような流れにしておかないと資料がどんどん増えてしまいます。
自動化と介入バランスを考える
タスクの割り当てとかある程度、自動化できるものはリーダーがやらずにメンバーに自動でやってもらうとか、プログラムを組んで自動的に割り振るなどでも良いと思います。(完全に自動化すると弊害もありそうですが・・・)
プログラミングではYAGNI(必要性があるまでは考えない)という思想がありますが、実際の情報管理などにおいても必要以上に仕事を作らず、
- メンバー間だけで判断することが難しいか(それができたら一番いいのでまずはそれを考える)
- メンバー間だけだと混乱が生まれ、情報を横串でみないといけないケースのみにリーダーが絡んでくるのでその部分のみ介入する
ぐらいの温度感でいた方がいいのかなぁなんて思います。
本当に必要な作業かを考える
なんか資料作って管理していると「仕事している感」がでて満足度は非常に高いのですが、生産性があがっているとはかぎりません(汗)
同じ生産性を出せるなら作業量は少ない方が当然いいわけで、常に
- 資料に関しては今あるツールの付加機能や元のソースからそれが可能かを考える
- どうしてもその資料を作らないと、作業が進まない時に渋々作る
- この仕事自体いらないのでは?と常に考える
- 惰性でやっている作業を疑う
などと積極的に考えて仕事をどんどん減らしていくことが大切かなと思います。