この記事は 株式会社うるる(ULURU)Advent Calendar 2024 の25日目の記事です。
はじめに
2024年11月に株式会社うるるに入社し、fondeskの開発をしている中谷です。
早いもので、入社から約1ヶ月が過ぎました。
この記事では、最近改めて読んだ『世界一流エンジニアの思考法』(牛尾 剛、文藝春秋、2023年)から得た学びと共に、うるるに入社してからの約1ヶ月を簡単に振り返ります。
就職や転職、学習、日々の開発など、あらゆる場面で参考になる書籍だと思うので、興味がある方はぜひ読んでみてください。
なお、今回は本書の中から下記の思考法をピックアップしています。
- 頭の中にメンタルモデルをつくる
- 感覚で判断せずファクトを積み重ねる
- 不確実性を受け入れる
- どんなに頭がいい人でも理解には時間がかかるもの
「頭の中にメンタルモデルをつくる」を意識して技術のキャッチアップをしてみた
著者と同僚との間で、こんなやりとりがあったそうです。
「どうしてそんなに多くのことを把握できるのか?」と尋ねたら、「メンタルモデルをつくるとそれができるようになる」と教えてくれた。
前後の文脈は省略しますが、要するに、頭の中で素早く情報処理を行うためには何らかの脳内イメージを持っていることが大事なのだそう。確かに、知見のない技術のキャッチアップを行う際も、内部のアーキテクチャやクラス構造、API仕様など、ドキュメントのテキストを追いかけるだけではなかなか理解できないと感じることがあります。
自分は現在、fondeskで採用されている技術への理解を深めるためTwilioというサービスのキャッチアップを行っています。Twilioを利用することで、例としてブラウザ上で通話機能を実装できます。
以下は、Twilio Voice JavaScript SDKを用いた通話接続の処理フローを示した図です。通話開始から接続完了までの具体的な手順を視覚的に理解できます。
自分の場合は、このようにドキュメントで図が提供されている場合でも、敢えて自分なりの図を紙に書き出してみるということをしています。アナログですし殴り書きなので体裁は悪いですが、メモや補足を加えながら手を動かす方が理解につながる気がしています。
方法論はともかく、自分なりのメンタルモデルを作ってみると、複雑に感じていたドキュメントもそれまでより読み進められるようになりました。比較的参考情報が少ない技術や、複雑化した関連性を整理するときなどに有効かも知れません。
「感覚で判断せずファクトを積み重ねる」ができていなかった
本書では、著者自身の体験に基づき下記のような気づきがあったと述べられています。
「感覚」でこれが問題だろうと決めつけてしまったのが今回のミスで、あくまでファクトを積み重ねるべきだった。
自分でログなどを検証して問題解決をするようにしないと「思い込み」の穴に落ちてしまう。
実際、ハッとするような体験がチーム内でありました。
ある時、プルリクエストの内容の動作確認をせず、ソースコードの変更箇所のみを基に「おそらく大丈夫だろう。」という判断で承認が行われ、結果的に本番環境で予期せぬ不具合が起きてしまうことがありました。
まさに「思い込み」の穴に落ちた瞬間であり、開発においていかに「感覚」による決めつけを避けるべきかを考え直すきっかけになりました。
チームとしては、人為的な事故につながり得るリスクは新たにCIを構築することで対応し、個人としてはログの検証や動作確認はもちろん、判断に迷ったら意見を仰ぐように努めています。
「不確実性を受け入れる」ようにしてみた
本書では、業務が計画通りに進まないことを快く受け入れるマインドが推奨されており、具体的には下記のような思考法が紹介されています。
- マネジメントは詳細まで細かく練られた計画を期待しない
- 事前に全ての問題分析が完了せずとも新しいことに挑戦する姿勢を持つ
- 内部プロセスは計画や優先順位の変更に柔軟である
先日、fondesk事業部ではfondesk IVRという新サービスをリリースしました。
これに伴い、開発チームはリリース直前までデモ環境での動作確認やレビュー、機能修正などの作業に追われていました。
入社して間もない自分が出来ることは限定的でしたが、オンボーディングに留まらず新サービスのリリース期に携われたことで、入社前には想定してなかったことまで経験することができています。一方、オンボーディングの予定が変更になるなどのトレードオフももちろんあります。
このような状況下で、目まぐるしく変化するチームと自分の業務を前向きに捉えられたのは、不確実性を受け入れるというマインドを参考にしていたからかも知れません。
就職や転職の文脈で言えば入社前後のギャップであるとか、ソフトウェア開発の文脈で言えば納期や品質、スコープなど、不確実性の高い分野においてこれらを正確に予見することはとても難しいと思います。寧ろ、状況や進捗に応じて柔軟に変化できる方が、チームにとってもプロダクトとしても健康的であると実感できました。
おわりに: 「どんなに頭がいい人でも理解には時間がかかるもの」というマインドで1ヶ月を過ごしてみて
この記事では、転職してから約1ヶ月間の取り組みや感じたことを、『世界一流エンジニアの思考法』の紹介とともに振り返りました。振り返ることで改めて、焦らず着実に理解を深めていく重要性を感じています。
自分は今回が初めての転職ということもあってか、「早くチームに貢献できるようにならなければ」という思考が必要以上に強く働いてしまうことも多かったように思います。そんな思考のもとで行われる「何かを早くできるように急ぐ努力」は、寧ろ本質的な理解を遠ざけてしまうことが本書では解説されています。
あやふやな試行錯誤や判断を生む「思い込み」ではなく、「理解」して「実践可能」な状態を作るために、焦らず地道に日々を積み重ねていこうと思います。