O’Reilly のベタープログラマを読了しました。

本書の紹介

本書は、優れたコードを作りだし、人々と効率的に働く生産性の高いプログラマになるための考え方とテクニックを38のテーマで紹介します。

目次と内容

  • 第Ⅰ部 you.write(code)
    コード1行1行の書き方、デバッグやエラー処理、コードの改善方法など開発現場でのコーディング
  • 第Ⅱ部 練習することで完璧になる
    コードを単純に保つこと、コード変更やテスト、リリースなどソフトウェアを開発する際の考え方や心構え
  • 第Ⅲ部 個人的なこと
    継続的な学習方法と停滞を避けるための課題の見つけ方など、自らを成長させる方法
  • 第Ⅳ部 成し遂げる
  • 第V部 人々の営み
    組織の中で他の人とコミュニケーションを取りながら、効果的に働くための習慣

印象に残った言葉

バグに噛みつかれた後は、潜在的なバグが自然とわかるようになる
これがプログラマの第六感 ( Sixth Sense ) です。

少し多めの愛が優れたコードを生み出す
ベタープログラマ p.191

安全地帯は有害な場所です。そこは、罠です。安易な生活とは、学ぶことも、進歩することも、さらによくなることもないということです。 ベタープログラマ p.249

感想

ベターであり続けるために

この本はプログラマの心構えを説いています。
特に技術的な問題への解決策が提示してあったり、有用なコードが書いてあったりする訳ではありません。

特に後半は抽象的な内容が多く、そのために「役に立たない」と感じる方もおられると思いますが、そういう本ではありません。

本書で繰り返し述べられているのは「 技術力だけではなく、良いプログラマであろうとする態度が重要である 」ということです。

当たり前 ? 本当に ?

本書では「コミットを細かく行う」「テストは大事」など、「まあそうだよね」というトピックもあります。
「姿勢」に関するトピックもあります。

「当たり前」かもしれませんが、実際が「世の中は案外レガシーな現場であふれている」というのが私の持っている印象です。

テストコードがないとか、最もよく見かけるコミットメッセージが「バージョンが上がりました」というのも実際にあって笑えませんが、企業の規模に関係なくこういう事はあるものです。

ですから、この本に書いてあることがチームやプロジェクトの単位で実行できるという、一つの基準を示すことができる点が大切だと思います。

少し多めの愛

そのために必要なものの一つが「少し多めの愛」でしょう。


開発の現場で仕様変更の相談があった時に、こんな会話を耳にすることがあります。

「そんなことできるわけないだろう」
「はぁ、何言ってるの」
「前こういう仕様だって議論したのにひっくり返ってる」

これって、開発者側都合ですよねー。
仕様を変更しようとするとプログラマは怒り出すのですが、どうしてでしょうか。

価値は流動します。
ステークホルダーに価値を提供するためには、ソフトウェアも成長しなければなりません。

しかしソフトウェアはとても脆いものです。
一つの修正が全体に影響することだってたくさんあります。

間違ってしまう恐れ。壊してしまう恐れ。余分な作業に対する恐れ。変更のコストに対する恐れ。
ベタープログラマ p.165

このようにプログラマもたくさんの恐怖を感じています。

でも、それでもやる。
価値を提供するためにやる。

という姿勢が必要なのですね。

こういうことを考えると「ベタープログラマは技術力だけではない」ということが実感でき、私が目指しているのはそういうことなんだなと思います。

議論を重ねて文化を育む

本書は各章の章末に「質問」という項目があり、例えば次のようなものがあります。

インデントを揃えるのにタブを使うのかスペースを使うのか。そしてそれに拘るのは重要な事か

「読んだわー勉強になったわー」で終わらせずに、自分にとってのベター、チームにとってのベターを考えるきっかけとして活用できるようになっています。


私は「 文化が育たないと、コードは簡単に腐る 」と感じています。

例えば「新しい関数をどこに追加するか」を考えてみます。

私は「関連する関数をまとめる」ことをします。
しかし他の方は「後ろに足していく」事がベターと考えているかもしれません。

たった「これだけのこと」ですが、「これだけのこと」でも違和感を生んで行きます。
最悪「俺がこうしているのに、なんであいつは逆のことをするんだ」ということにもなりかねません。
不幸なことです。

「きっとそうだろう」勝手な推測でコーディングを進めるよりも、議論をしてお互いの理解を深めることが大切です。
ここでも「少し多めの愛」が必要です。

議論を重ねて「何が我々にとってのベターか」を発見し、共有し、明文化することが大切 なのです。

おわりに

かつて「うちには文化なんてない」といった後輩プログラマがおりました。
今は「文化がないのが文化」だとわかります。

文化を作り上げていくのはとても労力のいることです。

本書を議論のきっかけにし、強くて素敵な文化を育てていきたいですね。

この記事の著者 Webrow (うぇぶろう)
Web アプリ開発、 Web 顧問 エンジニア、WordPress サポートいたします。