ここでは、未来の自分に向けた「レガシーコードからの脱却」という本の備忘録を書きます。
この記事で言いたいことを一言で言うと「この本をもう一度読み、情報をきちんと消化せよ」です。
この記事の目的
この記事の目的は、自分が知っている情報を消化することです。主な対象読者は未来の自分であって、緊張感を高めるために記事を公開しています。
「レガシーコードからの脱却」は、学びが多すぎる本の一つです。この本はたくさんの気づきや印象的な情報をくれます。 この本に書いてあることは、5年前の自分が喉から手が出るほど欲しかった情報で、さらに今の自分が周囲の人に伝えたい情報でもあります。 この本に書いてあることには、同意できることが多く、「そうそう!そうなんだよ!」と思うことが多々あります。しかし、同時にそれをうまく説明することは難しい状況です。
先の記事にも書いたように、自分が知っているけど、消化できていない情報をうまく消化したい状況です。 この本には、うまく消化できていない情報がたくさんあります。 情報を消化していくために、備忘録を書きます。
この本についての記事は一つではなく複数にわたります。印象的な内容や情報を一つの記事にまとめるのが難しいからです。ここでは分量を考慮して一つ目の記事を書きます。
この本の記事を書く理由
この本は自分にとって、とても面白い本です。 私は本を読むときに面白いと感じた行に付箋を貼っていきます。後で「なぜ面白いと感じたのか」を考え整理したいからです。この本には数え切れないほどの付箋が貼られています。
今の自分ではこの本を面白い本としか説明できません。 この本に書かれていることを、今の私がうまく説明するのは難しく、それぞれの主張を口頭で説明する自信はありません。合わせて、この本の主張をそのまま受け入れるつもりはなく自分の中で消化した上で話したいとも思っていますが、そのレベルに至れていません。
改めてですが、私は、この本に書かれていることをきちんと理解し、整理して説明できるようになりたいと考えています。 また、未来の自分に向けたメッセージとして、この本は何度も読み返してきちんと理解すべき本です。 もし、きちんと理解できていないと思うなら、未来の自分はもう一度この本を読んでほしい。
この本はどのような本か
前置きが長くなりましたが、この本には面白いアイデアや表現がたくさん書かれています。
この本の冒頭にこの本の目的は「より良いソフトウェアを作ることだけが目的ではなく、より良いソフトウェア業界を作ることが目的」との話が書いてあります。この目的に沿って、ソフトウェア開発の非常に広い範囲の情報を扱っています。
歴史を紐解くこともすれば、新しいソフトウェアプラクティスにも触れます。その流れや繋がりにも触れていきます。 ソフトウェア開発についてある程度の理解が求められる本で駆け出しエンジニアが読んで理解できる本ではありません。 また、経験あるエンジニアだとしても、技術だけに興味がある人には、刺さらない本です。
実際のソフトウェア開発で見られる問題に触れる
この本は、実際のソフトウェア開発で見られる問題に触れています。
- ソフトウェア開発者のマネージャーが開発プラクティスにどう投資したら良いかという問題
- 考えうる全ての選択肢を判断して下流での「ごく僅かな問題」を避けようとする「Big Design Up Front(BDUF)」の問題
- 経験豊富で優秀な開発者がリードしていても、工程が省かれたり、抜け道が使われたり、サブシステムや一人チームが出来上がってしまう問題
上記の問題について、興味があれば、本を読んでください。今の自分だけでなく未来の自分も興味があるはずです。
この本で、私が面白いと思ったポイント
この本には、私が面白いと感じる要素がいくつかあり、以下が抜粋です。
- この本は、ハードウェアとソフトウェアを区別して話している。
- この本は、ソフトウェア考古学という分野に触れています
- この本で、過去のソフトウェア開発プロジェクトについての調査や分析をベースに指摘しており、過去にも敬意がある。
- この本は、現代のソフトウェア開発の経験をベースに書かれており、盲目的に新しいプラクティスをお勧めするものではない。
まとめ
「レガシーコードからの脱却」と言う本の備忘録を書きました。本当は、この本から学んだことを整理したかったのですが、学びが多すぎて一つの記事に整理するには無理でした。
そのため、ここでは、「この本はたくさんの学びがある」と言うことと、「その学びは改めて整理する価値がある」と言うことを未来の自分に伝える記事を書きました。
この記事は公開状態にしていますので、未来の自分だけでなく、通りすがりの人の刺激になれば幸いです。
ではでは。