「考える」とは?
何の本だか忘れましたが、**「考えるということは手を動かすことである」**という一節がありました。
最近その言葉が響くというか、よくわかる気がします。
頭の中で考えようとしてもすぐにキャパオーバーになってしまい、パンクしてしまいます。
一度に考えられるのはせいぜい3つ程度。
にもかかわらず、仕事では要件があって、技術的な制約があって、パフォーマンスのことも考えて、既存システムとの整合性も考えて...すぐに頭がいっぱいになります。
段取りを脳内で組もうとすると、脳に大きなダメージを与えてしまい、疲れ果ててしまう割にアウトプットが少ないように感じます。
効率的に幅広く考えたいなら 書き出して整理するほうが良い。そちらのほうが脳に良いように感じます。
なぜ同じことを何度もぐるぐる考えてしまうのか
これはアイデア出しや思考を深めるときも同様で、とにかく書き出すことによって物事が進むのです。
実際に設計や要件定義をしていても、頭の中で「うーん...」と考えていると、同じことを何度も繰り返し、集中が切れるとまた最初から...というループを起こしがちでした。
しかし、手を動かしたタイミングでコトが進むように感じます。
例:通知機能の設計
頭の中で考えていた時:
「この機能どうやって実装しよう...
でも既存のコードと衝突するかも...
いや、でもこっちのアプローチなら...
あれ、最初何考えてたっけ?」
(30分経過)
書き出した時:
問題:ユーザー通知機能の実装
既存の状況:
- メール送信機能はある
- でもリアルタイム通知はない
選択肢:
1. メールだけで対応 → シンプルだけど遅い
2. WebSocket使う → リアルタイムだけど複雑
3. ポーリング → 簡単だけど非効率
→ まずはメールで実装、必要に応じてWebSocketへ
こうして書き出すだけで、段取り良く進められるのです。
脳のキャパシティの限界を認める
人間の脳は、私たちが思っているほど優秀ではありません。
一度に考えられるのはせいぜい3つ程度。
これは心理学的にも証明されている事実です。
にもかかわらず、私たちはもっとたくさんのことを同時に考えようとしてしまいます。
特にエンジニアリングの仕事では:
- ビジネス要件
- 技術的制約
- パフォーマンス
- セキュリティ
- 保守性
- テスタビリティ
- スケジュール...
これらを「頭の中だけで」整理しようとすれば、キャパオーバーは必然です。
だからこそ、書き出してワーキングメモリを外部化することが重要です。
そうすることで新しい情報や創造的な思考にリソースを割けるようになります。
AI台頭によって「書くこと」を肩代わりしてくれるようにもなった
最近ではAIも出てきていて、AIに手を動かしてもらうことができるようになりました。
自分の頭の中を可視化してくれるし、時には思ってもみなかった発想を補完してくれることもあります。
ですが、AIを効果的に使うには、まず自分の考えを書き出す必要があります。
質問の整理の例
曖昧な質問:
「いい実装方法ない?」
整理して書いた質問:
「Rails APIでユーザー通知機能を実装したい。
要件:
- 通知は1時間以内に届けばOK
- でも確実に届く必要がある
- 月間100万通知程度の規模
現状:
- Sidekiq導入済み
- SendGrid使用中
どういうアーキテクチャがおすすめ?」
書くことで思考が整理され、AIから的確な回答を得られるようになります。
さらに、自分が見落としていた観点をAIが指摘してくれることもあります。
AI時代だからこそ「書く」ことが重要
AIと効果的に協働するには、自分の思考を明確に表現する力が必要です。
そのためにはとにかく「書く」ことが大事。
- 書くことで思考が可視化される
- 書くことでAIと対話しやすくなる
- 書くことでより良い解決策にたどり着ける
頭の中で「うーん...」と悩むより、箇条書きでも殴り書きでも構わないから書き出すこと。
まとめ
手を動かすことから、思考が動き出します。
手を動かすことから、問題が整理されます。
手を動かすことから、解決策が見えてきます。
「考える」とは、手を動かすこと。
そんなことを痛感している今日この頃です。