勘と経験と読経

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

Kindleで大規模セールで安くなった目ぼしい技術書リストアップ

Kindle技術書の定点観測結果より。30%~70%くらいの範囲で割引セール中の模様(ポイント還元を含む)。対象はこれからも変動あるような気がしている。割と高額な「エンタープライズアプリケーションアーキテクチャパターン」「ソフトウェアシステムアーキテクチャ構築の原理 第2版」「Code Complete」「エリック・エヴァンスドメイン駆動設計」「実践ドメイン駆動設計」「アジャイルソフトウェア要求」「ディシプリンド・アジャイル・デリバリー」あたりが狙い目な印象(未購入なら)。
あと、わりと新しい本であれば「The DevOps 逆転だ!究極の継続的デリバリー」あたりが安い。

アーキテクチャ構築の原理 第2版を読んだ

「ソフトウェアシステムアーキテクチャ構築の原理 第2版」を読了した読書メモ。なお書籍版だと898g、616頁の大著をKindle版で手軽に持ち運べるのは有難い(もちろん、必要に応じてPCでも閲覧できる)。今後、何度も読み返すような本である。

最後には監訳者である榊原さんのあとがきが。

本書の真骨頂は、ビューポイントとパースペクティブのカタログ化にある。十二分なボリュームの書籍でもあり、生真面目に最初から600頁を読み進める必要はない。まずは第30章から読み始めてみるのもいいかもしれない。どこでどのテクニックを使うのか、インデックス的な使い方をするのも本書を有効に活用する1つの手だ。
ソフトウェアシステムアーキテクチャ構築の原理 第2版

すいません、生真面目に読み進めてしまいましたorz。というわけで、これから読む方は監訳者あとがきから読むことをまずオススメする。上記だけでなく、本書の読み解き方についてアドバイスがしっかりと書かれている......

なお、30章は「ソフトウェアアーキテクトとして仕事をする」である。この章では規模(小規模/アジャイル/計画駆動/大規模)や形態(社内システム/製品開発/エンプラシステム/既存エンハンス/パッケージ/ネット対応/廃止)ごとにアーキテクトとして検討する事項と、どの章を読むべきかがとりまとめて記載されている。第1部、第2部と読んだあと、自分の置かれている状況に応じて第30章を読み解き、ガイダンスに従って残りの章を読むのが良いかと思う。

ますます重要になるアーキテクチャ

現代では、いろいろな要因からソフトウェアの仕様はますます変化し易くなり、固定化や文書化が難しくなってきている。

  • ビジネス側の要請により、要求されるデリバリーサイクルが非常に短くなった
  • 慎重に計画・検討して構築するのではなく、迅速に構築して試行し、結果評価をすぐに再反映するような開発プロセスや基盤技術が実用的になった
  • 取り扱うニーズが高度化、複雑化したことにより、「作らずに仕様を決定する」ことそのものが困難になった。「作りながら考える」ことが必然となった

このような状況で「要件」や「仕様」をきちんと文書化するのは難しいだけではなく、無駄にもなりがちだ。最近見聞きするプロジェクト事例だと、専用の要求管理ツールやチケットシステムで管理することも多くなっているようである。アジャイル開発プロセスの文脈だと「ストーリー」とか「フィーチャー」と呼ばれるものが管理する対象である。

では、随時登録/更新される「ストーリー」のリストをインプットにソフトウェアは開発できるのかというと、そうではない。土台として必要となるのが開発の軸としての「アーキテクチャ」である。

最近、グローバルでアジャイル開発を啓蒙している組織の事例を見聞きする機会があったのだけど、やはり「アーキテクチャ」はきちんと文書化して共有し、その上で随時変化する要求を管理ツールで共有しながら順次開発していると聞いた。

思うに古き良き滝の時代に時間をかけて作成していた「要件定義書など」はある程度アーキテクチャの記述や表現を含んでいたんじゃないだろうか。しかし、時代の要請で「要件定義書」は失われ、別の形に変化してしまった。そこで、これまで以上にアーキテクチャを分析し、明確化する重要性は高まってきているのではないかと考えている。

アーキテクチャ構築の原理

さて、本書に何が書かれているかだけれども、詳細な目次は以前に新旧版の比較をした際の記事を見ていただきたい。概観としては以下の通りである。

  • 第1部 アーキテクチャの基本
    • アーキテクチャの概念についての整理。本書を読む上でも重要な「ビュー」「ビューポイント」「パースペクティブ」の関係について論じられている。
    • 第5章に「核となる概念間の相互関係」がモデルとして提示されているので、それを中心に読んでいくと良いと思う。
  • 第2部 ソフトウェアアーキテクチャのプロセス
    • どのようにアーキテクチャを検討し、最終的にアーキテクチャ記述(AD)に落とし込んでいくか、について記述されている。
    • 第13章で、サンプルとしての具体的なアーキテクチャ記述(AD)の章立てが提示されており、これと5章の「核となる概念間の相互関係」の関係を意識すると分かりやすい印象。

