【書評】[Ivar Jacobson]モダン・ソフトウェアエンジニアリング

Amazonリンク


モダン・ソフトウェアエンジニアリング

著者について

ivar jacobson

ご存知UMLとかを策定した一人らしい。きっと有名人なんだろうね。

書評

書籍概要

標準化団体OMGによって規定された、「Essence」というエンジニアリングの共通的なやりかたについて、その詳解を記した書籍です。
以下ざっくり章の構成。

第1章

この業界、現場やプロジェクト次第で身につく能力とかまちまちですよね。
そんなのでいいの? 共通化できるよね! しました!とのこと。

第2章

そもそもプロジェクトやエンジニアリングなんてのは「なにをもって完了とすべきか」→「そのためになにを?」→「どのように?」で考えるべきで、手法を先に当てはめるものではないよね。
「アジャイルだ」「ウォーターフォールだ」ではなく、ユースケースやユーザーストーリーなどからいいとこ取りして、自分たちに最適なやり方でやろうぜ! とのこと。

第3章

そこで、Essenceです。
いろいろなエンジニアリングで必要不可欠な要素を切り出したりまとめたりして、標準化しました!
もうウォーターフォールやアジャイルみたいなパッケージ化された手法に頼らず、全てを自分たちに必要な形で採用することができます!

第4章~第7章

というわけで、顧客、ソリューション、活動、という3層だったり、顧客[機会、ステークホルダー]みたいな細分化だったりを詳解するよ。

あとの章

実際にスクラムチームに適用してみよう。もっと大きな会社構造を表現してみよう。など。

Q. 表題のモダンソフトウェアエンジニアリングとは? A. Essenceです(ドヤァ)

Essenceは「カーネル」という、エンジニアリングの本質を表すことができます。
それらは以下となります。

  • アルファ[Alphas] : エンジニアリングに存在する、必要不可欠な要素です。以下で説明します。
  • アクティビティスペース[Activity Space] : やるべきことです。
  • コンピテンシー[Compitencies] : 才能です。タレント、メンバーの能力です。

Q. んじゃまず、アルファとは? A. 必要不可欠な要素です。

エンジニアリングには、次の3層が不可欠な要素として存在します。
これを「アルファ」と称します。

  • 顧客[Customer]
  • ソリューション[Solution]
  • 活動[Endeavour]

その中にいくつかの別のアルファがあります。

顧客
  • 機会[Opportunity]
  • ステークホルダー[Stakeholders]
ソリューション
  • 要求[Requirements]
  • ソフトウェアシステム[SoftwareSystem]
活動
  • 作業[Work]
  • チーム[Team]
  • 作業方法[Way of Working]

Q. アクティビティスペースとは? A. プロジェクトの完遂に必要とする作業のことです。ドキュメントを書いたり製造したり。

上記のアルファ(顧客、ソリューション、活動)の中にそれぞれやることがあるよ。

顧客
  • 可能性を探索する
  • ステークホルダーのニーズを理解する
  • ステークホルダーを満足させる
  • システムを使用する
ソリューション
  • 要求を理解する
  • システムを形成する
  • システムを実装する
  • システムをテストする
  • システムをデプロイする
  • システムを運用する
活動
  • 作業を準備する
  • アクティビティを調整する
  • チームをサポートする
  • 進捗を調整する
  • 作業を停止する

Q. コンピテンシー A. 才能だよ才能。人材でもいいよ。

上記のアルファ(顧客、ソリューション、活動)にはそれぞれ必要不可欠な人材が必要だよ。

顧客
  • ステークホルダーの代表 : このコンピテンシーは、他のステークホルダーのニーズを収集、伝達して、バランスをとり、正確に表現する能力をまとめたものである。
ソリューション
  • 分析 : このコンピテンシーは、機会とそれに関連するステークホルダーのエーズを理解して、合意のとれた一貫性のある要求に変換する能力をまとめたものである。
  • 開発 : このコンピテンシーは、チームで合意した標準や規範に従いながら、効果的かつ効率的なソフトウェアシステムを設計、プログラム、記述する能力をまとめたものである。
  • テスト : このコンピテンシーは、システムをテストして、それが利用可能であり、要求を満たしているかを検証する能力をまとめたものである。
