ITエンジニアに必要な今を知れる情報メディア
SUGAR株式会社でエンジニアとして働く意味と意義(1)ビジネスチームとエンジニアチームが足並みをそろえ、プロダクトやビジネスを改善
skill

SUGAR株式会社でエンジニアとして働く意味と意義(1)
ビジネスチームとエンジニアチームが足並みをそろえ、プロダクトやビジネスを改善

憧れの芸能人と1対1で通話できる夢のようなライブアプリをご存じだろうか。開発しているのは「SUGAR株式会社(以下、SUGAR)」。多くのスタートアップ企業の中でも、その技術力を高く評価されている企業だ。今回、同社のエンジニアにインタビューし、その高い技術力の背景にある技術に対する考え方や開発環境についてお尋ねした。第1回は、嶽雅也氏。

芸能人と1対1で通話できる
夢のようなアプリ、
ユーザーの気持ちを考えたサービスに

私は、ライブアプリ「SUGAR」の開発を行なっています。SUGARは1対1対Nの通話ができるアプリで、芸能人の方がライブ配信をして、さらにライブ配信に参加した人の中から選ばれた1人が芸能人と1対1で通話をすることができるという夢のようなアプリです。

SUGARアプリは無料で全機能を利用できますが、つい先日実装した課金機能によって、課金すると芸能人と通話できる確率を上昇させることができるようになりました。今回、憧れの芸能人の方と話す体験をより多くの方に届けるために、ユーザーさんが操作しやすいようにデザインも刷新致しました。
少しでも多くの方が SUGARアプリを使って楽しんでくださると嬉しいです。
ただ、個人的にはどんどんスピード優先で無計画に機能追加を続けることには反対です。
短期的には良いかもしれませんが、アプリを使ってくださるユーザーさん、提供するSUGARとしても、あまり幸せになる結果にはならないからです。
その理由はこの後にお話していきます。



以前の職場ではスピード優先の
"砂のお城"のようなシステムの開発

以前の職場ではとにかくビジネスのスピードが早く、毎日のように新機能を追加していかなければいけない環境でした。それはビジネスにとっては必要だし大切なことなんですが、どんどん技術的負債が溜まり、それらを解消する時間を取ることもできません。

お城を作るのに基礎を作らず建てているようなもので、まるで土台がしっかりしていない砂のお城のようになってしまいます。ある日全てが崩れてしまうのではないかという不安の中で仕事をしていました。

どなたかが昔おっしゃっていたのですが、大きくなっていったプログラムって、例えば組み上げられたジェンガのようなものと言えます。多少であれば、途中のピースを抜いたり、足したりすることもできます。でも、どうしてもこのピースを入れるには、もう一度土台から組み直さなければならないということもよくあります。それでもスピード優先になると、無理をしてピースをねじ込んでしまうことになります。それだといつか崩れてしまいますよね。

しっかりとした土台を作りつつ、
スピードも優先する杉谷氏を思い出す

その時、思い出したのが、以前一緒に働いたことのある杉谷(現SUGAR CTO)の仕事ぶりでした。杉谷はまず、しっかりとした土台を作った上で開発を進めるような開発体制を作っておりました。堅固な土台ができているので、長期的に見てもスピード感を持って機能追加などができるようになる。その考え方をエンジニアチームだけでなく、ビジネスチームにも理解をしてもらうということに挑戦していました。技術面だけでなく、エンジニアリングの文化・企業の文化までも作っている、という面でも尊敬しています。

実際に以前の職場で働く中で、杉谷のように仕事をしたいと思っても、私は技術スキルもソフトスキルも足りない。また、プライベートでも今後どうするかの分岐点にも立っていた中で、杉谷とお話する機会を頂きました。

米国にいる彼女と会うための
「渡米休暇」を雇用条件に

その頃、私の彼女が米国でMBA留学に行くことが決まっていました。私も短い期間でも、米国に行ってエンジニアとして働くことや、リモートで日本の仕事をするなども考えておりました。ただ、どちらにしても英語力が圧倒的に不足しており、現地で生活するのも大変というのは予想されました。
その中で以前の職場にいた際に、メッセージを頂いていた杉谷に相談すると、当時すでにSUGARに参加していた杉谷は「SUGARにくればいい」と誘ってくれたのです。しかも、SUGAR CEOの松井は、有給とは別に渡米休暇を与えるという条件まで提示してくれました。その場でSUGARに入社することを決めました。

