一緒に仕事しているエンジニアに、「管理やるなら最低これは読んどけっ」と毎月言われ続け、本も貸してもらっているけどまだ読めてない。。
難しそうな書籍のイメージが高いので一旦webでどんな事を言ってるのか理解しようとまとめてみた。まだ途中なので、随時アップデートできればと。
(注意)自分の脳では理解不足、誤解しているところあるかもしれないです。
人月の神話
概要
1975年に刊行された、ソフトウェアプロジェクト管理の書籍。
IBMでの経験が元に、ブルックスが考案した。
「遅れているソフトウェアプロジェクトへの追加要因は更に遅らせるだけ」と説いている。
「ソフトウェア工学のバイブル」と呼ばれている。
プロトタイピングを支持している。
タールの沼
プロジェクトは底なし沼のように、一度入ってしまうと抜け出せない。
遅れているシステム開発もこのようなもので、もがけがもがくほど、遅れてしまう。
人月の神話
人月とは
ソフトフェア実装にかかる工数を人と時間の掛け算で表したもの。
5人が3ヶ月かかって作れるシステムの工数
5人 * 3ヶ月 = 15人月
「コストは実際に人月と月数の積に比例する。が、進捗はそうでない。したがって、仕事の大きさを測る単位としての人月は、疑うべき危険な神話なのだ。人月とは、人と月とが互いに交換できるという意味だからである」。
ブルックスの法則
遅れているプロジェクトに人員を追加すると、さらに遅れてしまうという見解。
プロジェクト管理者は何度も繰り返しこのような過ちをおかしてしまう。
追加人員がなぜ遅れるのか?
- プログラマの学習コスト
- コミュニケーションのオーバーヘッド
- グループ内のコミュニケーション量の公式:n(n - 1) / 2
- 例: 50人のプログラマ -> 50(50 - 1) / 2 = 1225のコミュニケーション経路
どうするべきか?
- スケジュールを立て直す(たっぷり時間をとって、仕事が慎重に、完全にできるようにする)。
- 仕事を縮小する。遅延による二次コストは非常に高い。
セカンドシステム症候群
ソフトウェア開発者が設計するセカンドシステムは、そのソフトウェア開発者がそれまで設計したもののうち最も危険なシステム。
時間などの制約によって実現不可だった機能をセカンドシステムで盛り込もうとする。
ファーストシステムでは現実的だった技術が時代遅れになってしまった事に気づかず、無駄に作ってしまう。
最終的には本筋が見えなくなってしまう。
参考
人月の神話 wikipedia
http://ja.wikipedia.org/wiki/%E4%BA%BA%E6%9C%88%E3%81%AE%E7%A5%9E%E8%A9%B1
セカンドシステム症候群 - Plan9日記
http://d.hatena.ne.jp/oraccha/20090422/1240407037
なーした日記: セカンドシステム症候群
http://suto3.mo-blog.jp/nashita/2006/03/second_system_s_ca7a.html