メインコンテンツへスキップ
水平的な価値:自分を超えたスケールアップのアイデア

水平的な価値:自分を超えたスケールアップのアイデア

dmarcianの内部オピニオンリーダーシップ

当シリーズでは、dmarcianを構成する多様な人材に焦点を当てています。私たちの根幹にあるのは「人々が互いに助け合う」という精神であり、その精神が、チーム内での協力や、支援先組織との関わり方に反映されています。私たちのチームは、さまざまな経歴、経験、視点を持ち寄っていますが、すべての人にとってメールをより安全なものにするという共通の使命によって結ばれています。本記事では、開発者の一人が、問題解決や複雑な業務システムの扱い方について語ります。

数年前、私はあるチームの一員として、大きな問題に取り組んでいました。それは、アプリケーションの異常な動作で、数日間どころか数ヶ月も続いていたものです。根本原因が特定できなかったため、その場しのぎの対処を繰り返すしかありませんでした。同僚は根気強く、一貫してその問題に集中していましたが、私は「ヒーロー」になることばかりに気を取られていました。 私は独り立ちし、欠けているピースを見つけるために必要だと考えたツールを開発し始めました。2週間の作業の末、そのツールが私を同僚が当初いた場所へと導いたのです。それは屈辱的な経験でした。 

「これは無駄な努力だった」と確信した彼は、別の場所を探し始め、ログの中に異常な点を発見した。自尊心を保とうと、私は自分の考えを一旦棚上げし、彼の案に賛同した。私は彼のデータをグラフに落とし込んだ。そしてついに、目に見えていたのに気づかなかった原因を見つけ出した――データを破損させ、傷口に再び塩を塗るような存在だった。彼は私の協力に感謝してくれたが、私は打ちのめされた気分だった。解決したのは私ではない。私一人では、解決できなかったのだ。

その場を離れるとき、私は長年かけて習得してきたことだけでは不十分だと感じていた。圧倒的な問題に直面したとき、私にはそれ以上の何かが必要だった。当時はそれを表現する言葉を持っていなかったが、コンピューティングにはその言葉がある。 

1人の問題解決者だけでは不十分な場合、2つの道があります。まず、手持ちのシステムをより高性能なコンピュータにアップグレードすることを検討します。これは「垂直スケーリング」と呼ばれ、既存のシステムが持つ限界を引き上げることを意味します。これは、私たち自身が試行錯誤し、失敗し、学びながら――自らの経験や他者の知見を活かして――成長していくプロセスです。かつて自分たちを打ち負かしたものを、今度は自分たちだけで打ち負かすために、自らを磨き上げるのです。それは、私がより良い自分になることなのです。 人間もコンピュータも、単独で成し遂げられることには限界があります。そこで「水平スケーリング」の出番となります。

水平スケーリングとは、問題を単独で解決する単純さを犠牲にし、2つ(あるいはそれ以上)あれば1つよりも良い結果が得られるという期待に基づいています。コンピューティングの世界では、これは、本来なら処理しきれないほどの同じ問題の発生件数(例えば、何百万人もの人々が同じウェブサイトを利用しようとしている状況)を、そのタスクを処理するのに同等の能力を持つノード群に均等に分散させることを意味します。これを人間に例えるのは難しいでしょう。人は一人として同じ人はいないからです。 私たちは、同じように設計され、構築され、構成されているわけではありません! しかし、水平スケーリングの別の応用例なら、より共感できるかもしれません。それは、問題を分割して専門化させ、各コンピュータが1つのことに効率的に集中できるようにするというものです。この考え方は、私自身の経験に近いものです。つまり、2つの異なる角度から同じ結論に到達し、2つの異なるスキルセットを提供することで、ブレークスルーを達成するということです。 

とはいえ、この例えでは、実際に起きた出来事の生々しさやエゴが十分に伝わらない。私は単に同僚の行き詰まりを解消しようとしただけではない。問題の解決方法に関する自分の考えこそが、欠けていたピースであることを証明することに、強いこだわりを持っていたのだ。私は、彼が辿ったのと同じ道を歩んで同じ結論にたどり着く能力も、突破口を開くきっかけとなったデータを収集する能力も、彼ほどには持ち合わせていなかった。 私には独自の貢献ができるものがあったが、自分のエゴのせいで、勝利さえも失敗のように感じられた。なぜなら、私自身の考えは、実際の問題を解決するには十分有用ではなかったからだ。コンピュータには、少なくとも今のところ、エゴがない。それらは、非効率的で雑然としているが、それゆえに美しく、示唆に富む何かを逃しているのだ。

エゴは問題を効率的に解決する上での障害となり得ますが、どの問題が解決に値するかを判断する上では非常に有効です。既知の問題と十分なフィードバックがあれば、人工知能が解決策を導き出す能力は現在、畏敬の念を抱かせるほど(そして恐ろしいほど)優れています。しかし、その問題自体が解決に値するものかどうかを、人工知能は本当に判断できるのでしょうか? 誰のために問題を解決するのか、そして対象となる人々が何を最も必要としているのかを知らなければならないのではないでしょうか? 

同じ問題でも、人によってその影響は異なります。プロの短距離選手にとって、足の骨折はキャリアの終わりを意味するかもしれません。現在治療のしようがない怪我によって打ち砕かれた夢を、車椅子だけで抱えきれるわけではありませんが、仕事で数ヶ月間スタンディングデスクが使えなくなるという、ソフトウェア開発者にとっての些細な不便を補うには、車椅子は十分役立ってくれるのです。 

同僚は、私が別の環境で問題を再現する手法などを使わなくても、何かがおかしいと気づいていた。同じ結論にたどり着くために、彼にはもっと手早く実行できる別の解決策があったのだ。同僚が必要としていたのは、異なる視点から同じ結論にたどり着ける人物であり、彼に別の角度から物事を見るよう説得できる自信だった。 私は、自覚していなくても、彼にそれを与えることができた。その問題は、私たちのエゴを乗り越えて重要性を保ち続けるほど大きなものだった。それは私を謙虚にさせるほど大きな問題であり、私を自制させ、この問題に立ち向かうには他者の力が必要だという真実を、真正面から突きつけてきた。その結果、私は妥協し、私が必要とし、かつ私を必要としている相手と協力する道を見出すことになった。 

それから何年が経っても、電子メールのセキュリティに関する問題はますます複雑化し、絡み合い、そして私とは異なる視点を持つ人々への依存度が高まり続けている。私は自問し続けている。自分が取り組んでいるのは、他者の力を必要とする問題なのか、そして自分は、共に働く価値のある人間になりつつあるのか、と。


さらに詳しく議論を続けたい方は、ぜひ dmarcian Forum へお越しください。