Kyoji Osada

IT Engineering Semantic & Episodic Memory by Kyoji Osada at AiR&D Inc. from Tokyo, Japan.

一流エンジニアになるための Off-JT #1. テクニカルメモ

テクニカルメモ:はじめに

特に IT 業界は、“技術の進化が早く”、また“技術の種類が豊富”で、さらに“情報量が膨大”です。
また市場では、シリコンバレーを起点に“プロダクトの開発と改善の速度競争”が激化しています。
世界では、これらの需要を満たす技術が日々誕生し、検証され、実用化されています。

したがって、これらの市場競争に参加する以上、現場では“プロダクトの開発と改善”のスキーム(例えば、アジャイル開発、DevOps、Growth Marketing など)や、“技術の進化”に対応していかなければ、組織も個人もいずれ時代に取り残されてしまう事になるでしょう。
このように特に近年は、そのトレンドの移り変わりの速さを実感されているエンジニアさんも多いのではないでしょうか。
ある分野に特化してるエンジニアさんであっても、技術に関わる以上少なからずこの影響は受けてることでしょう。

しかしそんな熾烈な技術進化の中にあっても、優れたエンジニアさんの中には、“技術のインプット”と“応用のアウトプット”が早く、そして多くの“引き出し”を持っているエンジニアさんがいます。
そして時として彼らは、これらの“生産性の高さ”から“一流エンジニア”と評される事があります。
(“エンジニアの生産性” については、別のポストで言及します。)

では、彼らのようなエンジニアは、これらの課題にどのように対応してるのでしょうか?

彼らの多くに共通していることの一つに、“テクニカルメモ”を適切に活用している、ということがあげられるでしょう。
実はこれは、初級エンジニアさんにとっては、ファーストステップともいえるスキルです。
また、初級段階でこのスキルを身につける機会のあったエンジニアさんは幸運だと私は思います。
しかし、中級エンジニアさんでも、今から取り組んでもぜんぜん遅くはないはずです。
なぜなら、このスキルはそれだけ価値のあるものといえるからです。
一流エンジニア”になるための“強力で有用な武器”となりえるからです。

テクニカルメモとは?

テクニカルメモ”とは、後で自分が見てわかりやすい“技術の記憶メモ”のようなものです。
新しく取り掛かる技術、知識、手順などを“素早く記録”し、必要に応じて“素早く引き出して”活用していくためのものです。
フォーマット、スタイル、内容はエンジニアさんによってそれぞれでしょう。
その一例は、この後記述します。

一流エンジニア”の中には、このように“記憶用法”をうまく使い分けている方がたくさんいます。
手続き記憶(考えてもなかなか引き出せないが、タイピングすれば引き出せる等)、セマンティック記憶、エピソディック記憶、補助記憶など・・・(“記憶の用法”ついては、別ポストで言及します。)
そして、私の経験則からも“テクニカルメモ”をうまく活用してるエンジニアさんの多くは“成長スピード”が早いと感じています。
(もちろん、“一流のエンジニア”になるために必要な要素はこれだけではありませんが。)

なぜテクニカルメモは有用か?

いろいろな現場に入ってて感じるのは、検索サイトが進化したおかげで、良くも悪くも“全てを検索サイトに依存する”スタイルのエンジニアさんが増えたということです。
ここで問題となりうるのは“全てを依存”という箇所です。

例えば、必要に迫られて一度調べたはずの情報を、何度も検索サイトで検索して調べる方を、あらゆる現場でお見かけする事があります。
このような場合「あの記事が見たいんだけど、どこだ?」というように、検索結果の表示順位が変わってたり、一時的なサーバーダウンならまだしも、記事の削除、アカウントの削除、サイトの削除など、二度とその情報が出てこない場合もあります。
また、中には鵜呑みにすべきではない情報もあります。
(“情報の精査”については、別ポストで言及します。)

これはあくまで、ある現場での一例ですが、
「あれ?なんだったかな」「ないぞ?」「どこいった?」「これだったかな?」
という声が聞こえ漏れてくることもありました。

このように、同じ情報を何度も検索サイトで調べては時間を費やしてしまう行為は、“生産性”を上げるどころか、ほぼ“インプット”にもなっていない状態をつくり出してしまっている、といってもいいでしょう。
要するに検索サイトを、記憶装置化してるということでしょうか。
それであれば、まだ Pocket などを使うほうがマシといえるでしょう。
(“テクニカルメモ”としては疑問ですが。)
このようなスタイルで、且つ伸び悩んでいたエンジニアさん達に、“テクニカルメモ”の活用法をアドバイスしたところ、明らかに伸びていったのを今でも鮮明に覚えています。

