ITエンジニアのための勉強会・イベントレポート情報メディア

SUGAR株式会社でエンジニアとして働く意味と意義(2)最初からきれいな設計で、きれいなコードを書く
skill

SUGAR株式会社でエンジニアとして働く意味と意義(2)
最初からきれいな設計で、きれいなコードを書く

2019.09.06

 
  • このエントリーをはてなブックマークに追加

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

日本の音楽が好きで
高校・大学時代に日本に留学、
日本のIT企業に就職

私はサーバーサイドのエンジニアをしており、普段はScalaを使っています。最近ではElmを使ってフロントエンドの開発もしています。

私はロシア生まれ、アメリカで育ちました。学生時代に日本の音楽、特に日本のロックが好きになり、高校・大学時代に日本に留学。留学中に日本の方も同じ留学生でも「勉強」や「仕事」だけではなく、自分の趣味と興味の分野に積極的に向き合っている人々とたくさん出会って、影響を受けました。大人になっても自分の「面白い」と思っていることをしていたいと思いました。

その影響で、子供の時大好きだったパソコンとちゃんと向き合うことにしました。小学生の頃、自分でHTMLを書いて0から「ものを作る」ことに夢中になってたものの、親戚から「エンジニアは女の子の仕事じゃない」と反対され、夢をいったん諦めていましたが、留学先で受けた影響で親にも内緒で大学でコンピューターサイエンス専攻を追加することにしました。

アメリカの大学に在学中に数回日本に留学し、卒業した後はそのままアメリカの企業に行くことも検討しましたが、自分の趣味の「アジアの音楽のサブカル」に触れていたいと思い、日本のIT企業に就職することにしました。



技術的負債の問題に悩まされる

複数のプロダクトと会社で開発を経験しましたが、やはり「技術的負債」には悩まされました。世の中のプロダクトがほとんど抱えている問題です。設計を軽視し、スピード優先の開発を行うことで発生する状況です。ビジネスの状況によって「スピード優先」の開発は必要になる時期はもちろんあるとは思いますが、「スピード優先」が続くとシステム自体の整合性が失われていきます。気が付くと、テスタビリティー・メンテナンス性が低下し、結果的にシステムが破綻してしまうのです。

終末に向かうプロダクトを複数見てしまい、どうすれば開発しやすいコードベースを保つことができるのだろうとずっと考えていました。そして、どのような開発環境、どのような開発チームでその状況を作れるのだろうと考えていました。

杉谷氏の「最初から綺麗なコード・
設計をかける状態を目指せ」に共感

「技術的負債」について悩んでいた時期に、SUGARのCTO 杉谷の「技術的負債について考えた(注1)」というブログを読み、強く共感をしました。
当時でも「技術的負債」は「リスク」だと思っていたので、「最初から綺麗なコード・設計をかける状態を目指せ」、「勝手に背負うな」という言葉に納得して、話してみたいと思いました。

話してみた結果、転職することになりました。

アイドルの追っかけをする
「追っかけ休暇」が雇用条件に

以前も書かれていたように、日本の企業に就職した理由は「アジアの音楽のサブカルに触れていたい」という理由でした。日本だけではなく、韓国のアイドルやインディーズアーティストが好きで、ライブやイベント参加で国内・国外でも様々なところに行くことが多いです。面接中にその事情を話したら、SUGARは、有給とは別に「追っかけ休暇」を付与することを雇用条件に加えてくれました。他の企業ではあまり聞いたことがありませんが、この休暇を利用して、福岡でアイドルのライブや韓国でインディーズヒップホップのイベントを見に行くことができました。



エンジニアであっても、
サービスへの思い入れもあった方がいい

エンジニアとしての仕事に対するモチベーションは「技術的に優れたものを追求する」ことも大きいとは思いますが、長期的なモチベーションを保つのにビジネスモデルへの共感も大事だと思います。

自分が好きなアーティストと直接話せる機会が与えられたら自分がどのくらい喜ぶのか想像できるので、自分の作っているサービスがどのくらい人に「価値」を提供をしているのか、そしてどのような「喜び」を与えているか分かります。それによって「ユーザーに想像している喜びを届けたい」というモチベーションが生まれるので、プロダクト優先の考え方もできるようになります。

コミュニケーションを第一に

「早くていいものを作る」ことはSUGARでは一番大事にされています。まず、「いいもの」とはなんだろうという定義が必要になります。SUGARでは、「いいもの」は「議論しやすくて、修正しやすいもの」になっています。その理想を実現するためには、ドメイン駆動設計(DDD)という手法を採用しています。設計段階でエンジニアチームでも、ビジネスチームでもプロダクトについて議論しやすい共通言語を定義し、その設計ベースに実装を行います。

それによって、システム自体で確実な言葉が使われるようになりますので、チームの間のミスコミュニケーションのリスクが減ります。チーム間でもコミュニケーションをスムーズに行えることによって、理解し合って尊敬し合って業務を進めることができます。

「ビジネス駆動開発」はたまに聞くと思いますが、ビジネスとエンジニアチームのコミュニケーション不足から発生し、それは技術的負債への道です。コミュニケーションを取ることによって、「ビジネス」優先・「エンジニア」優先でもなく、「プロダクト」優先の行動を会社としてできるようになります。

また、開発をしている上でコミュニケーションを大事にしています。「コード」はパソコンのためにも、自分のために書くものではなく、今後そのコードを読む他の開発者のために書くものなので、常に一番可読性の高い・修正しやすいコードをどう書くか考えています。

技術の話をしていて毎日楽しい

SUGARのエンジニアは学習意欲がものすごく高いです。週に2回、ランチの時間を利用してエンジニア全員で勉強会を行っています。また、会社として宅配サービスで好きなランチを注文していいという形でサポートしてくれます。勉強会のテーマはみんなで話し合って選びますが、メインは気になっている言語の書籍の輪読会をやっています。以前のテーマは最新Scalaの関数型トレンドやDotty、ElmやRustです。この勉強会によって実務でもElmを使うことにもなりました!Rustの次はHaskellの勉強会を企画しています。



勉強会は学ぶだけではなく、エンジニアチームのコミュニケーションの大事なチャンスになっています。議論やディスカッションによって、他のエンジニアがどんな理想を持って開発を行なっているか分かりますので、チームとしてどんなシステムを理想としているかがわかるようになります。

SUGARでは、毎日楽しく技術の話をしていますので、技術の話をするときにテンション上がっちゃう、設計の話をすると楽しくなっちゃうような人に働きやすい環境だと思います!

Dasha Tarasova氏プロフィール
現在、SUGAR株式会社でScalaでのサーバーサイド開発を担当。最近はElmで管理者用ツールを開発している。Scala関西での登壇歴あり。ロシア語、英語、日本語:ネイティブレベル。韓国語・ダンスを勉強中。

(注1)http://sugitani.hatenablog.com/entry/2015/05/23/205714

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

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

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

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

SUGAR株式会社でエンジニアとして働く意味と意義(2)最初からきれいな設計で、きれいなコードを書く

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

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW