企業が事業やサービスの成長、拡大を目指すのは当然だが、それに伴って生産性を阻害する要素も生じてくる。LayerX バクラク事業部 VP of Enablingの名村卓氏は、「それを解決するための鍵になるのが脳の認知負荷を考えること」だと言う。同社ではEnabling Teamを立ち上げ、さまざまな面から脳の認知負荷を軽減して生産性を向上させるイネーブルメントの取り組みを行っている。

7月23~24日に開催された「TECH+フォーラム - クラウドインフラ 2024 Jul. 理想の環境にアップデートする」に同氏が登壇。Enabling Teamの実際の活動事例を紹介しながら、イネーブルメントの目的や重要性、注意すべきことなどについて解説した。

事業が成長するうえで避けられない弊害とは

講演冒頭で名村氏は、プロジェクトの成功には開発速度、生産性、そして意思決定の3つが不可欠だと述べた。サービスを立ち上げるようなときは少人数のチームであることが多く、そのため開発速度も意思決定も速く、生産性が高い状態にある。しかし、事業が成長すれば人と機能は増える。やるべきことが増えるので人数も増えるし、競争を勝ち抜くためにサービスの機能が増え、複雑になっていく。同氏は、こうした人数と機能の増加によってプロジェクトの生産性を阻害する弊害も生じてくると指摘する。

その弊害とは専業化と複雑化、そして多様化だ。例えばバックエンドとフロントエンドは別の人がつくり、バックエンド内のある機能はさらに別の人がつくるというようにそれぞれ得意な分野を担当するようになる。そしてサービスの仕様は複雑になり、新たな技術の導入により技術的にも複雑化していく。さらに人によって考え方、使う技術、価値観も異なるため、人数が増えれば多様化も避けられない。こうなると意思決定は低速化し、担当領域が狭小化するため他チームを巻き込まないと物事が進まなくなり、合意を形成しないと何も決められないという状態になる。

イネーブルメントの目的は、脳の認知負荷を最適化して生産性を向上させること

ではどうやってこの弊害と戦っていくのか。名村氏は「認知負荷を理解することが重要」だと話す。これは『Team Topologies 価値あるソフトウェアをすばやく届ける適応型組織設計』(マシュー・スケルトン、マニュエル・パイス著/発行:日本能率協会マネジメントセンター)という書籍に書かれている概念で、脳のワーキングメモリーにかかる負荷のことを指す。同著によると、認知負荷には内在的負荷、外在的負荷、学習的負荷の3つがある。

内在的負荷は、課題そのものの難易度や複雑さに関連する負荷のことだ。例えばサービスアーキテクチャの設計をする際にはその設計を考えること自体が内在的負荷になるし、銀行送金の機能をつくるときには送金の仕組みが内在的負荷となる。これに対し、課題とは無関係の事象の負荷を指すのが外在的負荷で、機能開発や本番適用などと直接関係のない手動の作業などがこれにあたる。開発に使うPCにソフトウエアやセキュリティに起因する制約がある場合、それを回避しながら開発を進めるためにさまざまなことを考えるのも、実際の開発には関係ない外在的負荷だ。学習的負荷は、新たな概念を学習して知識を得ていくための負荷である。例えばペアプログラミングでお互いの考え方を学ぶ、技術的負荷の解消のために新たなアーキテクチャを考えるなどが学習的負荷に該当する。

認知負荷は脳のワーキングメモリーを配分して使用するが、ワーキングメモリーには限界があり、いずれかの負荷が高くなると、その他の負荷がかけられなくなる。つまり認知負荷の配分のバランスが重要なのだ。

「バランスが悪いと生産性が阻害されます。だから認知負荷を最適化していこうというのが、イネーブルメントの目指しているところです」(名村氏)

Enabling Teamの役割とは

LayerXには、組織全体のイネーブルメントを目指すEnabling Teamがある。その役割は、認知負荷を把握し、それを最適化するために必要なツールや開発手法をつくること、そしてそのツールや開発手法を他チームに伝授していくことだ。それも単に伝えるだけではなく、Enabling Teamがいなくてもそのツールや手法を使いこなせるまで導くことが重要だという。

  • LayerXにおけるEnabling Teamの役割

名村氏によると、過去にEnabling Teamで開発したツールや手法の中には、ユーザーと観点が違っていたり、実際には役に立たなかったりしたものもあったという。そのため、つくったツールを必ず使えというのではなく「良ければ使ってほしい」というスタンスで提供し、それが定着しないのであればきちんと廃止するというかたちを採っている。そうすることで、Enabling Teamがルールメーカーにならないようにしているそうだ。

また同氏は、Enabling Teamの活動によって認知負荷を増やさないようにすることにも注意していると話す。例えばマニュアルを読まないと進められない、誰かに聞かないと開発できないといったことがあると、外在的負荷を高めてしまう。そのためマニュアルや手動作業はできるだけ増やさないようにしているそうだ。また、世の中で正しいとされている技術、流行している技術がチームにとって正しいとは限らないことも理解しておく必要がある。技術的に正しいかどうかではなく、本当に生産性が上がっているかどうかを見極めることが重要なのだ。

名村氏はさらに、「火消し屋にならないようにすることも重要」だと指摘する。開発チームからEnabling Teamが余剰なリソースと見られ、忙しいときの緊急的な人員として駆り出される火消し屋になってしまうと、本来の目的であるイネーブルメントのための活動ができなくなってしまうためだ。

LayerXにおけるEnabling Teamの活動事例

LayerXでは実際に、数多くの場面でEnabling Teamが活躍している。例えばエンジニアオンボーディングの改善のために、ローカル環境のPCに開発環境を構築する際にコマンドラインで入力するだけで必要な環境が整備されるようにしたり、複数のプロダクトの開発を行う場合に、全ての開発プロセスが簡単に立ち上げられるようにしたりした。

システムの設計やデザインをドキュメントとして残すという文化も推進している。例えば「Architecture Decision Records(ADR)」はアーキテクチャについて意思決定したときに、なぜそう決めたかを記録に残すものだ。記録があれば、チームに後から参加したメンバーでもその技術やフレームワークを使った理由を把握できるし、何か変更したいときにコンテキストを見返すことで、変更してもよいかを判断できる。過去のコンテキストを把握することは大きな認知負荷になるが、それをドキュメントでサポートしているというわけだ。

「LLM(大規模言語モデル)の登場によって、コンテキストを文書で残すことの重要性がさらに増しています。こうした文書は後のイネーブルメントにも活用できます」(名村氏)

その他、顧客の利用環境をチェックし、使える機能に関する情報を収集してエンジニアに伝えるツールや、プロダクトの複雑な機能を理解するために質問に応えてくれるAI Bot、顧客や取引先の新規開拓時に会社情報の調査を自動化する企業調査ツール、営業向けに商談や電話内容を解析する商談分析ツールなどもEnabling Teamが開発している。

今後は、エンジニア以外の職種にもイネーブルメントを応用することを考えているそうだ。営業や人事、マーケティングなどの組織にも認知負荷は存在するため、それを改善することで全体の生産性を向上させようという狙いだ。

「イネーブルメントの重要性はこれからさらに高まると考えています。エンジニアだけではなく、組織全体としてのイネーブルメントを進めることで、さまざまな認知負荷を軽減し、全員が本質的なところに頭を使える状態をつくっていきます」(名村氏)