Clean Coderを読んだ感想

Clean Coder プロフェッショナルプログラマへの道

Clean Coder プロフェッショナルプログラマへの道

読み終わった。

この本は、著者のボブおじさんが師匠としてソフトウェア開発のプロとはなんぞやということをいろいろ教えてくれる本。技術的なことよりも、プロのプログラマの態度、規律、行動に重点を置いて書かれている。

ボブおじさんは、
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技Clean Code アジャイルソフトウェア達人の技 の著者で、アジャイルソフトウェア開発宣言の著者のひとりでもある。SOLIDの原則をまとめるなど、ソフトウェア工学に貢献している方で、まさに師匠という感じがする。

この本の前半で言われていることは中々に厳しくて、胸がちくちく痛む。例えば、"2章 「ノー」と言う"、では、どうがんばっても間に合いそうにない仕事を頼まれたときなんかに、思わず言ってしまう「試しにやってみます」という言葉について言及がある。

試しにやってみるというのは、温存しておいた力を使えば目標が達成できると認めることだ。
...<<中略>>...もし力を温存していないのなら、もし新しい計画がないのであれば、もし振る舞いを変えないのであれば、もし最初の見積に自信があるのであれば、試しにやってみるというのは不誠実である。ウソを付いているのと同じだ。

厳しく聞こえるが、略した部分や前後に丁寧な説明があるので、本で確認すると良いと思う。

ここで言われていることは、厳しいが確かにそのとおりだと感じる。「試しにやってみる」と安易に約束せず、ノーということで、期日に間に合わなかった場合の準備や説明が、事前にできるかもしれない。マネージャが「試しにやってみる」に期待して、期日の当日に、間に合いませんでした、となると、プロジェクトやチーム全体の危機になる。プロのエンジニアであればノーという場面を知っているのだ、とこの章には書かれている。

前半はこの調子で胸にぐさぐさ突き刺さるエピソードが、上司と部下の対話形式でわかりやすく説明されている。読み終わると反省している、という感じになる。

後半はより実践的な話にうつる。コーディングの環境や割り込みについて、テスト駆動開発の必要性やパフォーマンスを出すための時間の使い方、プロジェクトの完了を定義する方法(受け入れテスト)、自分の腕をみがくための日々の練習方法について(コーディング道場Kataの話)、実践的な見積もりの方法(プランニングポーカなど)、そして、チームやメンバーと協力していく方法などなど、プロのエンジニアとしておさえておくべしと著者の考えるトピックについて丁寧に教えてくれる。多くがボブおじさんの経験談や具体例にそって語られるので説得力がある気がする。

気楽に読み始めてみたものの、いきなり師匠が出てきて、普段の行いについてしっかり叱られた後、ひと通り稽古をつけてもらって、最後には感謝しながら道場を去るといった気分になった。ちゃんとしようという感じになるので良い本。