エンジニアになった経緯を教えてください
最初にプログラミンングに触れたのは、たしか小学校低学年のとき、父親がLOGOっていうプログラミング言語が使えるおもちゃを買ってきてくれて、カメのアイコンを動かしながら図形をつくっていくというようなものだったんですが、それがでした。
ただ、当時の自分はの面白さが全然わからず、プログラミングにはまるということはありませんでした。PCゲームを通してパソコン自体に触れることはそれなりにあったのですが、実際にちゃんとプログラミングを実際に始めたのは大学に入ってからです。
それ以前から自分のパソコンにLinux OSを入れて使ってみるというようなことはやっていて、そうこうするうちにもっと自分で何かをつくれるようになりたいと思うようになり、知り合いの紹介でバイトがてらプログラミングを本格的に学び始めたというのがスタートで、大学3年生とかでした。最初はPHPを書いてましたね。
ちょうどその当時はGoogle Mapが出てきてみんな使い始めていた頃で、まさにAJAXが盛り上がっていました。自分もAJAXを触り始めて、そのくらいの時期から本格的にプログラミングをやるようになっていったという感じです。
新卒で入った会社に10年以上いた中で
就職活動ではいくつかのIT企業に面接に行ったのですが、プログラマーとして採用してもらえるところを探していました。結局入社することになったカヤックは、当日新卒採用すらしていなかったのですが、自分が書いていたプログラムなどを見せてみたところ、経験はまだ浅いけど採用してみるかと言ってくれて採用されました。
そして、気づけばカヤックには10年以上もお世話になることになったわけですが、その間にいろんなサービスに携わらせてもらえて、いろんな人たちと一緒に働くことができたのでとても良い経験になりましたし感謝しています。その中で、一番心に残っているのは、在籍中の一番最後に携わった「Lobi Tournament(現:Tonamel)」というトーナメントサービスです。
サービスのコンセプトはシンプルで、ユーザー同士が集まってトーナメント戦をするような状況を思い浮かべてもらえればと思いますが、とても手軽にトーナメントを作成することができ、参加者のエントリーから大会中の運営、結果発表などに至るまで誰でも簡単に行えるようなサービスです。
ゼロベースの立ち上げからやって、試行錯誤しながら新機能も作り続けていたので、最後までとてもやりがいがありました。また、単に開発自体が楽しかったということ以上に、自分の中でこのプロジェクトを通してエンジニアとしての働き方や考え方が変わるようなきっかけがあったのが、一番大きかったと思っています。
正直なところ、このプロジェクトの前までは、自分がエンジニアとしていろんなサービスの開発に携わっていた中で、ゼロからの立ち上げもありましたし、運用中のサービスの改善や追加機能などを開発するようなこともありましたが、いつも「何が正解なんだろうか」という思いを持ちながら開発していた気がします。つくってはいるんだけども、それがそのサービスにとってベストなのかどうか、他にもっと良いやり方があるのではないか、そんなことをグルグル考えながら開発していた気がします。
そんな折、このプロジェクトで一緒になったある後輩エンジニアがいまして、その彼といろいろ話していくうちに、それまではプログラムを組んでいく際にエンジニアの中だけで考えて作り始めているようなシーンが多かったなと振り返って改めて思いました。今となっては当たり前というか、特に新しくもない概念だとは思うんですが、設計段階やフレームワーク選定などの段階からちゃんとビジネス側の人たちも巻き込んで、そのサービスやプロダクトを通して何を実現したいのか、それを提供した先にどんな世界を見据えているのか、そういったことについてしっかり目線合わせをしておくことがとても重要なんだと理解したわけです。
彼が当時言ってたことは、「ドメイン駆動設計」という考え方に基づいているという話ではあったんですが、ただ、ここでそういう方法論の話をしたいわけではないのと、「ドメイン設計とは何か」みたいなところも人によっていろいろ解釈などもあるので、そういった呼び名や定義の話ではなく、本質的なところに話を戻すと、この考え方に出会うまでの自分の中の意識は、エンジニアは仕様を明確にしてそれをソフトウェア・エンジニアリング特有の実装パターン的なものを適用して実装する存在だと思っていた節がありました。ただ、それでは解像度が低く、特に大きく2つの点で認識が足りていなかったということが分かってきました。
一つはソフトウェアエンジニアリングにおいて責務を明確にして設計・実装を行うことで、作成するアプリケーションに一定のルールを持ち込むことができます。自分が実装を行うときだけでなく、レビュー時にもレビュワーの好みを一定量取り払って議論する素地をつくることができます。
もう一つはその議論の素地というのはエンジニアに閉じた話ではなく、ビジネスサイドの人間やプロダクトオーナーともコミュニケーションをとり、おおよそでも認識を揃えていく、それも一度だけでなく何度も行っていくというプロセスが大事だという事でした。
認識を揃えるプロセスというのは、単にビジネスサイドのやりたいことを吸収するという短絡的な話ではなく、そのビジネスを成り立たせているモデルをビジネス側とエンジニア側で同じものを見ているように絶えずチューニングするということでもあると僕は捉えています。もちろん今でもそれが完璧にできているというわけではないのですが、少なくともそこをすごく意識するようにはなったので、きっかけを与えてくれた後輩エンジニアには今でもとても感謝しています。
転職のきっかけと「一日体験入社」
2018年9月に初出社をし、それから2年が経ちました。なんかあっという間ですね!
前職カヤックに10年以上在籍していた中で、転職を考えはじめたきっかけとなったのは、同社のサービス内容としてゲーム色がどんどん強くなっていったというところでした。対して自分は社会的にもより貢献できそうな事業やサービスに関わってみたいなと考えていた中で、たまたまスマートドライブのことを知ったというのがきっかけでした。
それなりに知名度のある会社から、まだどうなるかわからないスタートアップに飛び込んでいくという転職については、幸い妻と家族からは特に反対とかはなく、やりたいことをやって欲しいと背中を押してくれました。自分自身、会社の知名度や規模などは特気にしていなかったので、そういう部分で二の足を踏むということも特になかったですね。
うちの採用プロセスの中でとても良かったなと感じているのは、最後に「1日体験入社」をさせていただいたことでした。自分の場合、転職活動自体が人生初だったので、他にもたくさんそういう取り組みをやっている会社があるのかや、むしろ一般的なプロセスなのかとかは知る由もなかったのですが、この体験入社をとおして社内で実際に一緒に仕事をすることになるエンジニアのみんなや、他部署の人たちがどういう雰囲気で働いているのかとか、実際に朝からオフィスで時間を過ごしてみて、ランチも一緒にいったりしていると、自分がそこの馴染めそうかどうかとか、一緒に仕事をしていきたい人たちなのかどうかとかが、単に面談/面接をしたというだけの情報量よりも遥かに多くのことを知れるので、とても有意義でした。そういった意味でも、特に不安もなく入社を決意することができましたね。
自分なりのイメージを持つこと
今振り返ると、入社当時はあまり意識できてなかったと思うんですが、今年はコロナ禍をみんなでくぐり抜けてきた中で改めて気づかされたことがありまして、それは「スピードを意識する」ということです。代表の北川もよく口にしていたので意識にのぼることも多かったのですが、もちろんこのスピードというのは単にプログラムを速く書くというスピードのことではなくて(もちろんそのスピードも速いに越したことはないですが)、チームプレイで物事を前に進める時のスピードのことだと理解しています。
このスピードというのは、例えばslack上でも相手の発言を待ったり、オンラインでの定例MTGでも気になったことでも次の定例に持ち越すみたいな行動にも表れますが、誰かが何かを決めてくれるのを待つ状態では決して達成できるものではないと僕は考えていて、できるだけ自分が決められるようにする。自分に決定権がない事柄であっても、自分としてはどうしたいのかを考えてイメージしておくことで、周囲に意思決定を促せたり、自分の意思がちゃんと表明できて相手に伝わったり、能動的に仕事に取り組んでいけるんだと思います。
つまり、その場その場で、自分ならこうする、こうしたい、そういう視点を持って仕事をしているかという、すごく基本的なことだとは思うんですが、そこに立ち返りました。プロダクト1つとっても、自分の中でこういうふうにしていきたいというイメージをちゃんと持っているのか。そういうイメージがあるからこそ、自分はそれに向かって何をやるべきなのか、周囲からどういう協力を得る必要があるのかがクリアになっていきますしね。
ここについては「学習する組織」という書籍にも、ビジョンに対して参画するのか、もしくは形だけも含めて追従するのかで仕事をする際の熱量は相当違う、という主旨のことが書かれていて、自分がどこまで参画する側に立てているかは別として、似たようなことを肌で感じていたのでとても印象に残っている箇所です。
そう考えていくと、普段からそういうイメージをもって働いている人というのは、スタートアップ環境への親和性も高いし向いているんじゃないかなと思いますし、そういう働き方をしていきたいという方はぜひ弊社含めスタートアップを今後の選択肢に入れていただけると良いのではないかと思います。
私自身のモチベーションとして、何らかの課題解決に貢献していたいという思いが強いですね。誰かが困っていたら、可能なら技術力を駆使して、手助けしてあげたいですし。開発という仕事においてだけでなく、組織やチームとして課題解決に向き合っている時にちゃんとそこに貢献できているという状態でありたいと思います。
あと、個人的な夢としては、娘が大きくなる前に、ボルダリング1級を登れるようになりたいです(笑)
人事のインタビュー後記
弊社エンジニアの田中のインタビュー、いかがでしたでしょうか。
個人的には、田中が言及していた「自分としてのイメージを持って仕事に取り組む」という部分はハッとさせられたというか、実際に自分自身があまりクリアなイメージもなく人に振って判断待ちをしていたり、今すぐ自分が決めるとなったら意思決定できる判断材料と道筋を持っているのかと問われると、そうでないことの方が圧倒的に多いと思いました。
誰かに判断を委ねている時点で、どうしても仕事は受け身になってしまいますし、自分が最終的な意思決定者ではないという状況においても、自分としてはちゃんと考え抜いたのかどうかというのはとても大切で、その上でイメージを持てているのかどうかというのが、仕事の質に反映されてくるのだとうなと、耳が痛い思いで聞いていました。
よく「すべての社員が経営者としての目線を持って仕事に取り組む」みたいな話がありますが、一瞬それっぽく聞こえるキャッチーなフレーズではあるものの、よくよく考えてみると、組織においてそれを字面通りやるのは現実的ではないと個人的には思っているのですが、ニュアンスとして自分がしっくりくるのは、「自分が最終意思決定者だったらどうするのか」をすべての現場で考えてみるというのは、それなりに意義のあることではないかと思います。
意思決定を誰かに委ねるのは楽なので、自分自身よくそれをやってしまいがちですが、その際に田中の言う「イメージを持っている」のかどうか。そこは継続的に自問していきたいなと思った次第です。