スキップしてメイン コンテンツに移動

『人月の神話【新装版】』Jr FrederickP.Brooks ☆3

ITシステム開発全般における指南書的な本。なんと初版1975年なのですが、いまにも通じることが多いのと、40年前とは思えない先見性のある本なのです。


↑気になったらここからポチっと↑

人月ってなに?

”人月”という言葉は聞きなれないかもしれません。”にんげつ”と読み、英語でもそのままMan-monthと表現します。人月とはIT業界(特にシステム開発ビジネス)でアプリなどを開発する際の見積もりの単位で、一言で言うと”それを開発するのにどのくらいの人数・期間が必要か”です。例えば、10人月であれば、1人でやれば10ヶ月・5人でやれば2ヶ月かかるボリュームということになります。

アプリケーション開発における見積もり

アプリケーション開発における見積もりはこんな感じで行われます。

1. 開発するソースコード量の見積もり

過去の経験やら類似プログラムやらを基に、プログラムのソースコードで何行くらいになりそうかを見積もります。Ks(キロステップ=ソースコード1,000行)という単位で表されることが多いです。

例:xxアプリのソースコード量の見積もりは10Ks(10,000行)

2. 生産性指標に基づいた工数(人月)の算出

IT各社で生産性の指標・ガイドラインを持っており、それに基づいてどのくらいの工数が必要かを算出します。生産性の指標は1人月=1Ks(1人のSEは1カ月で1,000行のソースコードが書ける)のように表されることが多いです。(厳密に言うと、ソースコードを書くプログラミングだけでなく設計書などのドキュメンテーションやプログラムに対するテストなども含めた指標とする場合や、ドキュメンテーション・コーディング・テストなど工程ごとに指標を設けている場合があります)
なお、生産性はプログラミング言語(JavaやPython・C・Cobolなど)によっても違いますし、同じ言語であっても対象となるアプリのミッションクリティカル度によっても異なります。例えば、重要性の高い企業の基幹系システムであれば入念にテストをする必要があるので低めの生産性指標を設定していたりします。

例:生産性指標が1人月=1Ksだった場合、10Ks開発するための工数は10人月

3. 開発費用の算出

生産性と同様に、1人月あたりの費用(SEの1カ月当たりの労務費)も各社で指標を持っており、人月に掛けることで開発費用を算出します。

例:1人月=100万円だった場合、10人月は1,000万円

この費用は開発にあたるSEの原価であり、これに管理者の費用やら開発に必要な物品費やらバッファ(なんかあった場合の予備費)を積み、開発にかかる原価を算出します。最後に利益分を積んだ金額がお客さんへの提案価格となります。けっこう泥臭い見積もり方ですよね。

人月ベースでの見積りの限界

IT業界では上記のような人月ベースでの見積もりが古くから行われており、その限界が指摘されるケースが増えてきています。

例えば自動化ツールを使うと、設計書からソースコードが自動的に作られ、簡単なテストくらいまでは機械がやってくれます。従来の人月ベースの考えに当てはめると、1人月あたりの生産性が飛躍的に高まります。しかし、生産性が高まってしまうと見積もる際の工数が小さくなってしまいます。先ほどの例では、1人月=1Ksだったところが、仮に1人月=2Ksと生産性が倍になると10人月必要だった工数が5人月になってしまいます。そのぶん提案価格も下がるので、IT企業からすると効率化したぶん売上が減ることになります(価格が下がる分競争力は増しますが)。

ちょっと極端な例ですが、人月ベースの見積もりは人間が作業することを前提とした見積もりなので、自動化や機械化の流れと整合するのが難しかったりするのです。

本書の紹介

前置きが長くなりました。僕も人月ベースでの見積りの限界を感じており、何かヒントがないものかと本書を手に取った次第です。

初版1975年の本だった

タイトル的に最近書かれた本なんだろうなと思いながらパラパラ読んでいたのですが、なんと1975年(僕が生まれる前!)に書かれた本だったのです。著者はIBMのSystem/360という初代のメインフレームマシンの開発マネジャーをされていた方で、当時の経験に基づいて人月の限界やシステム開発のお作法などが論じられています。

古くて新しい

