2024年11月6日
Kotlinエバンジェリスト
Ubie株式会社のソフトウェアエンジニア。「テクノロジーで人々を適切な医療に案内する」をミッションに、日々開発に勤しむ。
本業のかたわら、自称Kotlinエバンジェリストとして、講演や執筆などを通じて啓蒙活動に尽力。国内最大のKotlin技術カンファレンス「Kotlin Fest」の代表を務める。
X: @ngsw_taro
こんにちは!Kotlin Festのオーガナイザーを務めている長澤太郎と申します。
前回は「Kotlinエバンジェリスト・長澤太郎氏が薦める、Kotlinへの理解を深める3冊」というテーマで、Kotlinをより深く理解し、楽しむための技術書を取り上げました。今回は、私のキャリア観や仕事観に大きな影響を与えた書籍について、いくつかご紹介させていただきたいと思います。
▲『プログラマが知るべき97のこと』ケブリン・ヘニー 編、和田卓人 監修、夏目大 訳、オライリー・ジャパン
この書籍は、その名のとおりプログラマーとしての心構えや振る舞いについて学ぶことができる貴重な一冊です。実は、この本を初めて手に取ったのは私が大学生だった14年前に遡るのですが、その内容は今でも私の心に深く根付いています。著者陣は多くの優れた海外プログラマーで構成されており、97本のエッセイに加えて、日本語版限定で日本人著者による書き起こしエッセイ10本が収められています。各エッセイは数ページでまとめられているため、非常に読みやすいのが特徴です。
この書籍では、具体的な技術に関する内容ではなく、著者たちがこれまでのプログラマー人生の中で培ってきた経験則に基づいた指南や、落とし穴を回避するための方法が示されています。私の感覚では、内容を大きく3つに分類すると、「プログラミング一般のプラクティス」「ソフトウェア開発のプロフェッショナルとしての振る舞い」「プログラマーとしてのキャリア」というテーマに分けることができます。中には、2つ以上のテーマが混在するようなエッセイも存在します。
「プログラミング一般のプラクティス」については、2024年現在において比較的広く浸透している内容が多いと感じています。別のパラダイムの言語を学ぶことから得られるものや、いわゆるDDD(ドメイン駆動設計)に関連する考え方・テクニック、さらには品質の高いコードを書くことに関する話が含まれています。正直なところ、特に目新しいものはないかもしれません。しかし、扱っているテーマ自体は非常に重要なものばかりです。これらの知識を再確認することで、プログラミングスキルをさらに向上させることができるでしょう。
「ソフトウェア開発のプロフェッショナルとしての振る舞い」に関しては、「うんうん」と頷きながら読める部分もあれば、自らを改善させていかなければと耳が痛く感じる部分もあります。プロとしての理想的な思考・行動ができるよう、定期的に読み返して自らにインストールしたいと改めて思いました。
中から1つ具体的なエッセイを取り上げると「ボーイスカウト・ルール」は印象的でした。本書で初めて知った概念で、どういうことかと言うと、ボーイスカウトには「来た時よりも美しく」というルールがあるようなのですが、プログラマーもこのルールに従うべき、ということです。コードをリポジトリからチェックアウトしてきたら、その時よりも美しい状態にしてチェックインするのです。つまり、目的の変更だけするのではなく、それ以外の改善点を見つけ改善してからcommit, pushするということです。意識はしているものの、時間に追われてついついサボってしまいがちなので、読み返す度にハッとさせられます。
「プログラマーとしてのキャリア」に関するエッセイは、よく耳にする内容ではありますが、特に印象に残ったのは「学び続ける姿勢」というタイトルのエッセイです。このエッセイでは、勉強を継続し、自らを変化・進化させていくことの重要性が説かれています。プログラマーとして第一線で楽しく活躍したいのであれば、この姿勢を持ち続けることが不可欠だと強く感じました。
▲『SOFT SKILLS ソフトウェア開発者の人生マニュアル』ジョン・ソンメズ 著、まつもとゆきひろ 解説、長尾高弘 翻訳、日経BP
この書籍は、プログラマーやソフトウェアエンジニアのキャリア形成において、貴重なヒントを提供してくれます。特に重要な教えとして「ソフトウェア開発者は自分自身を事業者として捉え、雇用主(会社)のことを顧客として捉えよ」というものがあります。自分は「ソフトウェアを開発する能力」をサービスとして提供する事業者であり、それを会社が顧客として購入しているという視点です。このように考えると、サービスの質を向上させることと、効果的なマーケティングを行うことが、収益を上げることにつながるといえます。すなわち、エンジニアリングに関する学びと、自分を意識的に売り込むことで、年収アップを狙えるという構図が成り立ちます。
さらにこの書籍は、自分自身のブランディングやマーケティングの重要性についても言及しています。ブランドを構成する要素は「メッセージ」「ビジュアル」「反復的な接触」「一貫性」であり、これらをあらゆるチャネルで発信・実現すべきだと述べています。具体的なチャネルとしては、SNS、ブログ、YouTube、ポッドキャスト、勉強会などが挙げられます。これらのチャネルを通じて、自分の専門性や経験を発信することは、自分のマーケティングのためだけではなく、技術コミュニティを盛り上げたり、他の誰かの手助けにも繋がるという意味で極めて有意義です。
私自身の経験を振り返ると、20代の頃はKotlinに関してSNSやブログ、勉強会で驚くほど発信していました。「メッセージ」はKotlinというテーマで「一貫」していました。「ビジュアル」に関しては、SNSのアイコンを自分の顔写真にしていたため、勉強会などで実際にお会いするフォロワーの方々から認知されやすかったのではないかと考えています。これらを「反復的」に実践してきた結果、私自身のブランディングやマーケティングはある程度の浸透を果たせたのかもしれません。実際、ありがたいことに、このような書籍紹介に参加させていただいたのも、(様々な巡り合わせの結果であるにしても)それを手繰り寄せる力の一端を自己ブランディングやマーケティングが担ったのではないかと思っています。得たい状態から逆算し、戦略的に行動を選択していくことが、『SOFT SKILLS ソフトウェア開発者の人生マニュアル』の本質です。
▲『人生は、運よりも実力よりも「勘違いさせる力」で決まっている』ふろむだ 著、ダイヤモンド社
先述した自分自身のマーケティングの話に関連して、この書籍を取り上げます。
タイトルがそのまま結論を示しています。勘違い、つまり人間に備わる「思考の錯覚」を理解し、それによって「錯覚資産」を築くことがキャリア形成において重要である、ということを説いています。何か一つの分野で突出した能力や顕著な実績を示すことが「錯覚資産」とつながっていくそうです。そして、その評価によって、より重要でチャレンジングな仕事にアサインされる機会が与えられ、結果的に自身の実力も磨かれるという好循環を生み出すことができます。書籍タイトルは目を引くものになっていますが、重要なのは自分の強みや実績を効果的に伝えていこうという姿勢です。
私自身の経験に照らし合わせても、他者からどのように見られているかを意識することは、非常に効果的であると感じています。一般的には、会社員の処世術として期待値を控えめに設定し、リスクを最小限に抑える戦略が取られることが多いでしょう。しかし、私はその逆を行く戦略を選びました。時には大胆な宣言をし、あえて大きな期待を引き寄せることで、自分を追い込む状況を作り出しました。結果的には有言実行を達成できたのでよかったのですが、プレッシャーやリスクは伴います。あくまで正直・誠実でありたいのでバランス感覚は重要になってくるものではあります。
「思考の錯覚」を理解することは、このような「攻め」だけではなく「守り」にも活用できます。常に冷静な判断は実際難しいですが、思考にも錯覚があるということを頭の片隅に置いておくことで、一呼吸おけることもあります。また、何か失敗してしまって「自分なんて…」とひどく落ち込むようなことがあっても、そのこと自体にも「思考の錯覚」がある程度含まれているだろうと知っていることで、立ち直りが早く、次へ進むきっかけとなるでしょう。
▲『Running Lean 第3版―リーンキャンバスから始める継続的イノベーションフレームワーク』アッシュ・マウリャ著、角征典 翻訳、オライリー・ジャパン
4冊目のこの書籍は、これまでの3冊と少し趣向を変えて、製品の新規開発に関するものです。普段、スタートアップに務める私にとっては常にデスクに置いておきたい本です。アイデアはあるがそれ以外はまったくない状態からスタートする、プロダクト開発における実践的な考え方を教えてくれます。
プログラマーである私は、しばしば「どのように実現するか」という具体的な手法に走りがちです。コードを書くことは楽しいということも拍車をかけます。しかし、最も恐ろしいのは、求められていないものを正しく作り上げてしまうことです。スタートアップに限らず、時間とお金は極めて貴重なリソースであり、それを無駄にしないことは言うまでもありませんが、よくある落とし穴と言ってもよいでしょう。
アイデアをもとによりよいプランをつくるには、不確実性の高いものを優先的に選び、その不確実性を下げていくことが重要です。自分のアイデア(ソリューション)から導かれる顧客の課題は、実際には想像に過ぎないことが多いため、これが確かに存在していることを検証する必要があります。どのような課題があり、その課題が現在どのように解決されているのか、あるいはその解決方法に課題はないのかという点も含めて、しっかりと考察することが求められます。
さらに、自分のソリューションがその課題を解決するのに役立つか、または顧客が実際に購入してくれるか、すなわちニーズの検証を行うことが重要です。技術的な不確実性が存在する場合には、それに対しても併せて調査・検証を進めて、製品の実現可能性を確認することも必要です。
この書籍を通じて、私は「顧客の声を聞くことの重要性」を再認識しました。顧客が抱える課題の正体や真に求めているものを理解するためには、実際に対話を重ねることが不可欠です。顧客とのコミュニケーションを通じて得られるインサイトは、製品の方向性を決定する上で非常に貴重です。
以上、私のキャリア観や仕事観に影響を与えた書籍について、4冊を紹介しました。これらの書籍は、プログラマーとしての心構えやキャリア形成において非常に重要な視点を提供してくれるだけでなく、プログラミングやコンピューターとはまた違った、人間の複雑さや面白さを再認識させてくれると思います。それによって普段の思考や行動の選択の幅が広がり、皆様の仕事やキャリア形成に良い影響を与えることができれば幸いです。
関連記事
人気記事