手書きの整理をしてみた。

www.instagram.com

  • 第3 部 ビューポイントカタログ
    • ここからはアーキテクチャ検討において具体的に活用する観点のカタログである。
    • 「ビューポイントカタログ」はアーキテクチャ検討上の重要点が書かれているので、目を通して損は無いような気がする。

ビューポイントと、それぞれで作成する主要なモデルの関係を手書きで整理してみた。

www.instagram.com

  • 第4部 パースペクティブカタログ
    • ここは、必要に応じて閲覧すればよい印象
  • 第5部 すべてを1つにまとめる
    • ソフトウェアアーキテクトとしてどのように取り組むべきか、についての論考。
    • 冒頭で紹介した監訳者あとがきにある、第30章はここに含まれている。

体力が許すならば第1部~第2部までは通して読んで、その後第5部を読んでから、必要に応じて第3部と第4部を読むのが良いような気がする。とはいえ、通読するのも非常に勉強になる、今後も何度も立ち返っていく教科書のような本であった。

ソフトウェア要求、The DevOps他がKindleで50%以上オフ以上のセール中(対象じわじわ拡大中)

定点観測したところ、ソフトウェア要求が50%オフ、The DevOpsが50%オフ+20%ポイント還元のセール中の模様。ちなみにどちらも自分でKindle Paperwhiteで読了済。特に支障なく読めます。
3/16追記:デマルコのデッドライン、ワインバーグさんの本、ソフトウェアテスト293の鉄則、ソフトウェア見積りもポイント還元あわせて50%以上オフになっている模様。ロジックがよくわからないけれど…
さらに追記:よくわからないけど1日2-3冊くらいずつセール範囲が拡大している。発見したものは末尾に追加。
3/17追記:デマルコの熊とワルツが追加された。じわじわ感。

ソフトウェア要求 第3版

ソフトウェア要求 第3版

↑上流工程に関する課題はこれ一冊でかなりカバーできている印象。第3版でアジャイル開発プロセスへの考察も追加されている。

The DevOps 逆転だ!究極の継続的デリバリー

The DevOps 逆転だ!究極の継続的デリバリー

↑「ザ・ゴール」のような小説形式で学ぶソフトウェア開発プロジェクト最適化の話。根底には、制約理論(TOC)とリーン開発が含まれている(アジャイル開発プロセスへの言及はあまりない印象)。

MSでDevOps普及の活動をされている牛尾さんも推薦しているようだ。

追記

以下の本もセール中の模様。

テストから見えてくるグーグルのソフトウェア開発

テストから見えてくるグーグルのソフトウェア開発

↑50%オフ。この本は開発プロセス改善という観点でおすすめ。

↑古典的デスマ小説、というのは上段だけど、困難なソフトウェア開発のドキュメンタリーとして読んでおきたい一冊。

さらに追記

ロジックがよくわからないのだけど、デマルコのデッドラインも50%オフになってた。こちらもThe DevOps同様に小説仕立てでソフトウェア開発を論じる本、というか元祖っぽい気がする。

デッドライン

デッドライン

3/16さらに追記

以下もポイント還元込みで50%以上オフになってた。

ソフトウェア見積り 人月の暗黙知を解き明かす

ソフトウェア見積り 人月の暗黙知を解き明かす

↑過去に以下の記事でもオススメしている良著。

ソフトウェアテスト293の鉄則

ソフトウェアテスト293の鉄則

↑こちらもとても参考になる良書。しびれる名言がたくさん書かれている。

プログラミングの心理学 【25周年記念版】

プログラミングの心理学 【25周年記念版】

パーフェクトソフトウエア

パーフェクトソフトウエア

↑こちらもソフトウェア開発の名著。

3/16さらにさらに追記

アドレナリンジャンキー プロジェクトの現在と未来を映す86パターン

アドレナリンジャンキー プロジェクトの現在と未来を映す86パターン

↑良い本だけど玄人向け。

↑確か未読。

はじめて学ぶソフトウェアのテスト技法

はじめて学ぶソフトウェアのテスト技法

↑良書。

3/17追記

熊とワルツを リスクを愉しむプロジェクト管理

熊とワルツを リスクを愉しむプロジェクト管理