書かれたのは40年以上前ですが、”システム開発あるある”が色々出てきます。例えば、
  • 人月の誤った考え方は、”人と月が交換可能”であると考えること。例えば、10人月の仕事は理屈上、1人で10ヶ月・10人で1カ月となるが、そんな単純なものではない。
  • 遅延したプロジェクトへの要員追加はさらなる遅延を招く。
  • 一度構築したシステムに機能追加(追加開発)を繰り返すとモジュール数は線形に増えるが、影響範囲は指数関数的に増える。
などなど。

また、1975年の時点で、今で言うJavaのようなオブジェクト指向型言語や、設計書などのドキュメントからのソースコード自動生成・テスト自動化の可能性を提唱するなど、先見性にあふれているのです。

20年目の再検証

初版は1975年ですが、それから20年たった1995年に著者が当時提唱した内容の再検証と今後の展望を追記しています。当時の論旨は一部誤っていたものの、概ね合っていました。また、1995年時点で以下のような将来展望が記載されています。
  • マウスによるポインティングデバイスの限界。マウスによる操作には限界があり、音声操作になるだろうと書かれています。実際に、スマホ・タブレットでは指による操作になりましたし、SiriやAlexaのような音声による操作が広まりつつあります。
  • インクリメンタルな開発。期間をかけて最終製品を作るのではなく、動くものを少しずつ作っていくアジャイル開発のような方法論が提唱されています。
  • システムの機能の再利用を促進するためのメタプログラミングインタフェースという概念が提唱されています。今で言うAPI(アプリケーション・プログラミング・インタフェース)のような概念です。
1995年というと、Windows95が発売された年なので、その先見性に驚くばかりなのです。

↓気になったらここからポチっと↓

ベストビュー(過去1カ月)

『九龍城探訪 魔窟で暮らす人々 - City of Darkness』 ☆4

魔窟とも言われた香港の九龍城の住人へのインタビューや、在りし日の写真集。香港の本土返還に伴い取り壊されてしまっているけど、その怪しさに妙に惹かれるのです。

【番外編】ボストン旅行記(UMASS Lowell卒業式編)【Day 4:卒業式】

UMASS Lowellの卒業式@Boston。4 日目は卒業式本番です。とても賑やかでアメリカンな式典でした。ただしあいにくの雨、僕曇り男なのに。。

【番外編】ボストン旅行記(UMASS Lowell卒業式編) 【Day2:晩餐会】

UMASS Lowellの卒業式@Boston。 2日目は午前中はボストン観光、夕方から Hooding ceremonyという卒業生(大学院生)向けの晩餐会です。卒業式で被るHoodをもらいました。

【番外編】ボストン旅行記(UMASS Lowell卒業式編) 【Day0:渡米前にやっておくこと】

UMASS Lowellの卒業式@Bostonについて、計画の立て方やら行く前にやっておくことやらをまとめておきます。

【番外編】ボストン旅行記(UMASS Lowell卒業式編) 【Day3:終日観光】

UMASS Lowellの卒業式@Boston。3 日目は終日フリーなので、ゆっくりボストンを観光しました。

【番外編】ボストン旅行記(UMASS Lowell卒業式編) 【Day5:帰国】

UMASS Lowellの卒業式@Boston。5 日目にして帰国なのです。

【番外編】ボストン旅行記(UMASS Lowell卒業式編) 【Day1:ボストンへ】

UMASS Lowellの卒業式@Boston。 1日目は移動だけで終わりました。

『女たちの王国 「結婚のない母系社会」中国秘境のモソ人と暮らす』☆3

雲南省と四川省の境にある「世界で最後の母系社会を営むモソ族」の社会に入り込んだ中華系シンガポール人女性の手記。結婚という概念がない・一夫一妻制でもないなど、父系社会が当たり前の我々にはイメージしづらい世界ですが、命をはぐくむ女性を中心とした母系社会のほうが生物としては正しい在り方なのかもしれません。

【番外編】AI(機械学習)やってみた。【第3回】ソムリAI ~ニューラルネットワーク編~

AI(機械学習)やってみた、第3弾です。「ニューラルネットワーク(Neural Network)」を使ったソムリAIを作ってみようと思います。”ニューラルネットワーク”、見るからにAIっぽい名前ですよね。

