仕事をする時によく使っている考え方

はじめに


この記事はエンジニアと人生コミュニティのAdvent Calender2021 #2の17日目の記事です。

16日目はryan5500さんのリアルタイム共同編集エディタを作れるyjsを触ってみたでした!

この記事では僕が仕事をする時によく使っている考え方を書いていきます。ほとんどがエンジニアに特化したものではなく全般的に使える内容だと思います。

不安などの感情は書き出す


考えていることの整理は脳内で完結しようとしてもグルグルして着地点が見えないので、そういう時はとにかく書き出すようにしています。

書くことで「いま自分はこういう感情になっているんだな」と客観的に見えて安心感が出てくるため、そのあとに自然と「どうしてそういう感情になっているのか?」「どういうアクションをしたら改善できそうか?」まで考えるようになりました。

最初の頃は誰かが見るものではないのに本音を書けなかったのですが、それだと意味がないことに気づいてきてからはドンドン書けるようになりました。

Inkdropというエディタに日記形式で書いていますが、書いた時点でほぼゴールなので、書いたものを見返すことはほとんどありません。

幹と枝葉を分ける


「本質を見極めろ」と言われることがありますが、僕は「幹と枝葉を分けろ」の方がしっくりくると考えています。

実装を進めていくと細かい「これも対応しておいた方がいいな」というものがいくつも見つかりますが、昔の僕はそれを見つけるたびに引っかかってしまって本丸の実装が後回しになり期限がギリギリになることが多かったです。

それを防ぐために「これは幹?それとも枝葉?」と問いかけるようにしてからは「これは後回しでいいな」という判断ができることが多くなり、時間はかけてるのに本丸の実装が終わっていない、みたいなことはなくなりました。

不思議なことに幹だけをとにかく進めていると枝葉は勝手に解決していることが多いです。

広いところから狭いところに向かっていく

他人に何かを説明したり質問したりする時に詳細(狭いところ)から話し始めてしまうと、よっぽどエスパーができる人でなければ相手に内容を理解してもらうまでに時間がかかるので、会話のテーマ的なこと(広いところ)から伝えて詳細に入っていくようにしています。

質問する時は、分からないことだけでなく「そもそも何を達成しようとしているのか」を最初に伝えることで、相手も考えないといけないことのスコープを狭めることができるので負担を少なくできます。

制約を把握して簡略化した状態から段々と実装していく


複雑な機能を実装する時に右往左往して時間がかかることに悩んでいたのですが、『プログラマの考え方がおもしろいほど身につく本 問題解決能力を鍛えよう!』という本の第2章「パズル」を読んでからは「この道筋で実装していけば完成できる」と確信を持った状態で進めることができるようになりました。(本はKindle版もありますが、達人出版会だとEPUBとPDFでダウンロードできるので僕はそちらを選択しました。)

第2章は、お題に対して制約を把握して簡略化した状態から実装していって段々と完成形に近づけていく、という例が3つ載っているのですが、読み進めるだけで思考の方法が身に付いていきます。

僕はC++は分からないですが、細かいコードの意味が分からなくても読めるところが良かったです。なお、1章・2章・8章以外はC++の知識が中心になってくるので僕はその3章分しか読んでいませんが、買って良かったなと今でも思っています。

話す時は自分と相手の脳内のイメージに相違がないようにする


上記の動画で千原ジュニアが話をする時に心がけていることとして「相手の頭に自分と同じ映像を流す」と言っていました。

これは面白い話をしたい時だけではなくMTGなどの堅い場面で相手に伝えたいことを話す時にも大事だなと思ってから意識するようにしています。

そのためには、前提として必要な情報、ゴールに辿り着くまでに必要・不要な情報、をあらかじめ整理するようになりました。

おわりに


今まで自分が得てきて効果的だった考え方を棚卸ししておきたいなと思い、今回の記事を書きました。

読んでいただいた方に「これ良さそうだな」と1つでも思ってもらえるものがあれば嬉しいです!

18日目はツチノコさんのエンジニア2年目を、印象に残った本とともに振り返るです!

この記事が気に入ったらサポートをしてみませんか?