Magnolia Tech

いつもコードのことばかり考えている人のために。

『継続的デリバリーのソフトウェア工学』...ソフトウェア工学とは何か?

書名の「継続的デリバリー」はCI /CDの解説書かな?とも思わせてしまうので若干ミスリードなんだけど、「工学とは何か?」「ソフトウェア工学とは何か?」「工芸と工学は何が違うか?」ということを解説した1冊。

本書を通じて語られているのは、ソフトウェア開発においていきなり正解に一発で辿り着くことはなく、下記の5つの考え方を実践していく必要がある、という点です。

  • 反復的な作業
  • フィードバック
  • 漸進主義
  • 実験主義
  • 経験主義

前半は、それらがいかに大事な考え方であるかを一つ一つ事例を交えながら解説が続いていきます。ウォーターフォールと、アジャイルの対比のあたりは、ちょっと「悪い事例の見本としてのウォーターフォール」に偏りすぎじゃない?とは思いましたが、極端な事例を対比させることで論点を際立たせる手法だと捉えておくとよいかな、と思いました。

後半は、ソフトウェアの複雑性と戦うための指標としての

  • モジュラー性
  • 凝集度
  • 関心の分離
  • 情報隠蔽と抽象化
  • カップリング(結合度)の管理

といったキーワードへの解説が行われます。

テスト駆動開発や、ドメイン駆動設計も当然のように出てきます。


主に考え方や、概念、振る舞い、といったことと、それがどのような背景から由来するものか、というところに焦点が当てられている内容なので、具体的なツールの解説や使い方にフォーカスすることを期待しているとちょっと違うかも、と思われるかもしれません。一人で読んで考える、というより読書会などで色々な人の考え方を聞いて、良いプラクティスを理解した上で現実の課題にどうアプローチすべきか、ということを考えるきっかけにすると良いですね。


途中で出てきた「私の友だちのなかには、読めるPerlを書ける人さえいます。」というくだりは笑ってしまった...普通書けないことが前提になっていますね、これ...