これ僕.com:行動分析学マニアがおくる行動戦略

意図と行動のギャップから生じる「不自由さ」への挑戦。果たして僕たちに自由はあるのか?

ソフトウェア開発でやること

ソフトウェア開発でやることって、

  1. 何をいつまでに作るか決める
  2. プログラムを書く
  3. 1で決めた通りに動くか検証する

だ。このうち、本当の意味で価値を生み出している時間というのは、2の「プログラムを書く」ところだけ。なんで、あまり意味はないが、極端にいうと2の作業だけで問題なければその方がいい。んでも、まぁ、作って欲しい人と作る人が違ったり、人がやることにはミスがあったりするので、そうもいかない。だから、事前に何を作るか決めたり(要件定義や外部設計)、作り終わった後に検証したりするわけだ(テスト)。この3つの作業は、多分外せない。
さて。では、この3つだけやっていればソフトウェアが出来上がるかと言えば、まぁ、そういうわけにもいかないのが現実。だから、内部設計やったりプロジェクト管理やったりメンバーを教育したりする。
でも。
個人的に思うのは、これらの作業は本来いらない作業じゃん?上で示した3つの作業が滞りなく、効率よく進むなら。
でも。
やっぱそれだと上手くいかないから、仕方なくやるんじゃん?
そんな風に考えてしまうと、なるべくそういう「本来不要な作業」を減らしたくなる。減らしたくなるので、こうならないかな、と思う。

  • プログラマー全員が設計能力を持っていれば、内部設計いらないな〜(つくりを統一させるための約束事は必要だけど)
  • メンバーの数が少なければ、管理体力が少なくて済むな〜
  • 教育不要、あるいはちょっとだけ教育すればOKなメンバーだといいな〜

一言で言うと「少数精鋭」にしたい、と。だから、10人で10の仕事こなせるところに11の仕事がやってきたら、

  • 人数を11人にする

よりも

  • 人数を変えず必死に効率化を模索する(チーム自体を育てる)

方が良いんじゃないかと思った。15の仕事がやってきたとしても、まずは効率化を目指した上で、そんでも足りなさそうな分だけ人を足すという考えの方がいいと思った。
つーか、10人を15人増やしても、多分15の仕事はこなせねー。12くらいじゃね?で、20人にしたら、8くらいになるんじゃね?
なんて事を通勤時間中に考えてたな〜。おかげで読書が進まなかった。


追記。続きはこちら