私たちのチームでは、お客様の課題解決に貢献するため、メンバー全員がフルスタックな視点を持つことを目指しています。今回は、私が40年以上にわたるプログラマ・エンジニアとしての経験から、特にフルスタックエンジニアを目指す上で役立つと感じた書籍を厳選してご紹介します。単なる技術習得だけでなく、開発の現場で本当に価値を生み出すためのヒントが詰まっている本ばかりです。
ピープルウェア
ソフトウェア開発における「人」の重要性と生産性について深く考察した名著です。私が特に感銘を受け、今でも意識している点は以下の2つです。
スペイン流生産性 vs イギリス流生産性
本書で対比される二つの生産性の考え方です。日本の(特にSIerにおける)プロジェクトマネジメントでは、しばしば「いかに安く、長く働かせるか(時間ベース)」が重視されがちかもしれません。しかし本書が示すように、本来は「いかに短時間で価値ある成果を生み出せる環境を作るか」という視点(価値ベース)でマネジメントを行うべきだと考えさせられます。これは、エンジニアが集中し、効率的に働ける環境を整えることの重要性を示唆しています。
プログラマの生産性は学歴や給料と相関がない
本書によれば、プログラマ個人の生産性は、学歴や給与よりも「どの会社(チーム)で働いているか」という環境要因との相関が強いとされています。つまり、集中できるオフィス環境(個室の有無、静けさ、電話の割り込み頻度など)や、会社・チームが何を大切にするかという文化が、生産性に最も大きな影響を与えるということです。
amazonへのリンク: ピープルウエア 第3版 トム・デマルコ
スーパーエンジニアへの道
『ピープルウェア』でも触れられていますが、組織全体の生産性を上げる鍵は、優れたリーダーシップを持つ人材の存在です。本書は、技術者がリーダーシップを発揮するために必要な要素について、『ピープルウェア』よりもさらに具体的かつ詳細に掘り下げています。単なる技術力だけでなく、影響力、コミュニケーション能力、問題解決能力などをどう伸ばしていくか、実践的なアドバイスが満載です。特に、「高い給料が欲しい」、「出世したい」 という気持ちが強い人に読んでもらいたいです。リーダシップというのは何なのかというところから説明してくれています。
amazonへのリンク:スーパーエンジニアへの道 G.M.ワインバーグ
人月の神話
ソフトウェア開発プロジェクトの難しさ、特に大規模プロジェクトにおける複雑性を鋭く指摘した、もはや古典中の古典です。有名な 「ブルックスの法則:遅れているソフトウェアプロジェクトへの要員追加は、さらにプロジェクトを遅らせるだけだ」 は、今も多くの現場で示唆を与えてくれます。ソフトウェア開発に関わるなら、一度は読んでおくべき基本書と言えるでしょう。個人的には、野心的な設計に陥りがちな 「セカンドシステム症候群」 の記述が特に心に刺さりました(今でも時々、この"病"の兆候を感じることがあります…)。また、タールピット(タールの沼)の挿絵 は非常に有名なので、IT業界の共通言語・教養としても知っておくと良いかもしれません。
amazonへのリンク:人月の神話 ブルックス
ライト、ついてますか
こちらも『スーパーエンジニアへの道』と同じく、ジェラルド・M・ワインバーグによる名著です。本書は「問題解決」に焦点を当てており、「そもそも、それは本当に解決すべき『問題』なのか?」を問いかけます。プロジェクトが行き詰まった時、感情的になったり、目先の現象に囚われたりするのではなく、「問題とは何か?(本書で言うところの『現実と理想のギャップ』)」を冷静に定義し、本質的な解決策を考え、提案できるようになるための思考法を学ぶことができます。複雑な状況をシンプルに捉え直す手助けとなる一冊です。
amazonへのリンク:ライト、ついてますか G.M.ワインバーグ
【番外編】ビジネスの原理原則を学ぶ(書籍名:正直なビジネス ※現在入手困難)
私が起業時に読み、ビジネスの基本を学んだ正直なビジネスという本があります(※残念ながら現在は入手困難なようです)。この本から学んだ特に重要な考え方については、以前私のブログでまとめたことがあります。ご興味があれば、参考までにご覧ください。
ブログ記事へのリンク: ビジネスとは