『深層学習教科書 ディープラーニング G検定(ジェネラリスト) 公式テキスト』 ☆5

一般社団法人日本ディープラーニング協会が実施している「Deep Learning for GENERAL (通称G検定 ) 」 の公式テキスト 。 ディープラーニングについて1冊で網羅的によくまとめられているので 、 ディープラーニングの入門書としてもおすすめです 。 ついでに勢いで資格も取ってしまいました 。 AI人材への第一歩なのです 笑

ベストビュー(全期間)

Malaysia Quarantine Premium Package 【番外編】Malaysia赴任記 隔離ホテル情報

Once entering Malaysia, we need to be quarantined for 14days. At the beginning of COVID-19 spread, the hotel for quarantine have been determined randomly. In these days, we can choose "premium quarantine stay package" in advance . This article is summary of premium packages which I asked each hotel. Note: Information in this article might be old. It's better to confirm the latest plan to the hotel. Note: Only Hotel Istana can be booked via its homepage so far. As the other hotels don't show their premium package plans on their homepage, you need to contact them through their reservation E-mail address or "Contact us". マレーシア入国とともに14日間ホテルで隔離されます。当初は滞在ホテルがランダムに割り振られていたようですが、より快適なプレミアムプランが追加されました。各ホテルにどんなプランがあるのか聞いてみたので、聞いた内容をまとめます。 ※情報が古い可能性があるので、念のため最新情報を各ホテルに確認したほうがよいかもしれません。

【番外編】AI(機械学習)やってみた。【第1回】ソムリAI ~決定木編~

最近ブームのAI(機械学習)に手を出しました。まずは、決定木(Decision Tree)というモデルを使って「ソムリAI(ワインソムリエAI)」を作ってみようと思います。

【番外編】ボストン旅行記(UMASS Lowell卒業式編) 【Day0:渡米前にやっておくこと】

UMASS Lowellの卒業式@Bostonについて、計画の立て方やら行く前にやっておくことやらをまとめておきます。

【番外編】AI(機械学習)やってみた。【第6回】乳がん診断AI その1

ソムリAI(ワインソムリエAI)で使った手法で乳がん診断AIを作ってみます。まずは決定木とニューラルネットワークの2つのモデルを試してみます。かなり高性能なモデルができました。名医誕生かもしれません 笑

【番外編】AI(機械学習)やってみた。【第3回】ソムリAI ~ニューラルネットワーク編~

AI(機械学習)やってみた、第3弾です。「ニューラルネットワーク(Neural Network)」を使ったソムリAIを作ってみようと思います。”ニューラルネットワーク”、見るからにAIっぽい名前ですよね。

【番外編】ボストン旅行記(UMASS Lowell卒業式編) 【Day5:帰国】

UMASS Lowellの卒業式@Boston。5 日目にして帰国なのです。

【番外編】ボストン旅行記(UMASS Lowell卒業式編)【Day 4:卒業式】

UMASS Lowellの卒業式@Boston。4 日目は卒業式本番です。とても賑やかでアメリカンな式典でした。ただしあいにくの雨、僕曇り男なのに。。

【番外編】AI(機械学習)やってみた。【第2回】ソムリAI ~ロジスティック回帰編~

AI(機械学習)やってみた、第2弾です。前回は決定木(Decision Tree)を使ったソムリAI(ワインソムリエAI)を作りました。今回は「ロジスティック回帰(Logistic Regression)」というモデルを使ったソムリAIを作ってみようと思います。

【番外編】ボストン旅行記(UMASS Lowell卒業式編) 【Day2:晩餐会】

UMASS Lowellの卒業式@Boston。 2日目は午前中はボストン観光、夕方から Hooding ceremonyという卒業生(大学院生)向けの晩餐会です。卒業式で被るHoodをもらいました。

『深層学習教科書 ディープラーニング G検定(ジェネラリスト) 公式テキスト』 ☆5

一般社団法人日本ディープラーニング協会が実施している「Deep Learning for GENERAL (通称G検定 ) 」 の公式テキスト 。 ディープラーニングについて1冊で網羅的によくまとめられているので 、 ディープラーニングの入門書としてもおすすめです 。 ついでに勢いで資格も取ってしまいました 。 AI人材への第一歩なのです 笑