私にとっては、SUGARに転職することが最高の選択肢になりました。



エンジニアチームとビジネスチームの
共通言語を定義、コード実装していく
「ドメイン駆動設計」(DDD)

今、杉谷の下で改めて学んでいるのは「ドメイン駆動設計」(DDD)という考え方です。正確な定義ではありませんが、ドメインというのは「業務」といった意味で、エンジニアチームとビジネスチームの共通言語を定義して、それをコード実装していくという考え方です。例えば、ビジネスチームが「漫画」「マンガ」「コミック」という言葉を使っている時、それぞれ具体的には何を指すものなのか、違いは何なのかを厳密に定義していきます。その定義を行ってから、それに従ってコード実装していくのです。業務プロセスがそのままシステムに反映されるので、ビジネスチームもシステムがどのように動作しているのか理解できるようになり、ビジネスチームとエンジニアチームが共通言語を持った上で、足並みをそろえて、プロダクトやビジネスを改善していけるようになるイメージです。

また、DDDもそうですが、設計スキルというのは、エンジニアにとっていちばん大切な力だと思っています。特定分野のみに専門性があること自体に越したことはないですが、 エンジニアの地力が設計スキルと言えると思います。言語や技術は時代によって移り変わっていきますが、設計手法は根本的な部分は大きくは変わりません。

エンジニアとして
技術を追求できる環境が整っているのが魅力

DDDの手法を採用したことで、エンジニアチームだけでなく、ビジネスチームとの相互理解、考え方の共有もできているので、仕様検討や、議論を行う際にも齟齬が少なく進めることができております。



エンジニアの地力となる設計力は、私もまだまだ発展途上で、学びの日々です。
ただ、そのエンジニアとしての土台を身につければ、どの企業にいっても、どの国にいっても、エンジニアとして高いレベルの仕事ができると思っています。

エンジニアというのは、各々に専門性を持ち、経験値が上がっていくことで任せられる仕事の幅も広がっていきます。ただ、自分の専門性が高くなった時に、まったく未知のジャンルに挑戦したいと思っても、自分も腰が引けるし、チームのスキルの配分的にも周りもやらせてくれないことが多くなります。
ですが、SUGARではどんどんチャレンジができる環境になっております。
エンジニアとしての地力がついていれば、あとはそこにiOS/Androidのようなプラットフォームの専門性を載せていけばと戦力になるのが早いという考え方です。
もちろん今のチームでも、それぞれのエンジニアごとにサーバサイド/iOS/Androidなどぼんやりとした得意分野のようなものはあります。しかし、SUGARが理想とするのは、全員がサーバサイド/クライアントサイド問わず、両方のことをできるようなマルチスキルの状態です。

新しいこと(Scala/iOS/Android/Elmなど)に挑戦する時は、DDDで簡易掲示板を作り、チームメンバーがPRでレビューをしながら知識をつけていく研修も随時行っています。
エンジニアとしての地力をしっかりとつけたい方、あるいは新しいことに挑戦してみたい方にはものすごくやりがいのある企業だと思います。

嶽雅也氏プロフィール
証券業務/通信系会社のR&D/広告配信/漫画配信/料理動画配信などの開発を経て、現在はSUGAR株式会社に所属。過去にはJJUG、Scala関西、iOSDCなどでも登壇経験あり。趣味はテニスで、ラケットを背負って出社し、週末には大会も出たりしている。最近はElmとRustを勉強中。

-----------------------------------------------------------------------------

(※ SUGAR「スタートアップ企業特集」記事はこちら→『アーティスト様とファンの方々が一体となるライブ配信アプリ「SUGAR」、高速かつ高品質の開発で視聴者の夢を実現する』)

(※ SUGAR・杉谷保幸CTOのインタビュー『スタートアップがまともなわけ無いから入るな』はこちら→【前編】【後編】)

-----------------------------------------------------------------------------

この記事はどうでしたか?

おすすめの記事

エンジニア向け求人特集

BACK TO TOP ∧

FOLLOW