↑名著のひとつだが、実はちゃんと読んだことが無かったのでこの機会に購入した。

情報システムの障害状況ウォッチ(2015年後半)、ポストモーテム

SEC Journal44号で2015年前半の情報システム障害状況まとめが公開されたので読んでみる記事。
前回記事はこちら。

SEC Journal最新号の入手はこちらから。

http://www.flickr.com/photos/7119320@N05/22856576053
photo by Sean_Marshall

情報システムの障害状況ウォッチ(2015年後半)

詳細はSEC Journalを確認いただくとして、掲載されているトラブル事例をニュース記事などとザックリ照らし合わせてみた。全般的にトラブル発生時の速報はあれど、原因や再発防止などが公開されていることはあまりないのが残念なところ。また、日経コンピュータさんがいろいろ取材されて深掘りされているようなのだけど、記事がほとんど公開されていないのはちょっと残念。ビジネス的な判断なのだと思うのだけど、公益性も鑑みてトラブル事例は公開していくことを検討して欲しいと思う。

注目事例

SEC Journal44号の紹介記事の中でも取り上げられているけれど、「長期間の不具合放置」関連の事例が目立っている(1524,1526,1530,1541など)。SEC jounal44号の記事では

以上の5件はいずれも、一見正常に運転されているにもかかわらず、実は重大な問題を抱えたまま運用されていた事例である。不具合によってシステムがダウンするなどの現象が発生すれば、誤りは直ちに検知されるが、この種の事故は開発段階での綿密なテスト計画の策定とその着実な実施という基本的な対策でしか回避の方法はない。
(SEC Journal44号 連載 情報システムの障害状況 2015 年後半データ より)

と書かれているのだけれども、ちょっと違う印象を持った。リスク管理の問題ではないだろうか。

  • 最終テストとして、何を確認して、何を確認していないのか明確にする
    • 例えば[1541]の緊急通報メール発信トラブルについては、システムと通信事業者間の疎通確認はやったけれども、通信事業者から利用者までのメール発信の疎通は(おそらく)実施していない。本番環境でのテストは実施しないという判断はあり得るが、テストしていないという事実をきちんと関係者間で共有していたのかというと、おそらくしていないのではないかと思う。
    • [1527]メタボ検診システムについても、実データでのテストは実施していないということを明確にしておくべきだったのではないかと。これもセキュリティ等の観点で、実データを利用しない判断があったとしてもこれは問題ない。しかし、何を「やっていないか」を明確にすべきだろう。
  • 実機で確認できていないことは、どんな代替手段でリスク軽減(検証)したのかをはっきりとさせる
    • 実機確認できないものについても、テスト環境で検証するか、それも困難であれば綿密な机上確認するなどによってリスクは軽減できるはずであり、それを検討すべきと考えている。
  • 残余リスクについて、そのリスクが消滅するまで継続監視する
    • システムの構造上、なかなか本番稼動しない機能はあると思う(1年に1回しか動かない、とか災害時にしか動かないとか)。とはいえ、本番稼動実績のない機能はリスクが残っている。こういったリスクは解消するまで(初回稼動が終わるまで)トレースしていかないと、思わぬところで足をすくわれる事になるのでは無いかと思っている。

ソフトウェアテスト293の鉄則

ソフトウェアテスト293の鉄則

技術書の無料試し読み(Kindle/GoogleBooks/他)

技術書を図書館で借りようというブログ記事を見た反応。個人的にも公立図書館はフル活用していて、至急性の高くない「読んでおきたい本」は借りるようにしている。が、最近技術書は他の手段でも試し読みできることが多いのでそっちで読むことが多い。というわけで無料試し読みの方法について整理してみる。なお出版業界の方には申し訳ないけど、物理書店は目的が達成できなかったり、余計な買い物をしてしまうリスクが大きいので最近行かないようにしている・・・・・・。

Bookstore cat

無料試し読みの方法について

出版社の方針などで書籍によって最適な方法は異なるのだけれども、自分が最近使っている手段はだいたい以下の通り。

  • Amazon Kindleでサンプルを読む
    • 専用アプリかKindle端末が必要。Web経由でもごにょごにょすれば閲覧できるという話もあるけれど割愛。
    • この方法だと、目次、まえがき、第1章くらいはだいたい読める
  • Kindle非対応の書籍の場合、出版社が独自で試し読みに対応していればそこで読む
  • Google Booksで読む
    • 規則性はよくわからないのだけど、おそらくGoogle Playの対象書籍が対象となっている
    • 翔泳社さんの本は最近どれも対応されていて、有難い

