Gaiax Engineers' Blog

Gaiaxのエンジニアブログです。 社内のエンジニア様子、イベントレポート等を発信していきます。

アディッシュの技術開発部について

はじめましてこんにちは。アディッシュ株式会社技術開発部雪風チーム所属のinoue37です。37はチェルミナートルの37です。こんにちは。 このエントリは、Gaiaxアドベントカレンダーの16日目です。Gaiaxじゃなくてアディッシュ?と疑問に思われた方は、2日目の@ufo_ochaさんのエントリを御覧頂ければと思います。

昨日の記事で菊池まさんから本好きとご紹介いただきました。月に120回くらい本屋に通う程度には本好きです。そこはそれとして、今回はアディッシュの開発部の体制がどうなっているのかをお伝えできればと思います。

技術開発部内のチームについて

私が所属するチームは 雪風チームと言います。某お船のゲームは関係なくはないですが、あまりなく、元ネタは 神林長平SF小説戦闘妖精・雪風 です。異星の空を飛び、何があっても必ず情報を持ち帰ることを厳命された偵察機部隊のお話です。まァこの辺から意味付けをご自由にご想像頂ければと。

[amazon]戦闘妖精・雪風(改) (ハヤカワ文庫JA)

雪風チームでは現在3つの事業に対して運用開発を行い、時には既存ツールに機能追加を行い、障害が発生した場合は槍が降ろうが復旧のために身を粉にし、平和な折はミス無く運用対応を行い、またある時は新しくツールを作って事業に貢献することもあります。世間一般で言うところのDevOpsですね。

なお、アディッシュの技術開発部にはもう1つチームがあります。 漸進チーム 通称ZENチームです。 ZENはadishの新規事業立ち上げチーム。現在iOSアプリを鋭意開発中。新規事業の企画立案からプロジェクトのマネジメント、開発までを一気通貫で行うチームになります。今後は運用も。 エンジニアメンバは雪風チームと共用と言いますか、誰もがどちらの事業に対してアサインし得る状態で、何かあった際はそれぞれサポート出来るよう体制を敷いています。

事業雪風チーム

先述の通り私達の開発チームでは3つの事業に携わっています。1事業に1つの開発チームではないのは、これまでの事業の成長の仕方とチームの在り方に依るもので、詳しく語ろうと思うと歴史のお話になってくるので割愛しますが、ざっくり言うと関連性があるためです。

3つの事業とは、SNSを健全に保つ投稿モニタリング事業、子供のネット利用を陰ながら見守るスクールガーディアン事業、様々なアプリのお問い合わせに対応するソーシャルアプリサポート。この3つです。 各事業それぞれで優秀なスタッフが社内用アプリケーションを活用して事業の運用に携わっています。我々雪風チームは事業の運用がより効率化されるようにその社内用アプリケーションの開発と運用を行うことを基本としています。

特に投稿モニタリング事業は24時間365日対応がデフォルトです。万が一システムに障害が発生した場合は即座に復旧させなければいけないのはどの事業でも同じですが、メンテナンスなども「4時間メンテ!?無理無理!せめて1時間に出来ない?」といった運用上の制約があります。そうした制約は、開発側の運用としても動きにくくなるデメリットでしかないため、「じゃあ無停止メンテが出来るようにしよう」といった開発側の運用の効率化も行っています。

ただまぁ開発リソースは有限なもので、どの事業に対して重点を置いて開発を行うべきかは都度都度調整を行っています。時に緊急性が高い事案が発生した場合はもうたいへん。

雪風チームとZENチームが行っていること

前節の通り雪風チームは複数事業を受け持っていることから、特定のエンジニアが特定事業に専任とならないようにしています。 それを実現するために行っている施策をご紹介します。 割とありふれていて普遍的なところだとは思いますが。

アサカイ

毎日朝イチ開催。各チームそれぞれで行っています。 雪風では5分でその日行う内容について共有し、チェックインします。

帰りの会

毎日夕方に開催。こちらも各チームそれぞれで行い、その日に行った内容や最新案件状況を共有し、その日詰まったポイントや困った点を共有します。 困ったポイントは翌日に相談しようと思っても家に帰ったらすっぽり忘れてしまったり、その日の夜にゴリ押しで解決しちゃったりするので、夕方に共有することで解決策をチーム内で引き出し、次の日のタスクとしたり、ボールを他のメンバに渡したり、その日のうちに解決するなどして、気持よく帰れるようにしています。

