私の目指す場所は、いつも原点だった。
ふと振り返ると、いまの仕事も思想も、すべては20歳からの学生時代の数年間に凝縮されていた体験へとつながっていく。その中心にあるのは、プログラミングの楽しさと、誰かのために作るという喜びだ。
そこに私が今も理想とするソフトウェア開発の姿があった。その体験をもう一度したくて今も、ソフトウェア開発を追求し続けていると言っても過言ではない。
そんな原点になった時代を振り返りたい。
ベンチャーで過ごした、成長の日々
1995年。Windows95が発売された年。
立命館大学の3回生(関西の大学では3年生のことをこう呼ぶ)だった私は、大阪の西中島にある、学生が立ち上げたベンチャー企業でアルバイトとして、日夜プログラミングに明け暮れていた。
ちょっとプログラミングできると思って応募したものの、そこには自分よりも腕のあるプログラマばかりがいて、最初は打ちのめされたけれど、それ以上に刺激的で惹かれた。
そんな彼らといったら、飲み会でもソフトウェアの話しかしないし、そのあともオフィスに戻って開発を続けるし、そのまま机の下で寝るなんてこともあった。
今なら労働環境としてはアウトに違いない。だけど、学生のバイトにしては破格の給与だったし、何よりレベルが高くプログラミングか好きな仲間に囲まれて過ごす時間は純粋に楽しかった。
プログラマとして圧倒的な成長を果たすことができたと思う。
一方で、学生の本文であるはずの学業が疎かになっていたのも事実。単位はギリギリ、就職活動に向き合うこともできず、社会人になる実感も覚悟もなかった。
消極的な理由で、ぼんやりと大学院に行くんじゃないかと考えていた。そんな私も、卒業研究のために研究室を選ぶことになる。
研究室で出会った、運命を変える先輩
研究室選びの基準は一つ。「プログラミングだけで卒業できるか」。
そんな研究室は一つしかなかった。ゲーム好きの教授がハイスペックなゲームマシンを買いまくっているという噂の研究室。真面目な学生からの人気はなかった気がするけれど、私にとっては理想郷だった。
私の選んだ研究テーマは「オブジェクト指向」だった。プログラミングにハマっていた私は、何を作るかよりも、どう作るのかに興味があったからだ。より良い設計を追求した結果だった。
研究室には教授が買ったAppleのマシンやNeXTSTEPが転がっていて、私はそこでObjective-Cに触れた。まさか何十年後かになって、それが元にMacやiOSになり、XCodeでアプリが作られる未来が来るなんて想像もしていなかったけれど。
卒業研究では、NeXTSTEPから着想を得てC言語のビジュアルプログラミングツールを作り、無事にマスターコースへ進むことになる。
そこで私は、人生を変える人物に出会うことになった。
噂では「研究室のヌシ」。何年も学生を続け、半年姿を消すこともある。ある日いつものように研究室へ立ち寄ると、グレーのスウェット姿で小汚い男が関西弁で声をかけてきた。
「きみ、プログラミングできるんやって?ゲームとか興味ない?」
それが、Sさんだった。
たった一人のユーザのために作るゲーム
私は当時、プログラミングの腕には自信があったし、何か作りたいという思いもあったけれど、いったい何を作りたいのか、それが思いついていなかった。プログラマにとっては、よくある話だ。
だから、私にとってプログラミングの腕を振るう機会があれば、何だって良かった。
Sさんがゲームを作りたいと言うなら、それを作ればいい。そうしてゲームを作り始めた。そうすると作ったものに反応をもらうことができて、とても楽しかった。
たとえ一人でもユーザがいるというのは、プログラマにとって最良の機会であり、最大の喜びなのだと知った。
今、思い返すと彼はとても上手にフィードバックをくれていたと思う。見せると驚いてくれて、すごく褒めてくれて、その上で要求を言ってくれた。
そしてSさん自身もプログラマだった。しかも彼は極めて優秀なプログラマで、手取り足取り教えるタイプではなかったけれど、私は密かに師匠と思って、彼から多くのことを吸収した。
そんなゲームづくりの中で、ふと閃く瞬間があった。
当時、作っていたゲームはストーリーを辿っていくロールプレイングゲーム(RPG)だったのだけど、システムは同じでもシナリオが違えば楽しめるのではないか、と。
チームで作る理想のソフトウェア開発
そこでプロジェクトを立ち上げることにした。Sさんと私、そして絵と音楽が得意な同期の友人の3人で作り始めた。
ゲームのシステムの仕様を考えて、シナリオを実行するエンジン部分を作るのがSさんの役割で、私の役割はシナリオを作成するためのエディタのアプリを作ることだった。
共通フォーマットを決めて、それぞれ別のプログラムを作る。作っては動かし、動かしては直して、それを繰り返した。
仕様について喧々諤々とした議論を朝も夜も続けて、議論してないときはプログラミングし続けた。寝食を忘れ没頭するという、まさしくその状態だった。
自分が踏み込めば踏み込むほど、相手も踏み込んで来てくれる。遠慮なんてなくて、納得いくまで議論を続ける。良いソフトウェアを作るために全力を注ぐことが許される。そんな環境だった。
誰かと一緒にソフトウェアを作り上げることが、こんなに楽しいものだとは思ったことはなかった。それは本当に素晴らしい体験だった。永遠に続けば良いと思えた。
このときのソフトウェア開発の体験こそが、私にとっての原点であり、今も目指し続けている理想の姿になった。
インターネットに公開して知ったユーザの反応
そして1997年。インターネットが一般に少しずつ普及する兆しを見せていた時代。まだまだインターネット全体の利用者数は少なく、牧歌的な時代だったと言える。
そんな中、私たちは完成したゲームをネットで公開することにした。
目的はただ、自分たちが遊ぶためのシナリオを誰かに作ってもらうため。それだけだった。承認欲求も功名心もなかった。作った面白いものを共有したい一心で公開した。
それが、公開してすぐに何千人もの人にダウンロードされた。
驚きだった。今では懐かしいカウンターが面白いようにカウントアップされていく。一晩寝て起きたら、掲示板への書き込みが異様なほど盛り上がっていた。
興奮した。見知らぬ誰かからの反応に手が震えた。そこからバージョンアップの日々が始まる。ユーザの声を聞き、受け入れたり跳ねのけたりしながら改良し続けた。
その過程で私は、第三者の要望を受けてソフトウェアを育てる楽しさと難しさを知った。コミュニティができ、調停役も務めることになった。
Sさんはゲームづくりに没頭していたので、運営・サポートは私が担っていたからだ。
プロダクト作りの基礎を学び、世界が広がる
そうして、ユーザからのフィードバックを元に改善していくソフトウェア作りをしながら、一つのことを思いつく。
それまでは自分が間に入ってやり取りしていたけれど、ユーザが勝手にシナリオを作って投稿し、他のユーザが自由に使えるようにしたら良いのではないか、と。今、思い返すと当たり前のことだけれど。
そこから、今でいうウェブシステムだけど、当時はPerlとCGIを学び、ゲームで作っていたネイティブアプリとの違いを楽しみながら、ネットワークの勉強をしながら作り上げた。
同時に、サポートも大変なので、ユーザ同士で助け合える掲示板も作った。コミュニティの古株の人たちが対応してくれるようになった。今風に言えば「作りたい人と遊びたい人を結ぶプラットフォーム」だった。
思い返すと、そこでコミュニティ運営とプロジェクトマネジメント、全体のスキームやアーキテクチャの設計など貴重な経験ができた。
当時たくさん出ていたインターネットやゲームの雑誌などに収録されたり、特集を組まれたりするようになった。
ある日、アスキーから連絡をもらって、本を出さないかという話になった。よくわからないまま、東京に出て行って、大人の人から説明を受けて契約して、何かご飯を奢ってもらって、帰ってきた。
まるで夢を見ているようだったけれど、その本は、しばらくして本当に本屋に並んだ。自分たちの遊びが、ビジネスになるなんて、やっぱり夢のようだった。
取り戻したい原体験、仕事を技芸とする文化
その後、システム開発会社に入って社会人となった。
そこで私の理想とするソフトウェア開発とのギャップに、大変ショックを受けた。どうすれば、あのソフトウェア開発をもう一度体験できるのか、追求する日々が始まった。
アジャイル開発に出会ったときは、自分の理想を語る人は他にもいることを知った。そして、アジャイル開発を広めることが自分の使命になった。
ただ、私にとってアジャイル開発が理想なのではなく、理想のソフトウェア開発があり、それにアジャイル開発が近かっただけだ。
それからも、自分の理想とするソフトウェア開発をもう一度したい。その思いは途絶えることなく、ずっと追求し続けてきた。
それが今、ソニックガーデンという会社で仲間と共に「いいソフトウェアをつくる」理念のもとに取り組めていることにつながっている。
そして、原体験の中にあったのが没頭する瞬間であり、それこそ技芸としての取り組みだった。その喜びを多くの人に知ってもらうことが、仕事を技芸とする文化を広げることにもつながっている。
原体験こそが、私にとっての出発点であり、これから向かう場所でもある。その道は、今も続いている。

