ポエム:平ヶ岳の皇太子ルートとWebサービスの負債解消について

注:このエントリーはただの脈絡のないポエムです。

私は大学生の時に登山サークルに所属していたので、百名山の山もいくつか登っている。今では膝と足首を壊してしまったので行くことも無くなってしまったが、以前に登った平ヶ岳のことを紹介したい。

平ヶ岳は新潟県と群馬県の県境にある山。百名山の一つで山頂にとても綺麗な草原が広がるすばらしい山だ。私が今まで登ったことがある山の中でもトップクラスに思い出に残っている山でもある。

ただこの山は地図に載っているルートは1つしかなく、非常に長い行程である上に、途中に水場はない。テントを張ることも禁止されているので日帰りで行くしか無い。私も日の出の直前に登山口を出発したのに、登山口に戻って来れたのは夕方で日の入りまで1時間も無いくらいの時間だったし、4リットル持って行ったはずの水も登山口に着く直前で尽きてしまった(登山中に水がなくなることは死活問題であるため、水が尽きてしまうのはかなり問題だ)。このように平ヶ岳は基本的に登山経験者でないと登れない山として知られている。

しかしこの平ヶ岳には秘密のルートが存在している。今の天皇陛下が皇太子だったときに平ヶ岳を登山しようとしたらしく、その際に宮内庁が用意したショートカットルートが存在するのだ。正規のルートではないので市販されている登山地図には載っていない。地図なしで登山をすることは自殺行為なので絶対にやってはいけないが、地元の宿?に泊まると案内してもらえるらしい。そのルートであれば初心者でも登れる程度の難易度になるらしい。

『らしい』が続くのは先程も紹介したように正規のルートではないので堂々と使うことができず、あまり大っぴらにされない情報なので私も一次情報を持っていないからだ。このルートは『皇太子ルート』などと呼ばれていて、登山者の中ではそれなりに知られている話だ。

実際私が山頂に行ったときに、明らかに登山に慣れてない人が別のルートから訪れていたので、地図にはない別のルートが存在していることは間違いない。

この話がWebサービスの負債解消と何が関係あるのか、思ったかもしれない。その話をこれから書こうと思う。

Webサービスに何らかの変更を加えたいと思ったときに、それを達成するには何らかの負債を解消する必要があることはある程度歴史があるサービスなら起こりうるだろう。

例えば

  • WebサービスにAという達成したいことがある
  • Aを達成するにはBという負債を解消する必要がある
  • しかしBという負債を解消するには時間が非常にかかってしまう
  • しかし実はBという負債を放置したまま、Aを無理矢理達成できる方法がある

この場合、開発者はどのような手段を取ればいいのだろうか。あくまでもケースバイケースなのだが取れる手段は2つあるだろう。

  1. まずAを達成してから、Bという負債を解消する
  2. Bという負債を解消することで、Aが達成する

1番の方法のメリットとデメリットは以下である。

  • メリット:Aを最短で達成できる
  • デメリット:Bという負債が放置されたままになる可能性が高く、またあらたな負債を生み出す可能性もある

2番の方法のメリットとデメリットは以下である。

  • メリット:Bという負債が解消できる
  • デメリット:Aを達成するのに時間がかかり、いつまで経っても成果が出せない可能性がある

メリット・デメリットを天秤にかけて判断する必要があるが、例えばこのBという負債が言語変更を伴うフルスクラッチだったとしたらどうか。フルスクラッチしている間にサービスが進化を止めることが本当に許されるのかをしっかり議論する必要がある。また業界内でもフルスクラッチがうまく行ったケースは私は数えるほどしか知らない。

1番の方法はもちろん負債が放置されるリスクがあるし、また無理矢理達成する方法が新たな負債を生み出す可能性がある。なので事前に周りの合意をしっかり取る必要があるし、優先度の問題で負債が放置される可能性は高い。

こういう状況に出会ったときに例え話として『平ヶ岳を登るときに正規ルートを選択するか、皇太子ルートを選択するか』という話にすると非常に有用だし、意味を理解している人には非常に分かりやすい例えだと思う。

ということで今後こういう状況に出会ったらぜひ使ってください。

将来の夢は隠居です

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store