あらすじ
※本書は2009年に発行された書籍の電子版になります。
【どうしたら本質的困難に対応できるのか?】
ソフトウェア開発の難しさは今も昔も変わりません。多くの開発プロセスや言語、マネジメント手法が生まれましたが、デスマーチは終わることも減ることもありません。実はその原因をブルックスは「人月の神話」で本質的困難として指摘しているのですが、その本質的困難を現在のソフトウェア開発はどれだけ克服できたのでしょうか。本書では名著「人月の神話」を振り返りながらソフトウェア開発の本質的困難を再検討し、今後のソフトウェア開発が目指すべき方向を提案します。
■こんな方におすすめ
・ソフトウェア関連企業の経営者
・PM、SE、PG
・ソフトウェアエンジニア
■目次
はじめに
なくならない苦労
人月の神話
本書の構成
●第1章 普遍的な問題
プロフェッショナルとしてのソフトウェア開発
ソフトウェアエンジニアリングとは
人月という考え方の根源
組み合わせの爆発
火に油を注ぐ
労働価値説
●第2章 本質的困難
本質と偶有
本質的困難の普遍性
複雑性とは
同調性とは
可変性とは
不可視性とは
●第3章 人月との戦い
ソフトウェアエンジニアリングは何を解決してきたのか
時代背景と本質的困難の関係
ソフトウェアエンジニアリングと本質的困難
●第4章 これからのソフトウェアづくり
抽象化・自動化・モジュール化
抽象化
仕様化と実現の関係
進化型ソフトウェア
新しい世界観
一様から多様へ
操作から生命へ
可視から不可視へ
本質的困難再考
おわりに―人月の神話を超えて
読書案内
■著者プロフィール
大槻繁(おおつきしげる):日立製作所にてソフトウェアエンジニアリングの研究・開発に従事。2004年よりコンサルタント会社一(いち)副社長。ITシステム関連の調達・開発プロジェクトの見積り評価、診断・改善のコンサルティングを行う傍ら、コストモデルや経済モデルの研究・開発を進めている。IPA/SEC定量的マネジメント領域委員、同価値指向マネジメントWGリーダ、JEITAソフトウェアエンジニアリング技術分科会委員、アジャイルプロセス協議会フェロー、同知働化研究会運営リーダを務める。
感情タグBEST3
Posted by ブクログ
本書は、ブルックスの『人月の神話』を下敷きにして、ソフトウェア開発の難しさと克服の歴史、今後への提言が書かれているものです。
今後への提言としては、「抽象化」、「自動化」、「モジュール化」の観点で地道に進めていくようにとのことでした(やっぱりそれしかないのかなという答えではありますが……)。
そして、「抽象化」について残りのページが割かれているのですが、
まず抽象化の第一の観点は、
・捨象(withdrawing)、削除(removing)する行為
・複雑な対象(complex object)のいくつかの性質(properties)を捨て去り、特定の性質に目を向ける行為
第二の観点は、
・具体的な実体(instances)から共通の性質(common properties)を抽出することによって、一般概念(general concepts)に定式化(formulating)するプロセス
・特定の事例(specific examples)から共通の性質(common features)を抽出することによって形づけられる一般的な概念(general concept)
と、「抽象化」の定義をしたあとに、
例えば、みかんをそこにいる人々に等分するという場合に、各人の個数をxと置いて、
みかんの個数 = 人数 × x
という方程式を立てます。このとき、みかんの重さとか色といった情報は捨象されます。さて、この得られた方程式を解くことは容易です。等式の両辺を同じ数で割ってxの値を具体的に求めることができるでしょう。得られた値は、実際に配布してみて余りがないかで、確認することもできます。
と説明し、抽象化(それに伴うモデル化)が役に立つことを示しています。
と、このように、全体的にソフトウェア開発の専門家でなくても分かるようにまとめられています。また、ソフトウェアの専門家に向けては注という形で補足が充実していますので詳しい人も面白く読み進めることができると思います。
# たとえば、ブルックスが、IBMのOS/360の開発を率いていたことは有名ですが、OS/360プロジェクトの途中でノースカロライナ大学へ移ってしまったなんて知りませんでした!!(『人月の神話』に書いてありましたっけ???) さらに驚いたのは、その混迷のプロジェクトを引き継いだのが、CMMを構築した、あのワッツ・ハンフリーであったそうです。面白い関係ですね。
Posted by ブクログ
久々に感動する本に出会った。そこらの開発ノウハウ本と違い、ソフトウェア開発の本質について鋭い考察がされていてとても興味深い。これを読んだからといって何ができるようになるかといわれれば難しいが、「ソフトウェア開発とは何たるや」という疑問に答えてくれる一冊。
Posted by ブクログ
大槻さんの著書。コンパクトによくまとまってると思う。初谷さんがThink Stitchでやりたいこともこのあたりに根ざしてるのかなー、と個人的に勝手に納得した部分もあった。
各章、脚注が多くて、且つ、章の最後にまとめられている体裁なのがかなり惜しい。これ、基本的に読みにくいと思う。大槻さんほどの記述力があれば、そもそも脚注は殆ど無くして本文に自然に入れ込むコトができるはずだけに却って気になった。
Posted by ブクログ
ソフトウェア開発の世界に入った人は、誰もが一度は「なんでこんなに開発はうまくいかないのだろう」という思いに打ちひしがれると思います。もちろん私もその一人。
まだ開発の経験が浅い方が、「なんでうまくいかないのか」という疑問にかられたとき、本書はその手掛かりになると思います。読むに当たっては専門知識も要さないので、ソフト開発に携わる側だけでなく、いわゆる「ユーザ企業」といわれる側の方が読むのにも適しているかと思います。
なお本書は、著名な「人月の神話」(フレデリック・ブルックス著)をもとに書かれたものであり、より深く知りたい方は、そちらも合わせて読まれるとよいと思います。
Posted by ブクログ
ソフトウェア開発の本質的な難しさを「人月の神話」をベースに簡潔にまとめてある。
抽象化により現実の問題をできるだけシンプルに解決することがソフトウェア開発の最重要ポイント。
ソースコードよりも知識が汎用性が高く価値がある。
Posted by ブクログ
ブルックスの「人月の神話」を踏まえ、ソフトウェアエンジニアリングの歴史を網羅し、そのれぞれの問題点を踏まえ、それらについて解説した本。
ブルックスの著作を読み終わっており、ソフトウェアエンジニアリングについての知識を持っているなら第4章から読み進めてもかまわないかもしれない。
最後の最後で『新しいパラダイムでも本質的困難は普遍的であり、これをあるがままに受け入れる姿勢が求められている。』と身も蓋もなく救いの無い文で終わっているが、これはおそらく人間がソフトウェア開発を続けている限り逃げ切れないものなんだろうと思う。
Posted by ブクログ
フォトリーディングNo.75
目的:なぜ難しいかを把握する
トリガーワード:ソフトウェアエンジニアリング、開発、人月、プログラム、プロジェクト、契約、本質、複雑性、工数、生産性、同調性、可視化、可変性、開発プロセス、抽象度、抽象化、自動化、モジュール化、実体、実現、確認、困難
質問:
①なぜ難しいのか?
②見慣れないトリガは?
~20120719ポストレビューここまで~
~20120720アクティベーションここから~
質問に対するまとめ:
①ソフトウェア自体の難しさ(構成の依存、外部との関係、ビジネス環境や技術進歩への対応、複雑な概念の集積)、要求の高まり、分業によるオーバーヘッド、稼働後の新たな課題、ユーザと開発者の距離
②ソフトウェアの複雑性:仕様、設計、コード全てが大きい事自体が問題。複雑な実世界への接続。
同調性:周辺装置や環境への同調。人が生み出す概念への同調。
雑感:抱えている問題を意識しておきたい。本文で登場する「人月の神話」も要チェック。