実際にトライ&エラーを繰り返して得た気づきで自己の向上|未経験からインフラエンジニアへの転職
GEEK JOB編集部
煩わしい契約書周りの業務をラクにする「クラウドサイン」を運営する弁護士ドットコムでサーバーサイドエンジニアを務める桑原 雄氏に、同社の魅力や仕事のやりがいについて伺ってきました。
大手企業・銀行の号令もあり、これから増えてくるフリーランスや副業としての働き方。弁護士ドットコムでは、契約書やNDAの締結をウェブ上で完結させてしまう電子契約サービス「クラウドサイン」を提供しています。今回は、同社でサービス開始直後から開発や運営に関わっている桑原 雄氏にお話を伺ってきました。
クラウドサインは、クラウド上でお互いに契約書の内容に合意して契約を取り交わせるサービスです。これによって、従来の書面での契約締結を行なった場合に発生する、双方で捺印して郵送して…といった煩雑な作業をなくすことが出来ます。現在、スタートアップから大企業まで、業種なども問わず5万社を超えるお客さまにご利用いただいております。
以前はフロントの開発も担当していましたが、フロント専任のエンジニアが入社してからは主にサーバーサイドをみています。サービス開発をメインに、社内で使うツールの組み込みや、社外向けツールの開発もしているので、サーバーサイドの仕事は全般的に携わっています。
2015年10月のクラウドサインのリリース直後に入社してから今までずっと、サーバーサイドに関わってきました。サービスの全体を知っているので幅広く見てきています。
私の場合は“人”でした。実は、クラウドサインの開発チームでリードエンジニアをやっているメンバーが、前職の同僚なんです。僕より年齢もキャリアも上で、優れたエンジニアなんですが、最初はその彼がクラウドサインの開発を全部1人でやっていました。
そしてもう1人クラウドサインの立ち上げに関わった役員がいて、彼とも前職で一緒に仕事をしたことがありました。2人とも、とても優秀なのでこの2人と一緒に仕事ができたら楽しそうだなと思い入社を決意しました。
まずはミニマムな機能でサービスを公開したので、公開後は足りない部分を一刻も早く実装していきました。そのときはみんなで分担して仕様を詰めてという工程はなく、エンジニアが1人1機能を担当し、集中して作って必死に足りない部分を補っていきました。
そうですね。まずは、ソースコードを読んでどこで何が起こっているかを把握しないと始まりません。自分の担当する機能が実装されているところを読み込んで、開発環境で確認しながら検証する作業を進めていきました。この時は開発スピードを求められましたので、かなり大変でした。
開発したものを社内のメンバーやユーザーの皆さんに使って頂き、ポジティブなフィードバックがあった時は嬉しいです。「これで便利になった」とか「できることが増えた」などの意見を頂けたり、誰かの仕事を楽にしているのが目に見えて実感できるのは、やっていて良かったと思える瞬間です。
もともと就職するまではプログラミングの経験がありませんでした。ただ、大学は理系だったので、SIの会社をいくつか受け、内定をもらえた会社でSEとして働くつもりでした。そこで、入社後に研修を受けると、大学の時に研究した内容と似た事業をやっている部門があると知りました。
知っていることなので、何をしているのか聞きたくなるじゃないですか。そこで「これはどうなっているのですか、ああなっているのですかとか、何使っているのですか?」などと質問をしていくうちに興味があることが伝わり、研究開発のトップに話を聞きにいけるように調整していただけました。
実際に話をして面白そうと思っていたら、新人研修終了後その研究開発部門に配属されることになりました。嬉しかったですね。そして、配属された1年目の12月に上司からWebサービスを1個立ち上げるように言われました。
はい、なのでそこからWebサーバーの設定の仕方、MySQLの設定の仕方、Webサービスを動かす方法などを一から調べながら作っていきました。一応OJTの先輩がついていたので、調べる内容などを相談しながら進められました。ただ、基本的に「知らないことは自力で頑張って調べる」というスタンスでしたね。
学生の頃と比べても勉強していたと思います。朝から晩まで知らない単語をネットで辿り、調べるべきことから離れた分野まで読んでしまうことも多々ありました。それでも、若くて体力があった時にこの経験ができてよかったなと思っています。
そうですね。偶然ではありますが、就職してスグにいい出会いがありました。
これまで紙とはんこでやっていたことが、クラウド上でできるようになるのは大きな変化です。自分がプログラムを書いてつくったものが、世の中を良くしていると実感できるのはいいですね。
クラウドサインの話とは変わりますが、弊社が運営している法律相談ポータルサイト「弁護士ドットコム」はネット上で法律相談ができるサービスです。これによって、以前に比べて法律的な相談をするハードルがグッと下がっていると思うんです。弁護士ドットコムでは、回答がつくとユーザーの感謝の言葉が直接見えるので実感を得られる瞬間の一つです。
このように会社としてやっていることが、社会的に意義のあるサービスを提供できている実感があると、ものをつくる上でとても安心感があります。
クラウドサインのエンジニアは基本穏やかです。声を荒げて言い合いをするわけではなく、とはいえ遠慮して言いたいことを言わないわけでもありません。適切な議論をして最適解を探していく空気感があるので、チーム全員がとても安心して仕事ができています。
意識しているわけではなく、リードエンジニアの穏やかさが根幹にあると思います。感情ではなく技術的に正しいことを重視する人なので、建設的な議論ができるようになっています。
現在弊社は、誰のためにどんな機能をどのようにつくるかを考えるフェーズにいます。ここでは納期や予算、ビジネスサイドがどう売りたいと考えているかなど、トレードオフの関係にある要素がいくつかあります。それを「開発エンジニア・デザイナー・ビジネスサイド・ディレクター」など、みんなで議論をした上で、一番いい落としどころを探ります。
エンジニアリングだけではなく、つくる前に一歩引いてみんなと話をして、これが最適だねというコンセンサスをつくって開発をする必要があります。
エンジニアがプログラムを書いたり、インフラを整備しますが、結局それは全てサービスを提供するためにやっているはずですよね。つまり、技術のために技術を使うだけではなく、サービスを支えるために技術を使うような考え方ができる人がいると、すごくいいですね。
以前、社内向けのツールをつくった経験がありました。その場で使ってくれてフィードバックをもらえたり、議論をする機会が非常に多かったのです。サービスを改良するだけでなく、業務を変えた方がいいという話にまで発展することもありました。
このように実際に使う人と話をしながら仕様をつめるといったことをやらざるを得ない環境にあったのが大きいかもしれません。そこからプログラマーは業務まで考えるサービス業だと思うようになりました。
全くコードを書いたことがないのであれば、参考書をそのまま書き写すでもいいので、動かしてみるのがまずはいいかなと思います。
よく言われていることですが、写経をするなら一部書き換えてみて、どのように動きが変わるのかなどいろいろ試してみることをオススメしますね。単に書き写すだけだったらつまらないし、意味がないと思います。
そうですね、あとははじめから大きな目標を設定するのではなくて、小さいハードルをいっぱい超えて達成感を得ていく方が続きやすいと思います。いきなり大きなハードルだと超える前に力尽きちゃうこともあります。「思い通りに動いたぞ、やったぜ」というのが積み重なると、次のハードルを越えるモチベーションが出てきやすくなるのではと思います。
私の場合、HTMLさえほとんど知らないような状況から始まっているので、ひどいものでしたね。
もちろん、ところどころで大きなハードルが出てきます。それでも小さいハードルをいっぱいつくり、いっぱい超えていくことで大きなハードルでも超えられるようになるのではないでしょうか。