もちろん、情報の量が多くて質が高い、どのサイトも内容がほぼ一定の情報については、それでも良いかもしれません。
(例えば cd コマンドのオプションなど)
また、“テクニカルメモ”にまとめること自体が不毛なケースもあります。
このへんは、極論ではなく程度感ともいえます。

テクニカルメモ”の有用性は、このように全てを頭で記憶するには情報量があまりに多すぎる煩雑な状況に対して、“すぐ書き込み”、“すぐ引き出す”ための“長期記憶”の補助ツールとして利用できる点にあります。
その結果、“技術のインプット”と“応用へのアウトプット”の効率化と“引き出し”の増加により、“生産性が向上”するという大きなベネフィットが生まれます。

更に、“テクニカルメモ”の有用性を最大化するためには、“全てを記憶する必要はない”という明確な意識と、“記憶の補助として適切に活用する”という明確な意識が鍵になる、といっても良いでしょう。

単なるメモと何が違うのか?

単なるメモとは何が違うのか?
前述のように、“すぐ書き込み”、“すぐ引き出す”ための、“長期記憶の補助”という“明確な目的”の有無がその違いとなります。
これらの目的があれば、そのメモはおそらく“テクニカルメモ”とニアリーイコールでしょう。
しかし、雑記が目的のメモとは、明らかにその目的に違いがあります。
(ちなみに、私は雑記メモなどは、“短期記憶”(すぐに忘れてもよい記憶)目的として、“テクニカルメモ”とは別に“ワーキングメモ”を常備しています。)

テクニカルメモの使い方は?

では、“テクニカルメモ”はどのように使えばいいでしょうか?
下記では、一例をあげてご紹介します。

テクニカルメモの目的

テクニカルメモ”を“すぐ書き込み”、“すぐ引き出す”ための“長期記憶の補助ツール”として活用することで、“技術のインプット”と“応用のアウトプット”の効率化と“引き出し”の増加をはかり、自身の“生産性”を高めること。

テクニカルメモの要件例

  • クロスプラットフォームで操作可能なこと。
  • マルチデバイスで操作可能なこと。
  • オンライン・オフライン環境で操作可能なこと。
  • ソフトウェアに多くを依存しないこと。
    (開発やサポート終了の影響を受けないようにするため)
  • etc...

テクニカルメモのポイント例

  • 一時的なメモ扱いにしない。
  • 自分が見てちゃんとわかるものにする。
  • 他人が見る用に清書しない。
  • チームドキュメントに依存しない。
    (組織の情報セキュリティ上難しい場合があるかもしれません)
  • 手順や情報をあまり省かない。
  • 全てを記述するも必要もない。
  • フォーマットにあまりこだわりすぎない。
  • 追加情報がある場合は、都度ブラッシュアップする。
  • 項目、技術内容によってファイルを分ける。
  • etc...

テクニカルメモの配置例

テキストファイルの場合

テクニカルメモのツール例

  • 普通のテキストファイルエディタ
    (アウトライン機能があれば尚可)
  • Markdown 可能なエディタ
  • Google Drive
  • OneDrive
  • Dropbox
  • BoostNote
  • GistBox
  • etc...

これらは、あくまで一例です。
中には、自己表現やポートフォリオのアウトプット目的で、ブログなどでオンライン化されてるエンジニアさんもいっらしゃいますね。
このへんはご自身にあった活用法をオススメします。

テクニカルメモ:まとめ

このポストでは、“一流エンジニアになるための Off-JT” シリーズのテーマとして、“テクニカルメモ”について解説しました。
情報量があまりに多すぎる煩雑な状況に対して、“テクニカルメモ”を適切に活用し、“技術のインプット”と“応用のアウトプット”の効率化と“引き出し”の増加をはかり、自身の“生産性を向上していく事で、“一流エンジニア”への道に繋がっていきます。

他人に見せるアウトプット用ではありませんので、フォーマットやレイアウトにこだわりすぎると、本来の目的を見失いかねません。
また、せっかく“テクニカルメモ”を活用していても、インプットを忘れてしまったり、時として面倒になってしまうケースもあります。
したがって、ご自身が面倒にならない内容に留めておくことも秘訣の一つです。
新しく調べた技術は、必要なことは都度インプットしておくようにしましょう。
そのうちインプットの仕方にも慣れ、“テクニカルメモ”のスキルも向上していくでしょう。

このスキルは、“テクニカルメモ”の目的からズレずに継続していくことで、“一流エンジニア”になるための“強力で有用な武器”になりえます。
このポストが、みなさんの“一流エンジニア”になるための一助になれば幸いです。

一流エンジニアになるための Off-JT” シリーズ次回のテーマは “#2. 情報の精査”の予定です。