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