あらすじ
本書はソフトウェアに関する諸問題を、「工学」に基づいて解決する方法を実利的に示します。
『継続的デリバリー』で著名なデイビッド・ファーリーの“Modern Software Engineering : Doing What Works to Build Better Software Faster”の日本語版です。
継続的デリバリー(『継続的デリバリー』の共著者)の先駆者で、DevOps、TDD、その他ソフトウェア開発全般についての実践者である著者が、ソフトウェア開発に科学的思考法を応用するとはどういうことなのかを明らかにし、本当にソフトウェア工学と呼べるものを実現するにはどうすればよいかを具体的に示します。
真のソフトウェア工学は、私たちの創造力と、高品質で役立つものを自信を持って作る能力を引き上げます。アイデアを掘り下げ、創造力を伸ばせるようになり、大規模で複雑なシステムを構築できるようになります。
コードは誰でも書けますが、それは私たちの仕事ではありません。ソフトウェア開発はコードを書くことよりも大きな仕事です。私たちの仕事は、問題を解くことであり、そのためには設計に注意の目を光らせ、生み出す解決策の有効性を考えなければなりません。
本書はこれからソフトウェア開発の大海に船を漕ぎ出す人には良い羅針盤となる書籍だと思うし、私のように長年この業界で過ごしてきた人間にとっては、自分の経験を振り返る良いきっかけとなり、自分の考えが変化を受容しているか客観的に見る示唆を与えてくれるものとなることを確信する。
――「解説」より
感情タグBEST3
このページにはネタバレを含むレビューが表示されています
Posted by ブクログ
# 継続的デプロイ・継続的インテグレーションを支えるための技術書
## 面白かったところ
- 工学とはなにか? みたいな小手先の技術ではなく、学問としてソフトウェアを捉えた構成が良かった
- 継続的にプロダクトをアップデートするための、かなり抽象的な知識が散りばめられていて良い
- モジュール・関心の分離・凝集度の概念がわかりやすかった
- マイクロサービスは銀の弾丸じゃないと書いてあるところ
## 微妙だったところ
- サンプルコードが言語も背景もバラバラすぎて読みづらかった
## 感想
凝集度や結合度・関心の分離など抽象的な知識が求められる中で、たまたま出会えた一冊。
詰まるところ、継続的にデプロイして継続的に開発するためにはそれなりの基盤が必要で、知識も必要であるということである。
TDDに関してとても良い言語化がしてあった。
・凝集度を高めるために、注目すべき場所を考える切っ掛けづくり
・より優れた結果が生まれる方向に対して設計に圧力をかける
テストを書くという行為が何を指すのか自分でも明瞭になった言葉と出会えた。
テストを書いたから品質を担保できるわけではないことは重々承知していたが、だからといってTDDをやめていいようなヤワなものでもない。
そう。良い設計に圧力を掛けるものだった。
それだけ学べただけでも十分すぎる収穫だ。