勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

モダン・ソフトウェアエンジニアリングの前半を読んだ #デッドライン読書会

読むのが骨な(積みがちな)技術書やビジネス書を取り上げて2週間の読書期限を課して読んでアウトプットする仮想読書会「デッドライン読書会」の第18回。今回ピックアップするのは「モダン・ソフトウェアエンジニアリング」である。分厚いので前後編に割って、今回は「第Ⅰ部 ソフトウェアエンジニアリングの本質」と「第Ⅱ部 Essenceを使ったソフトウェア開発」までを読んでいる。残りは第19回で読む予定。

なお今回は翔泳社から訳書をPDFで購入して読んでいる(購入時点で割引クーポンがあったからだけれど)。

前半読了時点の総評(後半を読んだら変わるかもしれない)

  • 私は非常に楽しんで読んでいる。ただし万人向きではない。誰にでもオススメできる本ではない。次のような事を考えたい人向きではないだろうか
    • ソフトウェア開発の本質について考えたり、考察したい
    • 高い抽象度でソフトウェア開発方法論の歴史的経緯について知りたい
    • 独自のソフトウェア開発方法論、もしくは既存の方法論を大きくテーラリングすることを考えている
  • ソフトウェア開発における業界、分野的な問題点に鋭く切り込んでいることは確かだし、その点は非常に興味深い(時折差し挟まれる業界ディスが楽しい!)
  • 主題の(Essenceという名前の)方法論そのものについては本書では説明されていない。活用方法を中心に触れられている

とにかく、いろんな意味で難しい本です

モダン・ソフトウェアエンジニアリングが語ろうとしている事

大事なことなので何度も言うが、本書は特定のソフトウェア開発方法を教えるものではない。優れたソフトウェアをもたらす作業方法の作成方法を教えるものである。
モダン・ソフトウェアエンジニアリング」はじめに、より

というわけで本書の中心として語られているのはEssenceという名前の「ソフトウェアエンジニアリングの汎用的な共通基盤/記述言語」と、その活用方法である。

今日のソフトウェアエンジニアリングは、未熟なプラクティスによって重大な妨害を受けている。具体的な問題として、以下が挙げられる。

  • エンジニアリングというよりファッション業界でよく見られる一時的な流行の蔓延
  • 妥当性のある広く受け入れられた理論的基盤の欠如
  • 違いがほとんどないにもかかわらず人為的に誇張された無数の手法とその派生形
  • 信頼できる実験的な評価と検証の欠如
  • 業界の慣行と学術研究の分断

モダン・ソフトウェアエンジニアリング」第2章 ソフトウェアエンジニアリングの手法とプラクティス

という問題認識に対して、「汎用的な考え方と拡張方法」を以て共通基盤を創出する、というのがゴールである。(上記の問題認識については、平鍋さんの2010年のブログ記事も参考になる)

で、具体的にどんな感じになっているかというと

もし本書を読む前に、Essenceってどんな感じなのかを知りたければ、訳者の角征典さんの資料を見ていただくのがいいだろう
speakerdeck.com
まあ資料でも触れられているが、初期にUMLが登場したころと同じ感情がわきおこる・・・

モダン・ソフトウェアエンジニアリング(という本)の弱点

というわけで、本書で紹介される概念には期待も大きい一方で、「こんなの使いこなせるのか」という懸念も感じながら読んでいるわけだが、いくつか気になった点もある

まぁEssence標準は気になった人だけが読めばいい(一般の人はとりあえずアルファをそのまま使えばいい)という割り切りなのだと思うけれど、ちょっと残念に感じたのであった。

つづく

というわけで、楽しみながらも「頭をかかえながら」読むタイプの本で知的好奇心的には刺激されまくりである。
が、皆さんが本書を読むかどうかは慎重に判断いただいたほうがよさそう。