活動
  • リーダーシップ : このコンピテンシーは、仕事で成功を収めるために、そして日標を達成するために、グループを活気づけてモチベーションを高める能力である。
  • マネジメント : このコンピテンシーは、チームの作業を調整、計画、追跡する能力をまとめたものである。

Q. 他にないの? A. パターンってのがあるよ

典型的な問題に対する汎用的なソリューションのことである。…とのこと。
車輪の再開発はやめよう、もうわかってる問題には定番の解決法があるってもんですよ、それはパターン化されてると言っていいよね。とのこと。

Q. そういったカテゴリが定義してあるだけ? A. いいえ。各ステータスやアルファに5~10ぐらいのチェックリストがついています。

このチェックリストが達成されることで、それぞれのアルファが完了し、次の状況に進みます。
開発の準備できたか?[□言語が用意できた □インフラOK □…]という感じです。

Q. ウォーターフォールやアジャイルに取って代わるなにか? A. いいえ。UMLのように、標準化された表現手法のことであり、前述の2手法はこのEssenceで表現されうる既製品だとお考えください。

というわけで、第8章以降は、スミスくんというエンジニアを追いかけながらEssenceを実践する旅が始まったりするので、まぁ練習問題ってことでお読みください。

有用性

2020年現時点で不明。現場において聞いたことないんですよね。
Essenceというものの存在を認識するのはいいことだと思うけど、実践できるかは現実的に不可能だと思う。
この書籍だけで十全の教科書となるかというとそうでもなく、メンターとかそのへんに居ないだろうし、プロジェクトで採用時に金主さんの理解も得られないでしょう。

とはいえ、Essenceの仕様書には、各ステータスやアルファに凄く細かいレベルでチェックリストが定義してあります。
この基本形だけでも認識しておけば、見落としがなく仕事ができるかもしれません。

また、せっかくなので仕様書を日本語に翻訳して、Figmaやdraw.ioみたいなWebサービス化したらそれなりに稼げるのではと思います。

本書の読み方

第7章までは覚えゲー。
第8章からは練習問題。

なんか書籍としては、Essenceの成り立ち、みたいな部分から入ったりするので、そういう背景の物語が邪魔だったり、Essenceそのものに興味をもった方、英語を読める方は
いったん第7章までを一気に読んで、英語のオフィシャル仕様書を読むのが一番いいですよ。

練習問題は問題が発生しないし前向きなメンバーばかりなので、綺麗事感あり。

点数(10点満点)

  • 対象読者 : 手法論争にうんざりした人?
  • 読みやすさ : 7
  • 役に立つ度 : 5~9 : アルファとチェックリストを自分でエクセルとかにしておけば、自分の作業的にはOK。

所感

手法論争にうんざりする人や、手法ありきの人にはとても面白い本になると思う。なんかの標準化を受けてるし。
UMLと同じ団体?のものっぽいけど、UMLほど広まっていないのはなんでだろうか。
自分は無知ゆえこの団体がどれほど正義かもわかんないんですよね。
日本で言うIPA程度のなにかかしら。IPAはつこうた事件以来、大嫌いだけど。資格持ってますが。
フランス人やサンフランシスコの方たちと仕事してもこんな話しないしなぁ。自分もIPAの話とかしないからまぁそんなもんか。
しかし日本支社?みたいなのとか見ても利権の匂いしかしないわ。

カードが出てくるけど、このカードってどこかで一覧で取得できるものなのだろうか?
プラクティス一覧やパターン一覧も、リアルタイムで検索・採用とかしたいんだよね。あるのかな。

自分は読んでる途中でEssenceそのものに興味が移り、であれば仕様書のほうがよっぽど正確だしなんなら面白くなったので、スミスくんのあたりは流し読みしました。*リンクは後述。

文中に「手法の提唱者は、その手法の導師(グル)になって宗教になってうざいんだよ!」との叫びがありますが、
けっきょくイバーヤコブソン氏が導師(グル)になったなにかなんじゃないすか?

これ読みなされ。

コメント

このブログの人気の投稿

windows10 で nvidia のグラボのcode43現象を解決した

Java : processbuilder 標準出力 タイムアウト

GTX560Ti がおかしい(code 43が出る)(2018年)→解決しました(2019)