出版社別のワビサビを統合して効率よく試し読みができるサービスがあるといいのだけれども、現時点では未発見(ひょっとしたらあるかも)。

せっかくなので、いくつかの技術書ランキングに掲載されている書籍について実際に無料試し読みが出来るか調べてみた。

「新春座談会 このコンピュータ書がすごい! 2016年版 -2015年に出たコンピュータ書ならこれを読め!-」開催報告:レポート|gihyo.jp … 技術評論社

  1. たった1日で即戦力になるExcelの教科書
  2. 人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書)
  3. スッキリわかるJava入門 第2版 (スッキリシリーズ)
  4. リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
    • 残念ながら試し読みできず
  5. 暗号技術入門 第3版 秘密の国のアリス
  6. 深層学習 (機械学習プロフェッショナルシリーズ)
  7. HTML5&CSS3デザインブック (ステップバイステップ形式でマスターできる)
    • 残念ながら試し読みできず
  8. 伝わるデザインの基本 よい資料を作るためのレイアウトのルール
  9. ハッカーの学校
  10. インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門

ITエンジニアに読んでほしい!技術書・ビジネス書 大賞 2019

ビジネス書系は省略。

大賞
技術書部門 (上記と重複は省略)

調べてみた感想

  • オライリーさんはDRMフリーの電子書籍を発行していただけているのは大変あり難いのだけれども、試し読みビリティは低いのが残念
  • 技術評論社さんは、書籍によって対応が異なる。WEB+DB PRESS plusシリーズはNGなのが残念
  • というわけで電子試し読みできない本は、図書館か書店で見るしかなさそう

「ビヨンド ソフトウェア アーキテクチャ」あるいはパッケージソフトウェアの作り方

「ビヨンド ソフトウェア アーキテクチャ」に関する読書メモ。ソフトウェアアーキテクチャ全般に興味があるので手に取ったのだけれども、同書はざっくり言えばパッケージソフトウェアの作り方に関する本である。なんとなく、このタイトルでは必要な人の手に渡らないような気がするのだけれども。なお同書のKindle版は2/25まで50%オフのセール中なので興味のある方はお早めに判断を。

「ビヨンド ソフトウェア アーキテクチャ

翔泳社さんの書籍紹介は次のように書かれている。

アーキテクチャ」について技術的な観点から書かれている本は数多くありますが、ビジネスの視点からシステムを商品として見た時に考えるべきことを教えてくれる本が、実はありませんでした。本書は、アーキテクチャにおけるビジネス(マーキテクチャ)と技術(ターキテクチャ)をつなぐ架け橋として、情報システム部の方全員に読んでほしい本(情シス必読書)です。エンジニアにとっては、マーケティングの基礎を学ぶ上でも役に立ち、かつ、技術面でのアーキテクチャ論としても、経験豊富な著者の実体験に根ざす優れた考察に富んだ一冊となっています。

上記はちょっとミスリードがあると思っている。本書は「ソフトウェア製品開発に関わるアーキテクト」が想定読者になるのではないだろうか。そういう意味では、ユーザ企業の情報システム部門に所属する人(買い手)というよりは、ソフトウェア製品開発(作る人)に関わる人に読んでおいてほしい内容だと思う(あくまで個人的な感想)。

さて、本書の基本的な骨組みは上記紹介にも書かれている通りだが、

  • ソフトウェア製品は、「テクニカルアーキテクチャ(ターキテクチャ)」と関連する「マーケティングアーキテクチャ(マーケテクチャ)」を持つ。
  • マーケテクチャ検討上の重要な観点について論じる(第4章以降)

である。

本書では、ソフトウェアアーキテクチャという枠組みを越えてソリューションをうまく構築するために、幅広いビジネス課題とアーキテクチャ上の選択との関係について議論する
ビヨンド ソフトウェア アーキテクチャ Object Oriented Selection Classics まえがき、より

ソフトウェアアーキテクチャについて言及することもあるし、技術的な課題を議論する場合もある。だが、私が集中して議論したいのは、アーキテクチャを図示あるいは文章化する最善の方法や、堅牢で、分散化されたWebコンポーネントシステムに関連する深い設計原理などではない。
ビヨンド ソフトウェア アーキテクチャ Object Oriented Selection Classics まえがき、より

