チーム開発について
TL;DR
チーム開発することで
- 生産性(生み出した価値/コスト)を上げよう
- 価値のあるものをいち早くリリースできるようにしよう
- 同じクオリティで替えのきくものはコストの低いものに替えよう
- 不要なものは削ろう
この記事の目的
なんでチーム開発するんだっけ?
チーム開発で何を目指すんだっけ?
などのチーム開発に対する考えを整理したく書きました。
個人・チーム関係なく必要なこと
個人・チーム関係なく開発者に求められるものとして
生産性が高いこと
があるはず。
生産性の定義
生産性という曖昧な言葉でなく厳密な定義を確認する
経済学で生産活動に対する生産要素(労働・資本など)の寄与度、あるいは、資源から付加価値を産み出す際の効率の程度のことを指す。 Wikipedia:生産性
寄与度 効率
とあることから生産した量は関係なく、どれだけの価値を出したかということになる。
つまり
生み出した価値 / コスト
ここでいう生み出した価値は最終的には売上ということになる。
その途中の要素としてユーザー満足や会員登録数などのKPIの事とも言えそう。
つまり、価値のあるものをどれだけ早くリリースできるかが重要になってくる。
生産性を上げる要素
早い安い美味いが基本だと思う
- 早い(リードタイムが短い)
- 安い(コストが低い)
- 美味い(生み出す価値が高い)
早い(リードタイムが短い)
リリース(価値を届ける)までが早いこと
安い(コストが低い)
たぶん早いと同じ要素だと思う
美味い(生み出す価値が高い)
- サービス関係
- 機能追加、改善などのリリース
- 技術関係(システムの品質)
- バグ
- セキュリティ
- 可用性、保守性
チーム開発のメリット
個別作業するのに比べて生産性が向上する(はず)(だと思いたい)
重複するものもあるが以下のようなものが考えられる。
チーム開発の手法
チーム開発で生産性を上げる手法としていろいろある。
雑記:最強のチームとは?
sp.22a【ゲスト: kyon_mm】楽しい受託開発現場で作る「世界最高の開発チーム」で出てきた話
ソフトウェア工学の教科書にチームの名前が載る 歴史に名を残す
ここまで高い目標を持っていたら普段からいい仕事ができそう。
心に留めておきたい。