書名の「継続的デリバリー」はCI /CDの解説書かな?とも思わせてしまうので若干ミスリードなんだけど、「工学とは何か?」「ソフトウェア工学とは何か?」「工芸と工学は何が違うか?」ということを解説した1冊。
『継続デリバリーのソフトウェア工学』を読み始めた
— magnoliak🍧 (@magnolia_k_) 2023年1月28日
そういえば、最近「ソフトウェア工学」ってキーワードを聞かないなーって思ってたけど、本書にも「最近敬遠されてない?」って書かれてた
まぁ、確かに「ソフトウェアの品質分析がー」とか、「設計書を書けばコードが自動生成ー」みたいな、「管理!」的な価値観が大きかったように思われてたんじゃないかなーとか思った
— magnoliak🍧 (@magnolia_k_) 2023年1月28日
ソフトウェア開発のパフォーマンスに関する指標のうち、積極的に有害なものに、コードの行数と、テストカバレッジが挙げられているのが、いいぞーって思った
— magnoliak🍧 (@magnolia_k_) 2023年1月28日
本書を通じて語られているのは、ソフトウェア開発においていきなり正解に一発で辿り着くことはなく、下記の5つの考え方を実践していく必要がある、という点です。
- 反復的な作業
- フィードバック
- 漸進主義
- 実験主義
- 経験主義
前半は、それらがいかに大事な考え方であるかを一つ一つ事例を交えながら解説が続いていきます。ウォーターフォールと、アジャイルの対比のあたりは、ちょっと「悪い事例の見本としてのウォーターフォール」に偏りすぎじゃない?とは思いましたが、極端な事例を対比させることで論点を際立たせる手法だと捉えておくとよいかな、と思いました。
ウォーターフォールと、アジャイルの対比のところは、ちょっとなーって思った
— magnoliak🍧 (@magnolia_k_) 2023年1月28日
そんな絶対的な「ウォーターフォール」という開発手法が存在する訳じゃないよね
元々、「こうやったら上手くいかないよね」って事例のために提示された話で
みんな上手くやるために色々な工夫をしているはずで
後半は、ソフトウェアの複雑性と戦うための指標としての
といったキーワードへの解説が行われます。
テスト駆動開発や、ドメイン駆動設計も当然のように出てきます。
主に考え方や、概念、振る舞い、といったことと、それがどのような背景から由来するものか、というところに焦点が当てられている内容なので、具体的なツールの解説や使い方にフォーカスすることを期待しているとちょっと違うかも、と思われるかもしれません。一人で読んで考える、というより読書会などで色々な人の考え方を聞いて、良いプラクティスを理解した上で現実の課題にどうアプローチすべきか、ということを考えるきっかけにすると良いですね。
途中で出てきた「私の友だちのなかには、読めるPerlを書ける人さえいます。」というくだりは笑ってしまった...普通書けないことが前提になっていますね、これ...