定例

毎週火曜日開催。雪風とZENのエンジニアメンバで、それぞれの事業がどういう状況となっているかを共有する他、それぞれの事業で課題と感じていることや少し悩んでいる点などがあれば各自で取り上げ、ディスカッションをします。ディスカッション内容はコードの書き方から使用するツール、オフィス環境まで様々出てきます。 とまぁ、この定例では単純な共有だけでなく意見を出し合うことも意識するようにしています。

NO MTG Day

略してNMD(本土ミサイル防衛)。……と呼んでいるのは私だけですが。 毎週月曜日はNo MTG Dayとして、基本的にアサカイと帰りの会以外のMTGを入れないことにしています。 複数事業を受け持っているがゆえにMTGが非常に多く、作業時間の確保が困難になるため設けました。個別の都度相談などは受けていますし、事業に対してはそれほど影響はない模様。

コードお掃除デー

投稿モニタリング事業などは7年にわたり運用を行っています(その間に2度ほどリニューアルがありましたが)。長年開発運用を行っていると「このメソッドもう使わないけれど、今は時間ないからひとまずそのままで」のような形で、"ゴミ"が溜まっていくと思います。 「このカラムもう使わないけれど今ちょっと対応できないし、あっても困らないからまァいいや」とか。「アラートメールがちょっと頻繁に飛んでくるけど、このMLエンジニアメンバしか入っていないし、しばらくスルーしてもらうように言っておけばいいや」となって大量のメールが溢れ本来気付かなければいけないメールに気付けない、いわゆる"オオカミ少年"のもとになってしまったり。……あると思います。

少し時間さえあれば修正して健全に出来るけれど、優先度は高くないし、今じゃなくても良いから、という理由で後回しにして、しばらく、いや長らく放置されてしまう……。割と良くあることだと思います。 じゃあそれら放置している箇所を解決する時間を明確に設けよう! というところで月に一回実施しているのがコードお掃除デーです。 ちょっととっ散らかっている部分を綺麗にしたり、痒いけれど掻けていなかった点をここぞとばかりに掻く日です。

成果報告会

毎期末開催。その期に自分が何をしてきたのか、何を得ることが出来たのかをチームにプレゼン形式で発表。一番凄いと思ったメンバに投票して獲得票数1位の場合は賞品が出ます。

機能追加を行ったりする開発エンジニアと、ミスなく対応し細かい要望に応える運用エンジニアとで大きく対応内容は異なるけれど、事業に対しての貢献具合という部分ではどちらも大事。だけれども営業や運用メンバから見るとそれらは見えにくいという問題点がありました。事業リーダがちゃんと評価していれば良いというのもありますが、やはり人間ドヤりたいじゃないですか。自慢したいじゃないですか。でも、なかなかドヤる機会がないし、そもそもエンジニアはそうしたアピールを苦手とする部分が少なからずある。じゃあ苦手を克服する練習も兼ねてチーム内で発表をして、かつ発表時のスライドを営業・運用サイドに共有してアピールしよう、というのが成果報告会です。 ゆくゆくはアディッシュ全体に向けてドヤる機会を作りに行く、というところですね。

今後のアディッシュ技術開発部

どんな事業でも同じではありますが、各事業に技術で貢献することが至上命題である雪風チームは、常日頃からの各アプリの機能UPDATEだけに限らず、各アプリのクラウド化などインフラ面からの開発運用の効率化、機械学習による運用業務の効率化といったところにも取り組んでいます。

またアディッシュでは 「つながりを常によろこびに」 をミッションとして掲げており、ZENチームの新規開発で「よろこび」となる新しいモノを産み出しに行くのみならず、今後も出てくるであろう新しいコミュニケーション課題に対してアディッシュがどう解決していくべきかを常に検討をしています。それがWebにかぎらず、IoTの分野であっても、アディッシュとして出来ることがあるのであれば、技術開発部としても踏み込んでいくこともあるでしょう。

そんなアディッシュの技術開発部に興味がある方は、是非inoue37までご連絡下さい!

明日はcakePHPの話が出るのでしょうか。実は私と同年代 @diskogs さんの出番です!!