ソフトウェア開発業界の重要キーワード

バグライフサイクルが「バグを愛でる行為」だそうなので、いくつかソフトウェア開発業界の単語をご紹介。

バグ収束曲線

バグを発見数、修正数、修正しない数などで時系列にグラフにする。すると最初はバグ発見数が多く、バグ修正数少ないものの、途中で発見数よりも修正数が増え、最後の方では発見数が少なくなり、修正数も少なくなるという収束曲線を描くといわれている。これがバグ収束曲線。収束していない状況では出荷を見合わせる、判断をするためのツールだそう。実際には品質保証部を納得させるためのもので、データを操作したり、曲線の解釈を変えたりとあの手この手でくぐりぬける。そもそも出荷を見合わせるという選択肢はないのだ。

デスマーチ

締め切り寸前になって残業、終電、徹夜、休出となってしまい最後は3徹夜とか、徹夜数を競うようなプロジェクトのこと。エンジニアはぼろぼろになってもマネージャや他部署の人間はぼろぼろになってないために、関係に亀裂が入ったり、ぼろぼろになったエンジニアのモチベーションが低くなる、出社拒否やうつ病になったりする。でも大体のソフトウェア開発の現場はこれを繰り返す。同名タイトルの書籍あり。

人月の神話

ソフトウェア開発を工数(人月、man month)で計算し、人を投入すれば開発期間が短くなるという神話のこと。同名タイトルの書籍ありで有名。実際には人を投入すれば開発効率は落ち、開発期間はちっとも短くならず犠牲者が増えるだけ。プロジェクトの中盤で人を増員したものはデスマーチとなるジンクスあり。

XP(extreme programming)

テストファースト、カードを使い仕様を作っていく、ペアプログラミング(2人がひとつのコンソールを使ってプログラムをする手法)、40時間労働などメソッドが多彩な理想形。しかし実際の効果はプロジェクトの質や周辺のXPへの理解などによる。アジャイル開発手法の先駆けらしい。週40時間労働してみたい。

トム・デ・マルコ

ピープルウェアのシリーズで有名な、理想系プログラミング環境を提唱した人。プロジェクト管理からプログラミングの環境作り、机の配置やオフィスのつくりまで言及。いや、ほんと、そうなればいいですよね、って感じ。


ソフトウェア開発に携わるひとならだいたいは知っているキーワードで、わざわざ言及するまでのことはありませんので、あとはググって下さい。

デスマーチが無くならない理由のひとつに、実はエンジニアはデスマーチプロジェクトを好んでいるという点。つまり高揚感、達成感があるのでまた繰り返してしまう。ある意味学園祭のノリですね。学園祭は本来スケジュール、締め切り、予算がある完全なプロジェクトにあるにも関わらず、プロジェクト管理の概念は導入せず、若さと体力でなんとかクリア。最後は後夜祭で盛り上がるというアレです。

デスマーチプロジェクトはつねに学園祭前夜の追い詰められた状態を繰り返すという点で共通しており、これを私は「ビューティフルドリーマー症候群」と勝手に呼んでいます。

ま、好きならしょうがないんだけど、ほどほどにしないと病気になっちゃいます。皆さん気をつけましょう。