ソフトウェアの開発規模
前回の記事で、小規模プロジェクト、大規模プロジェクトという言葉を使っていましたが、
これらの言葉に具体的な定義はありません。(^_^;)
ソフトウェア開発で測定できるもの
ソフトウェアは形がなく、開発規模の測定や予測は難しいです。
けれど、何か定量的に測れるものがないと、開発規模の判断もできません。
判断材料としては、以下のようなものがあります。
開発費用
開発者でなくても測定できるので、上司にプロジェクトの説明をするときには便利です。
ただし、現場の開発者には知らされていないことが多く、
会社によっては、共有が難しいデータかもしれません。
コード行数
コード行数から開発規模を測定することには、いろいろ議論がありますが、
正確に、そして自動的に測定できるのが魅力です。
COCOMO という見積もり手法でも、コード行数が入力として使われています。
トランザクション数、データ数
ファンクションポイントという見積もり手法では、これらが入力として使われます。
ただし、データベースを扱うシステムの開発でないと、利用は難しいと思います。
開発者数
開発者、マネージャ共に目視で確認でき、ソフトウェア開発の経験がなくても、
簡単に判断できる指標があります。それが、
開発者の数です。
もちろん、
- 開発プロセスの成熟度
- 開発するソフトウェアの種類、複雑性
- 開発者が地理的に分散しているか否か
など、影響を与える要因は他にもあります。
しかし、私は経験上、これが一番簡単で確実だと思っています。
最適なチーム人数
以下のグラフは、『
初めて学ぶソフトウェアメトリクス
』という本に掲載されているデータを
グラフ化したものです。(他の書籍でも引用されている有名なデータです。)

チーム人数が、5~7人までは、
「開発工数は投入した人数分上がるが、開発期間は短くなる」
という期待通りの結果になっています。
しかし、それ以上にチーム人数が増えると、
「開発期間はむしろ長くなり、開発工数は跳ね上がる」
という結果になっています。
つまり、
規模の不経済が働くわけです。
小規模開発の限界
私も経験上、7~8人が
「チームとして最適に活動できる人数」の境界線だと思っています。
これ以上に人数が増えると、チーム内で情報をうまく共有することができなくなってきます。
すると、以下のような問題が増え、生産性が落ちてしまいます。
- メンバー全員に情報を共有するのにコストがかかる
- メンバー同士がお互いの仕事や状況を把握できないため、
負荷に偏りが生じたとき、「作業を手伝う」「引き継ぐ」などができなくなる
- 情報の共有不足により、作業の重複、作業の手戻りなどが発生する
最も簡単な対策は、チームを分割することです。
その後は「チームで分業をし、チーム間で連携して開発をする」
という開発スタイルになります。
私は、これが
小規模開発の終わりだと思います。
つまり、「個人の能力のみに頼った開発」が終わり、
チームリーダーを育てる必要が出てきます。
大規模開発へ
大規模開発になると、
開発プロセスの成熟度、
マネジメント能力が
プロジェクトの成否を左右するようになり、管理ツールの導入などが必須になってきます。
では、どれくらいの開発人数になると、その領域に突入するのでしょうか。
私は、これも前述の「最適なチーム人数」がカギだと思います。
つまり、こうです。
チーム数が 7~8 チームを超えてくると、
チームリーダーが全員優秀だったとしても、生産性が落ちてきます。
(リーダ同士の連携が、効率的に行えなくなる。)
こうなると、プロジェクトを分割して管理する必要がでてきます。
この状態は、完全に
大規模開発だと思います。
この規模になると、技術的なリーダーシップだけでは開発が回らなくなってきます。
つまり、プロジェクトを
マネジメントする人が必須になります。
(上の画だとプロジェクトリーダー)
今日のまとめ
- チームの人数が 7~8人を超えたら、チームを分割する
- チームを分割するようになったら、リーダーを育てる必要がある
- チームリーダーの数が 7~8人を超えたら、大規模開発に突入する
- 大規模開発になったら、マネジメントができる人を育てる必要がある
小規模と大規模の間は何なの?(*'-')
これは、中規模開発と呼ばれていて、
「個人の能力に頼った開発」と
「マネジメントによる開発」の間の規模です。
非常に中途半端な規模で、どういった開発スタイルがよいのかは、
プロジェクトごとに異なっていて、私も一概には判断できません。
ただ大事なことは、このときに
「開発規模をこれ以上大きくするのか否か」を決めなくてはいけない、ということです。
- 個人の能力を重視したいから、開発規模の増大を抑えるのか
- 大規模な製品を作りたいので、体制を整え、マネージャを育てて準備をするのか
一番よくないのは、ただ茫然と
開発規模の肥大化を見過ごしてしまうことです。
大規模開発に突入した時点で、プロジェクトは失敗することになります。
そして、大規模開発の失敗は、会社に
致命的なダメージを残します。
ソフトウェアを開発している会社は、開発規模の判断ができないといけないのです。
記事を気に入っていただけた方は、クリックしていただけると励みになります。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
