わたし達はエンジニアだから、体験談をエンジニアリングして語りたい
直近で何度かテックカンファレンスに参加する機会がありました。 どのイベントも大盛況で素晴らしいことです。
大盛況だからこそ思うのです。
テックカンファレンスなら、わたしはエンジニアリングの話をたくさんしたいし、エンジニアリングの話をたくさん聞きたい。
わたし達エンジニアの本分である「エンジニアリング」について、もっとゴリゴリと議論し、向き合う時間が欲しいな、と感じる瞬間があるのです。
というわけで少し原点に立ち返ってみたいと思います。
ここで言う「エンジニアリング」を言語化する
「エンジニアリング」について厳密な定義はないと思いますが(知っていたら教えてください)、多くの定義は概ね以下のようになります。
科学的知識に基づいて、課題を解決するための「もの」や「仕組み」を創造・構築・運用すること。またそれを分析・体系化し、別人でも再現可能な最小条件と手法を確定し、検証し、条件を満たせば誰もが利用可能な方法論へと昇華させること。
ポイントが2つあります。
- 科学的知識に基づいた創造・構築・運用
- 分析・体系化・検証・昇華
知識を使ったり何かを作ったりして課題を解決することと、それを形式知に昇華させること、この一連がエンジニアリングだということです。
やってみた / こんなことがあった、の先の、
- 分析・体系化し
- 別人でも再現可能な最小条件と手法を確定し
- 検証し
- 条件を満たせば誰もが利用可能な方法論へと昇華させる
まで含めてエンジニアリングというわけです。
とまあここまで言うと少しハードルが高すぎて困ってしまいます。なにせ後半の「検証し」が現実的にかなり難しい(不可能な場合も)なのですよね。
特に大掛かりな変更を伴う / 組織が絡む / 時系列が絡む(技術的負債の扱いなど) / 外的な要因に端を発する(年に一度・4年に一度のイベントなど)ものは、個人や少数での検証が難しいものです。
しかしそこで諦めず、少なくとも検証の手前までやるとすごくイイですよというのがこの記事の話です。
「N=1の体験」からエンジニアリングへの道のり
エンジニアリングは個人の小さな「N=1の体験」から始まります。
この貴重な「N=1の体験」は原石です。 この原石を磨いていくのがエンジニアリングですね。
最初のマイルストーンは 再現可能 にすることです。 「別人でも再現可能な最小条件と手法を確定」して、体験談から 「検証可能な仮説」 に磨き上げます。
具体的には次のような段取りです。
- 体験を深く洞察して
- 構成要素と再現可能な最小条件を見定め
- それらがどのように作用して結果に至るかの機序を見定め
- 検証可能な仮説として提案する
特に 「最小再現条件」 と 「作用の機序」 がポイントです。 この2つが揃って初めて、それは他者が客観的に評価・検証できる 「検証可能な仮説」 になります。
仮説ですから、よく考えたら再現不可能だったり、的を外していたりすることもあります。 しかしそれでもよいと思っています。 言語化することで議論できるようになり、仮説を改善できるようになりますから、このステップを踏んで磨くこと自体が重要だと思うのです。
このステップを踏むことで、体験談は「やってみました」「こうでした」という感想文から一歩進んで、エンジニアの議論の対象たる「エンジニアリングのアウトプット」になります。
こうして、わたし達のN=1の体験はエンジニアリングの舞台に乗るわけです。
わたし達はエンジニアだからこそ
わたしは、テックカンファレンスでは完成された方法論を発表するだけでなく、こうした「検証可能な仮説」をコミュニティにぶつけ、多様な視点からフィードバックをもらい、より洗練された方法論へと共に育てていくための格好の場でもあると思います。
わたし達の日々の業務の中には、次のベストプラクティスに繋がる「N=1の体験」が眠っているはずです。
- なぜかうまくいったあの取り組み
- 苦労して解決したあのトラブル
それらを体験談 / 苦労話で終わらせず、一歩踏み込んで 「最小再現条件は何か?」 「作用の機序は何か?」 と考えてみてください。この探求がエンジニアリングの醍醐味であり、ITエンジニアが職業として成り立つための基礎でもあり、またITエンジニアリングが産業として成り立つための基礎でもあります。
わたし達はエンジニアです。だからこそ、「エンジニアリング」という営みに、もっともっと向き合っていきませんか。
ISUCON本『達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践』の第一章はこんな気持ちで書きました。
最近出た『バックエンドエンジニアのためのインフラ・クラウド大全』も同じくです。 ぜひ手に取ってみてください。 日々の業務で出会う様々な技術要素の「作用機序」を理解するための一助となるはずです。
※つまるところ、書籍の宣伝でもあります
