『情熱プログラマー ソフトウェア開発者の幸せな生き方』を読んだ

この本は,ソフトウェア開発において良いキャリアを築くための方法を説明することを目的としている.以下の5つの章があり,製品に必要な側面をキャリアに応用する方法を説明している.

この本は「ソフトウェア開発者もビジネスマンである」ということを強調する.会社の目的は利益を上げることで,技術を学んだり利用したりする場を提供するわけではない.開発者でも自分の技術をビジネスの側面から評価することも必要である.だから,良いキャリアを築こうと思うなら,技術の分野は製品と同じように市場を選ばないといけないし,投資しないといけないし,売り込まないといけない.

もちろん,技術よりビジネスが重要と主張しているわけではない.あくまでも,テクノロジの価値をビジネスの側面から考えることも必要であるという主張である.「研鑽を怠らない」という章では,時代遅れな技術屋にならないための方法を述べており,高い技術力を持つ開発者でい続けることを重要視していることがわかる.

いくつかの節には「今すぐ始めよう!」というリストがあり,その節の内容を達成するための手法が書かれている.抽象的な目標を達成するための具体的な行動を決める参考になる.

好きな節

3 コーディングはもう武器にならない

どんなテクノロジに投資するか考えるだけでは不十分だ.テクノロジなんて,お金で手に入る日用品なんだから.(p.9)

タイトルが刺激的.

11 魚の釣り方を学ぶ

自分からどんどん訊いて,調べて学べ!という内容.自分が知らないことを深掘りしたり,使っているツールについて調べたり.当たり前だけど難しい.

25 自分にどれだけの価値があるか?

「給料上げろってお前言うけどさ,それだけの価値を生み出してんの?」という内容.

ちなみに次の節で,「お前の職務における存在なんて,バケツの中の小石ぐらい」といわれる.

45 君は既に職を失っている

自分の職務をやり遂げるのは良いけど,それで満足してちゃだめなんだ.自分はプログラマ(あるいは設計者,テスター)だっていうアイデンティティにこだわるな.

『おれは あの職種で職を得たと思ったら いつのまにか失っていた』

感想

元も子もないことをいうと,自分の価値観に沿った選択が幸せな生き方になるので,自分の好きなようにやるのが1番良さそう.あと,ビジネスの知識を身に付けることが必ずしもエンジニアとしての成長に繋がるとは限らないので,どれだけ分野を広げるかは自分と要相談.

当然だけど,本書はエンジニアとしてある程度の能力があることが前提になっているので,ひよこエンジニアがビジネスをかじってもひよこエンジニアである.

「開発者もビジネスマン」という言葉だけだと,「開発者もビジネスについての知識が必要である」という主張をしているように見えるけど,そうではなくて,「ビジネスの文脈から自分の技術の価値を説明できますか」という話だと思う.本書に「ビジネス側の人もちょっとぐらい技術について知っていれば,もっと楽に話できるのにって思わない? そういうことよ」みたいな記述があるので,ビジネスの知識といっても共通言語になる程度だと思う.

著者は Extreme Programming (XP) について学んだことがキャリアの転換期だったと述べている.XP の経験を通して,技術だけではなく(ある程度の)ビジネスの知識,1つの技術ではなく複数の技術,という考えになるのは分かる気がする(やったことないけど).

メモ

市場を選ぶ

  • 最先端のテクノロジ ハイリスクハイリターン
  • 需要と供給がキャリアにどのような影響を与えるか
    • 就職や転職で必要とされている技術は何か
    • オブショア企業がカバーしている技術は何か
  • 環境によって自分の能力が決まる部分もある
  • キャリアはビジネスとして考えるべき

製品に投資する

  • 理解していないことを掘り下げる
  • ツールの使い方を知る
  • ビジネスを基本を知る
  • 財務処理の一連の流れを聞く
  • ソフトウェア開発の方法論について学ぶ
  • オープンソースプロジェクトのコードを読む
    • プロジェクトの長所,短所
    • 利用できそうなロジックやパターン
    • アンチパターン
  • 仕事を自動化する

実行に移す

  • 今の職務は全力で
  • 自分は価値を算出できているか
  • 成功に溺れず,取り替えが効く存在を目指す
  • 八時間燃焼

マーケティング

  • 視点によって評価軸が変わる
  • 他職種の人とコミュニケーションできるようにする
  • 自分の業績は自分のビジネスの言葉で売り込む
  • エレベータスピーチを考える
  • 自分自身のブランドを築く

研修を怠らない

  • 未来を見据え,意図的に自らのスキルを育成する
  • 自分がプログラマ(設計者,テスターなど)であるというアイデンティティにこだわらない
  • 自分のキャリアについてのロードマップを作成する