1人で行う副業とチームで行う本業の品質の違い

毎日コンスタントに副業をこなしているが完全に1人プレー。1人営業兼開発兼PMなのだけれど、細々と仕事があったりする。基本的に一ヶ月で2~3人日程度しか仕事をしないのだけれど、それでも年で見たらボーナス1回分ぐらいは稼いでいて、大変家計の足しになっている。家も購入できる。いや、できたらいいな。できるか?

副業を1人でやっていると言う点に戻す。1人開発はかなり気楽だし、なんだったら下手な人と組むと余計効率悪いからずっと1人でやりてえなぐらいに思ってた。ただ、最近はチーム作業も良いものだと感じている。

と言うのも、今の会社に入社して、きちんとレビューという仕組みが機能しており、レビューを通るとどんどん品質が上がっていくのを肌で感じているからだ。それは何もバグの早期発見とかそういう華のあるものだけでなく、コードのコメントとか、ドキュメントの日本語のブラッシュアップだとか、技術のトロの部分だけでないあらゆる面での品質アップだ。コメントの誤字修正ですら立派な品質アップだ。僕は今の会社に入ってから、イケてない設計をレビュー段階で修正したことが2回ある。これがそのままデプロイされていれば、3年後あたりに「なんだこのクソコード!」とイケイケ系エンジニアに揶揄されていたことだろう。

レビュアーの技術力がそもそもしっかりしているというのも大きいが、それ以上に他人に見せるという行為そのものに意味がある。まず、他人に見せるとなった場合、それなりのコードを書こうと努力するものだ。だから、なんか怖そうな人にレビューを受けるというイベントがあるだけで、レビューそのものがイマイチでも意味が出てくる。このイベントを設けやすい点で、チーム開発は意義がある。個人開発であっても無論レビューをするが、レビューといっても所詮自己レビューなので、たかが知れている。事実、僕が個人開発したものでイケてないコードは腐る程ある(おい)

なので、個人開発はその仕組み上、品質は低めになるというのを念頭に置いていた方が良い。で、じゃあ会社に頼もうってなるけど、会社も蓋を開けてみたらアサインされてる人1人だけで、え? 個人開発じゃん? みたいな会社もあるから、発注者は十分に注意すべし。