締め切りに追い立てながら積読書を解消するデッドライン読書会。第18回から新しい本になりました。デッドライン読書会ってなに?は下記の投稿をご参照ください。

課題図書

 今回の本は、モダン・ソフトウェアエンジニアリングです。

[amazon asin=”4798165220″ price=1 kw=”モダン・ソフトウェアエンジニアリング”]

大変そうな雰囲気がある本書は、半分ずつ合計2回で読み切ります。前半戦の今回は、第一部「ソフトウェアエンジニアリングの本質」、第二部「Essenceを使ったソフトウェア開発」が対象でした。

感想文

 全体の感想文と、個別のコメントを書きます~。

全体

 本書を取ったきっかけは、スマートエスイーという勉強会に参加したことです。

https://smartse.connpass.com/event/178626/

著者のイヴァー・ヤコブソンさんもビデオ出演していました。Essenceについて知識ゼロだったため、実は勉強会に参加したとき、ほとんどのコンテンツについて理解できませんでした。ただし最後にESMの平鍋さんが「Essenceは開発手法に関する共通言語であり、PJの成功ノウハウを他チーム、他企業へ展開でき、業界のレベルを上げることに貢献できる」とおっしゃったことに大きな感銘を受けました。業界のレベルをあげるというのはハードルが高いですが、少なくとも会社の中でプロジェクト横断して活用するという手段はあるんじゃないかと期待しています。

 本書で出てくる共通言語Essenceは、強引に表現すれば、UMLの開発プロセス版のイメージです。Essenceの記述方法を理解していれば、他の現場で扱っている開発プラクティスや、それを組み合わせてできている開発プロセスを、Essenceという共通言語を通して理解することができる(はず)といったものです。Essenceを理解していれば個々のプラクティスやその集合に対する理解も簡単になる(はず)。たしかに世の中には手法が大量に存在し、その手法を自分たちのチーム用にカスタマイズして実践している現場は多いです。それぞれの現場のコンテキストに最適化された手法はいかに良いものだとしても、コンテキスト外の人たちが真似することは、自然言語だけではハードルが高いです。いまある打ち手は経験主義くらいところでしょうか。それに対して、Essenceは共通言語を使うことで、理解を促してくれるわけです。

 今回の前半の範囲では、ソフトウェアエンジニアリングの重要さ(理論の重要さ)、Essenceの概要、Essenceの単独プロジェクトでの活用例が紹介されています。Essenceの概要については翻訳者の角さんが要約したスライドがありますので、この部録では言及はしません。

 本当の意味での標準はOMGにて管理されています。

https://www.omg.org/hot-topics/essence.htm

 Essenceの単独プロジェクトでの活用例では、アルファの状態遷移を使い、プロジェクトメンバー同士でプロジェクトの状態を計測する方法(進捗ポーカー)などの紹介がありました。Doneの定義(DoD)や、Readyの定義(DoR)をすり合わせる道具のように使うイメージです。ただ…わざわざこんな重たい方法(カードの種類も状態の種類も大量にあるので)ですり合わせる必要があるのか、実用性はけっこう疑問に感じました。

個別

ここからは個別に線を引いたところへの感想です。

本書は学生の役に立つ

P. XVI はじめに

複雑なソフトウェアエンジニアリングを理解するためにこの本で基礎を学ぼうという位置づけとのこと。ひょっとしたら本書では味わえるのはEssenceのさわりだけなのだろうか。(後半に期待)

Essenceのコンセプトは、ソフトウェアエンジニアリングにおけるさまざまな現象の最も重要な特徴を抽出するためにデザインされている。

P.79 7.2 理論の使用

これが期待しているポイント。

ソフトウェアのプロになると、ソフトウェアエンジニアリングの理解と解釈を少しずつ高めていかなければならない。(略)自分の理解を形成したいと思うようになる。前述したようにEssenceのカーネルはこの分野の基礎を提供している。

P.85 7.5 理論的基礎によって成長する

これも同上で期待しているポイント。自分が実践している手法を今後どう成長させていけるかを考えたり。何に強いのか何に弱いのかを分析したり。そういったことがEssenceを用いればできるのでは?と思っています。(ただ前半ではそこを味わえていない)

 前半戦はこんな感じでまだ本当に味わいたいところにたどり着けていないような状態です。後半に期待ですかね。

次回

  • #19
    • モダン・ソフトウェアエンジニアリング(後半戦)
  • デッドライン
    • #18の感想交換1Week(9/14〜20)
    • #19の読書する時間2Week(9/21~10/2)
    • #19のブログポスト期限(10/3)