個人でのプロジェクト振り返り

今回のプロジェクトを振り返ってみての雑感+戒め(*1)。

見積りはどのようなものが出来上がるまでの時間なのかを周知する必要がある

僕の見積りはざっと見積もった時の見積もり方が非常に甘い。僕がこれぐらいでできるって思っているときは大抵出来上がりの完成度合いが人と違うんだと思う。僕がこれぐらいで作れると思う時間というのは動くものができるという時間で周りが求めているものは動く+見た目が整っているというものを指しているという齟齬があるんだと思う。50%ぐらいの時間で動くものは作れるわけだがそこからこのデザインを当てるだの何だのが出てくるものだということを考慮して倍で見積もったほうがいいのかもしれない。ただ、余分に時間を見積もるというのはあまり好きではないし、本来であれば見積りは正確であるべきなので、作れるというのは動くものが作れるというのはきちんとみんなに伝える必要がある。

人が少なければ小回りは効くけど結局人数が多い方が捗る

大人数での開発というのは意思疎通のためにいろいろ手間がかかる。技量もバラバラでコードの書き方も千差万別なのが当たり前なので、それを一つのプロジェクトとして統一するためにはコーディング規約で縛ったりReadmineでタスクを管理したり色々と少人数でやるときはやらなくても良い作業をやる必要が出てくる。プロジェクトを円滑に回すためにはこれは当然で大人数で開発するというのはここらへんの作業も含めて工数を考えるべき。僕は管理をするための工数は出来る限り削りたいと思っているしタスク管理のためにいろいろやったり、技量を合わせるためにいろいろやったりするのははっきり言って無駄だと思っている。なので少人数での作業を好んでやる癖があるし昔を考えても少人数での作業を行なってきた経験が多いのでわざとではないが自分でそうなるように仕組んで動いているのかもしれない。ただ人が少なければ工数は減るけど結局日数がかかる。2人での作業が1人の倍になるわけはないが1.5倍ぐらいにはなる。技術が低い人が入ってきてしっちゃかめっちゃかされて逆に1人でやったほうが早かったんじゃね?って思ったことも昔はあったけど、結局は1人でやるより2人でやったほうが早い。これまでにこの作業をってなったら管理工数がかかるのは置いといて人数を増やしてやるべきなのだろう。

テストコードはなにがあってもかくべき

まだうまい書き方っていうのをわかってはいないんだけど、テストコードは絶対に書くべき。単体テストについてはあまり効果を感じたことは少ないんだけど、結合テストのコードは書かないとまずい。まずいというかソースに手を入れるたびにどこかしらがデグレって結局自分の首を締めることになる。テストコードを端折れば動くものが出来上がるのは早くなるけど、何がしかの変更を入れた時にそこがきっちり動くことを証明するために人の手を使ってまたテストをすることになるから非効率的すぎる。UIのテストをどうすればいいのかまだ上手い方法がわかってはいないんだけど、結合テストのコードはなにか機能を実装するたびに書かなければまずい。アジャイル開発をやるんであれば今あるもののうわっかぶせで作り続けることになるんだから、今あるものが動くというのを証明し続けるテストというのは絶対的に必要で、テストを書く工数がもったいないとか思って逃げると逆に工数がうわづまれることになる。

まとめ

書いたことはふつうのコトなんだと思う。きっちり作業をするって思われている人っていうのは当たり前のようにこれをやっているからきっちり作業をするって思われてるんだと思う。そうなれるように今後の戒めとして。。。



*1: まだ終わったわけじゃないけど