ビヨンド ソフトウェア アーキテクチャ Object Oriented Selection Classics 目次

  • 第1章:ソフトウェアアーキテクチャ
  • 第2章:プロダクト開発入門
  • 第3章:マーケテクチャとターキテクチャ
  • 第4章:ビジネスとライセンスモデルの共益関係
  • 第5章:インライセンステクノロジー
  • 第6章:可搬性
  • 第7章:デプロイメントアーキテクチャ
  • 第8章:統合と拡張
  • 第9章:ブランドとブランド要素
  • 第10章:ユーザビリティ
  • 第11章:インストール
  • 第12章:アップグレード
  • 第13章:コンフィギュレーション
  • 第14章:ログ
  • 第15章:リリース管理
  • 第16章:セキュリティ
  • 補遺A:リリースチェックリスト
  • 補遺B:戦略的プロダクトマネジメントのためのパターン言語

ソフトウェア開発の上で必要な「マーケテクチャ検討上の重要な観点」というのが曲者であり、また本書の整理が非常に有効なポイントである。
ソフトウェアを構築するために必要な意思決定の多くはアーキテクトが利害関係者との調整において合意形成するものだが、ソフトウェア製品については「顧客」という最も重要な利害関係者が不在なのである。ではどうするか?というのが本書の主眼であると思う。

また、世の中一般で最も多い「自社利用のシステム構築」と、「販売するためのシステム開発」では根本的に異なる点も多い。

  • どのようなライセンスモデルで販売するかと、そのライセンスモデルを実現するための機能要件は何か
  • 利用しているサードバーティ製品やOSSのライセンス管理はどうするのか
  • どのような環境をサポートするのか
  • オンプレミスかサービス提供か
  • 他システム連携の考慮はどうするか
  • インストール、アップグレード、コンフィグ設定はどうするか

こういった観点が、本書のような形でとりまとまっているのは本当に有難い。

個人的には、何年かごとに製品開発にも関わってきているので、本書は非常に参考となった。
プロダクトとしてソフトウェアを出荷するような形で仕事に関わる方におすすめ。

PoEAAも対象。Kindleで翔泳社さんの技術書が44%以上オフのセール中!

現在開催されている技術者イベント、デブサミ開催に連携して、翔泳社さんの技術書がKindleで大幅なセール中の模様。ほとんどセールにならない近著「ビヨンド ソフトウェア アーキテクチャ Object Oriented Selection Classics」も50%オフになっているので、興味のある人はいま買うのがおすすめ。なおイベント連携なのでセール期間は短いものと思われる。

【2/19 9:15追記】
翔泳社さんから連絡いただき、セールは2/25までの期間とのこと。
またよくチェックしてみたらPoEAAが対象になってる!(買った)。末尾に対象書籍で興味深いものをいくつか追記した。

【2/19 10:45】
要望したら対象外だった「レガシーコード改善ガイド」がセール対象になった!即刻購入!

オススメ+気になっているものをピックアップ

つい先日読了して、近々ブログ記事にレビューを書く予定。ソフトウェア製品を作る上でのアーキテクチャ考慮点について書かれた本といった感じ。製品開発やサービス開発に携わるアーキテクトやエンジニア向け。

達人に学ぶ SQL徹底指南書

達人に学ぶ SQL徹底指南書

実は未読。評判は良い印象。

達人に学ぶDB設計 徹底指南書

達人に学ぶDB設計 徹底指南書

既読。オススメ。

エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

良書。

実践ドメイン駆動設計

実践ドメイン駆動設計

現在読んでいるところ。良い本という評判。

組織パターン

組織パターン

既読。なかなかに難解な本だけど、エンジニア組織やプロジェクトをマネージしている人にはオススメかも。

アジャイルソフトウェア要求

アジャイルソフトウェア要求

どちらも良書

SCRUM BOOT CAMP THE BOOK

SCRUM BOOT CAMP THE BOOK

実は未読。評判は良い印象。

マネジメント向け、またはマネジメントに説明するためのスクラム解説本。

エッセンシャル スクラム

エッセンシャル スクラム

実は未読。

おそらく他にもいろいろセールになっていると思われる。

2/19 9:15追記

エンタープライズアプリケーションアーキテクチャパターン

エンタープライズアプリケーションアーキテクチャパターン

名著。以前に読んだかもしれないけれど手元にないので改めて購入。

ユースケース駆動開発実践ガイド

ユースケース駆動開発実践ガイド

これもけっこう古いものだけれども、ユースケース駆動の開発プロセスICONIXについての解説書。
最近やユーザーストーリー駆動の開発が主流になるつつあるけれども、学ぶところは多いはず。

未読。価格を考えると購入のチャンス・・・!

ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ 第5版

ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ 第5版

未読。ちょっと手を出すのが怖いんだけど……

2/19 10:45追記

レガシーコード改善ガイド

レガシーコード改善ガイド

要望したらセール対象に追加されたッ。即刻購入……(いつ読むんだ)