業務でリファクタリングを進める中で、手強い敵にぶつかり、どう戦っていこうか悩んでいました。
そんな中、以前から読んでみたいと思っていた『Tidy First?』が目についたのです。
対応すべきリファクタリングはどれか、後回しにすべきリファクタリングはどれか、もっとドメイン知識を身につけて対応すべきものは何か、などのヒントが得られればと考えて読んでみることにしました。
前置きとして1点。
本書ではソフトウェア設計のことを「整頓」と呼んでおり、「リファクタリングへの入口」と言っています。
純粋に「ソフトウェア設計」に読み替えても理解できない部分は多かったし、「リファクタリング」と置き換えることもできませんでした。
なので、自分もあえて「整頓」という言葉を以後使っていきたいと思います。
これを踏まえて、本書を一言で表すとすると「整頓に対する視座を高くする一冊」としたいと思います。
「Tidy First?」を訳すと「まず整頓なのか?」となりますが、整頓をするタイミングについてエンジニア視点でなく、経営に近い視点で考える必要性を感じさせられました。
しかし、自分自身がその視点をまだしっかりと腹落ちさせられていないため、本書の内容を完全に把握しきれたとは言い切れません……
整頓・リファクタリングをする時間が欲しいとき、「要求された機能を実装するためにはまずは整頓・リファクタリングをした方が進めやすいから、それらを先にしたい」というモチベーションで経営陣を説得することが多いと思います。
腹落ちしていない立場ではあるものの、本書をしっかりと理解できれば「経営視点で見ても、今整頓・リファクタリングをして開発を進めやすくするのが良いのだろうか?」という考え方ができるようになるだろう、そうなりたいと感じました。
この記事では『Tidy First?』を読んで、経営視点で整頓をするタイミングを考えられるようになりたいと感じた理由を書籍の紹介を交えながらお伝えできればと思います。
この「Tidy First?」、自分ははじめから順に読んでいくことをおすすめしません。
その背景を知ってもらうために、まずは本書の構成を知ってもらいたいです。
「Tidy First?」は以下の3部で構成されています。
- 整頓
- 管理術
- 理論
第1部の「整頓」では1章につき1つの整頓・リファクタリング手法が手短に説明されています。
これを読むことで、すぐに実践できる簡単なノウハウを得ることができます。
説明は非常に簡潔ですし、すぐに実践できるものがピックアップされているので、リファクタリング手法を詳しく知りたい方は「リファクタリング」などの書籍を読んだほうが良いでしょう。
第2部の「管理術」の最後で、いよいよ『Tidy First?』の回答が出てきます。
それが「状況による」というものです。
「先にやるべき」という答えがあるものと思い込んで読み進めていたので、ここで一瞬頭が真っ白になりました。
これまで読んできた内容の前提が覆ったのですからね。
第3部の「理論」で「なぜ整頓するのか」という話が出てきます。
エンジニアからすると少しフィールドが違う経済的な内容の話になるのですが、整頓するタイミングが「状況による」となったとき、この「なぜ整頓するのか」がしっかりしていないと判断が下せません。
経済的な側面を理解して整頓に取り組むことこそが、今回『Tidy First?』を読んで経営視点で整頓のタイミングを考えられるようになりたいと思った所以でした。
『Tidy First?』の構成をご紹介したので、本書のおすすめの読み方をご紹介します。
「整頓は先にやるべき」という先入観を持って読み始めた自分は、途中でその前提を覆されました。
「状況による」という結論が分かった今、「第3部 → 第2部 → 第1部」の順に読むことで、すんなり頭に入って来そうな気がしています。
これにより、経済の中での開発の立ち位置が分かったうえで、整頓をいつすべきなのかを考えることができます。
ただ、前提知識として経済の知識はあると良さそうに感じました。
自分はこの部分の知識が少なく、何を言っているのか分からない点が多々ありました……
これがまだ自分が腹落ちさせられていない背景となっています。
いずれ読み直したいと考えているのですが、読み直すのは書籍内で触れられている経済学の話をもう少し分かるようになってからにしたいです。
オプション・キャッシュフローという言葉が出てくるので分かっていた方が良さそうです。
この記事では『Tidy First?』を読んで、経営視点で整頓をするタイミングを考えられるようになりたいと感じた理由を書籍の紹介を交えながらお伝えしました。
本来の目的であった「対応すべきリファクタリングはどれか、後回しにすべきリファクタリングはどれか、もっとドメイン知識を身につけて対応すべきものは何か、などのヒント」はほとんど得られませんでしたが、開発視点でリファクタリングの優先順位を考えて経営を説得するのではなく、経営視点でリファクタリングの優先順位を考えられるようになりたいという新たな思いが生まれました。
リファクタリングをいつするか迷っている、経営陣にリファクタリングの説得をしたい、などのモチベーションがある方は一度読んでみるのが良いかもしれません。
