今は、とあるスタートアップ企業で、まだ世に出ていないサービスの開発に携わっています。開発も終盤に差し掛かり、日中はユーザーインターフェースの調整や機能追加がメインなのですが、夜になると、一人静かにデバッグ作業をすることが多くなります。
「デバッグ」とは、簡単に言うとプログラムの不具合(バグ)を探して修正する作業のこと。これがまるで、夏の夜に虫を探す昆虫採集のようで、僕は結構好きなんですよね。
今日のバグは、システムを動かす基盤となるサーバーの、ほんのわずかな設定ミスが原因でした。特定の操作をした時だけ、ごく稀にエラーが発生する。再現性が低く、まるで夏の茂みに隠れた珍しいカブトムシを探すような気分でした。
エラーログという懐中電灯を片手に、コードの森(ディレクトリ)をくまなく探し回る。
「あれ、この部分、他のモジュールとの連携でタイムアウトを起こしてるな…」 「待てよ、この通信設定、他の環境と微妙に違うぞ…」
そうして、ようやくバグの正体を見つけた時の喜びは、何物にも代えがたいものがあります。まるで、暗闇の中で輝くカブトムシを見つけた少年時代に戻ったような、そんな感覚です。
しかも、そのバグを見つけた場所が、開発当初に僕が書いたコードの、それもたった一行の記述ミスだったりすると、なおさら感慨深いものがあります。数ヶ月前の自分の思考回路をたどり、なぜこのコードを書いたのか、どんな意図があったのかを必死に思い出す。過去の自分と対話しているような、不思議な感覚です。
スタートアップでの開発は、大手SIer時代とは全く違います。SIerでは、何百人ものエンジニアが分業体制で進めるため、自分が書いたコードがどこにどう影響しているのか、全体像を把握しにくい側面がありました。
一方、今のチームはごく少数。だからこそ、自分が書いた一行のコードが、サービス全体にどう影響を与えるかを肌で感じることができます。そして、その一行が引き起こしたバグを、自分の手で一つひとつ解決していく。これは、まさに「プロダクトを育てる」という感覚に近いのかもしれません。
夏の夜、窓から聞こえる虫の声を聞きながら、キーボードを叩く。一つバグを潰すたびに、サービスがまた一歩、完成に近づいていく。この地道で、どこかロマンのある作業が、僕はとても好きです。
「よし、もうすぐ完成だ。さあ、次のバグを探しに行こうか。」
そんな風に意気込みながら、今日も僕はパソコンと向き合っています。
 
 
