1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ソフトウェア設計の判断力を磨く4冊

1
Posted at

はじめに

数年前、自分は3人チームの小さなリプレース案件でスケジュールを2ヶ月遅らせた。原因は技術ではない。営業から「今週中にここまで入りますよね」と言われて、根拠のないまま「いけます」と答え続けたことだった。コードは書けていたのに、見積もりと合意の作り方を何も知らなかった。

そのあと自分がやったのは、フレームワークの学習でもテストカバレッジの改善でもなく、開発者の仕事の進め方そのものを扱った本を読み直すことだった。設計判断、見積もり、断り方、レビューでの言葉選び。どれも現場で殴られながら覚えるしかないと思っていた領域が、実はきちんと言語化されていると知った。

自分がここで紹介する4冊は、どれもコードの話から逃げていない。抽象的な心構え集ではなく、リファクタリングの判断基準や見積もりの単位、テスト駆動の運用といった具体論を土台にして、その上でプロとしての振る舞いを語っている。だからコードを書く人間にそのまま刺さる。

並べ方は「開発の土台 → プロとしての基準 → キャリア全体の設計 → 市場価値の作り方」にした。手前から読んでも、今困っているところだけ拾っても機能するはずだ。

① 達人プログラマー(第2版) 熟達に向けたあなたの旅 — David Thomas, Andrew Hunt

Amazonで見る

著者の2人はアジャイルソフトウェア開発宣言の起草メンバーで、Pragmatic Bookshelf の創設者でもある。初版から20年を経た改訂版が第2版だ。

内容は徹底して実務寄りだ。DRY原則、直交性、曳光弾コード、契約による設計といった設計上の判断軸が、短い独立したトピックとして積み上がっていく。どの章から開いても読める構成なので、通勤中に1トピックずつ消化するような読み方が合う。

第2版では並行性やバージョン管理の扱いが現代化され、テスト戦略の記述も今のチーム開発に馴染む形に更新されている。ソースコードの例は言語を選ばず、Java でも Python でも Go でもそのまま適用できる粒度に整えられている。

自分に一番効いたのは「石のスープと茹でガエル」と「知識ポートフォリオ」の考え方だ。レガシーコードの改善を一気に提案して却下される、というのを何度も繰り返していたが、小さく動くものを見せてから巻き込む順番に変えただけで通り方が変わった。

こんな人に: 設計判断を言語化できず、レビューで「なんとなく良くない」としか言えない人。

② Clean Coder プロフェッショナルプログラマへの道 — Robert C. Martin

Amazonで見る

著者は『Clean Code』『Clean Architecture』で知られる Uncle Bob。1970年代から現場に立ち続けてきた実務家だ。

本書のテーマは、プロのプログラマが何を引き受けて何を断るかという線引きだ。約束の意味、見積もりを幅で示す方法、TDD の規律、受け入れテストの扱い、ペアプログラミングの運用。技術的な話とプロ倫理の話が分離せずに書かれている点が特徴だ。

見積もりの章は特に実装に近い。PERT の三点見積もりを使って楽観値・悲観値・最有力値を出し、確率として伝える手順が具体的に示される。自分はこれを読んでから、タスク見積もりを単一の日数で出すのをやめた。

「ノーと言う」章は何度も読み返している。断るのは責任放棄ではなく、達成可能な約束に絞るための技術だという整理が腹に落ちた。ただし著者の主張は強めで、TDD の扱いなど賛否が分かれる箇所もある。鵜呑みにせず、自分のチームの制約と照らして読むのがいい。

こんな用途に: レビューや進捗会議で言葉が出ず、結果的に抱え込んでしまう人。

こんな人に: 技術力はあるのに、約束と納期の管理で消耗している中堅開発者。

③ SOFT SKILLS ソフトウェア開発者の人生マニュアル 第2版 — ジョン・ソンメズ

Amazonで見る

著者は Simple Programmer を運営する元開発者で、Pluralsight 向けに多数の技術コースを制作してきた人物だ。

扱う範囲はかなり広い。学習方法の設計、専門分野の絞り込み、面接と転職、フリーランスや副業の始め方、生産性の管理、健康や資産形成まで一冊に入っている。第2版では発信や個人ブランディングの章が今の環境に合わせて書き直されている。

自分が価値を感じたのは学習のセクションだ。新しい技術を短期間で立ち上げるための手順が10ステップに分解されていて、ドキュメントの読み方から最初に作る小さな動くものの決め方まで指示が具体的だ。フレームワークを追いかけ続ける生活を、消耗ではなく投資に変える助けになる。

一方でアメリカの雇用環境を前提にした章が多い。転職や報酬交渉のくだりは日本の事情と噛み合わない部分があるので、そこは参考程度に読み流していい。

こんな人に: 技術以外の要素を後回しにしてきて、キャリアの打ち手を持っていない人。

④ 情熱プログラマー ソフトウェア開発者の幸せな生き方 — Chad Fowler

Amazonで見る

著者は Ruby コミュニティで長く活動し、のちに Wunderlist や Microsoft、6 Wunderkinder で技術組織を率いた人物。元プロのサックス奏者という経歴も本書の比喩に効いている。

軸になっているのは、自分のスキルを商品として扱う視点だ。市場が欲しがる技術を選ぶ、需要と供給から投資先を決める、レガシー技術の希少性を狙う。それぞれが数ページの短いエッセイになっていて、末尾に具体的な行動課題がついている。

技術選択の章は今読んでも古びていない。流行の中心に飛び込むか、供給が少ない領域を取るか。判断を感覚ではなく市場構造で説明してくれるので、次に何を学ぶか迷ったときの指針になる。

自分は「一番の下手くそでいよう」という話に背中を押された。自分より上手い人が集まる場所に移ると成長速度が変わる、という単純な原則だが、居心地の良いチームに留まっていた時期には見えていなかった。

こんな人に: 次に学ぶ技術を決めきれず、学習の方向が毎年ぶれている人。

まとめ

ステップ 読む本 得られるもの
1. 開発の土台を固める 達人プログラマー(第2版) 設計判断とリファクタリングの共通言語
2. プロの基準を知る Clean Coder 見積もり、約束、断り方の実務手順
3. キャリア全体を設計する SOFT SKILLS 第2版 学習方法と発信、働き方の選択肢
4. 市場価値を作る 情熱プログラマー 技術選択を市場から逆算する視点

今の課題別に1冊だけ選ぶなら、こう考えるといい。

  • レビューで指摘を言語化できない: 達人プログラマー
  • 納期と約束で潰れている: Clean Coder
  • コード以外の打ち手がない: SOFT SKILLS
  • 次に学ぶ技術が決まらない: 情熱プログラマー

4冊とも日本語版があり、通読しなくても機能する構成になっている。自分は達人プログラマーと Clean Coder を先に読んだが、順番に強い決まりはない。今ぶつかっている壁に近いところから開けばいい。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?