Diverse developer blog

株式会社Diverse(ダイバース) 開発者ブログです。

redash×Slackでよろこびの声を自動通知!見せびらかし会レポート #5

こんにちは!Diverse広報担当です。

Diverseでは週に1回、エンジニア同士で「見せびらかし会」を開催しています。

f:id:diverse-tech:20210928172234p:plain
「見せびらかし会」とは、各エンジニアが1週間の中で頑張った開発Tipsを、仲間に向けて発表する場。
各自の知見やノウハウの共有を目的に行っています。”見せびらかす”という仰々しい名前ですが、ちょっとした工夫や改善も大歓迎!というラフな発表会です。

▼過去の見せびらかし会ブログ
見せびらかし会 カテゴリーの記事一覧 - Diverse developer blog

今回はエンジニアの青山さん(@yoichi_aoyama)とkumanomi(@m_kumanomi)さんの”見せびらかし”です。
ぜひお読みください!


▼目次

  • redashを使って、よろこびの声をSlackに通知する仕組み
    • 青山さんの今週の見せびらかしについて
    • どんな仕組みを作ったのか?
    • ―(一同拍手)ここから質問タイムです!
  • ユーザーのプロフィール単位でマッチ率を分析できる仕組み
    • kumanomiさんの今週の見せびらかしについて
  • 最後に

redashを使って、よろこびの声をSlackに通知する仕組み

青山さんの今週の見せびらかしについて

青山:今回の私の見せびらかしは、youbrideを成婚して退会してくれたユーザーさんのコメントを自動通知する仕組みです。
redashでクエリを実行して、その結果をSlackに通知する形にしました。
f:id:diverse-tech:20210928172648p:plain
直近の成婚退会者を抽出するクエリを用意し、そのクエリを実行してSlackに投げる部分はPythonで作っています。
redashのプラグインとして登録されていたPythonを使って実装しました。

続きを読む

SingleChildScrollViewでアニメーション実装!見せびらかし会レポート #4

こんにちは!Diverse広報担当です。

Diverseでは週に1回、エンジニア同士で「見せびらかし会」を開催しています。

f:id:diverse-tech:20210917162138p:plain
「見せびらかし会」とは、各エンジニアが1週間の中で頑張った開発Tipsを、仲間に向けて発表する場。
各自の知見やノウハウの共有を目的に行っています。”見せびらかす”という仰々しい名前ですが、ちょっとした工夫や改善も大歓迎!というラフな発表会です。

▼過去の見せびらかし会ブログ
見せびらかし会 カテゴリーの記事一覧 - Diverse developer blog

第4回目は、エンジニアoyaさんの”見せびらかし”と、oyaさんが感銘を受けたabuiさんの”見せびらかし”を紹介します。
ぜひお読みください!


▼目次

  • LIVE配信画面でテキストをアニメーションで出す方法
    • oyaさんの今週の見せびらかしについて
    • どうやってアニメーションを作ったのか?
    • 実装までの試行錯誤…ある日神が降りてきた!
  • UIImageViewのアニメーション実装
    • oyaさんが感銘を受けたabuiさんの見せびらかしを紹介!
    • どんな仕組みで作ったのか?
  • 最後に

LIVE配信画面でテキストをアニメーションで出す方法

oyaさんの今週の見せびらかしについて

oya:今回は、YYCのワイワイライブで使える「ワイワイBOX話題アニメーション」について紹介します。
※画面最下部にテキストを出せるアニメーションです。
f:id:diverse-tech:20210921134339g:plain

LIVE配信画面の場合、そもそもいろんな場所にオブジェクトが出されていますよね。
テキストを入れようにも2行以上にするのがそもそも難しく、チームメンバーからも「1行で入れるべき理由」を聞いていました。そういう制限の中で、頑張ってアニメーションを入れました!

続きを読む

スクラム開発への思い切ったスイッチが、良質なアウトプットにつながった

f:id:diverse-tech:20210915161710j:plain アジャイル開発のひとつである「スクラム開発」は、少人数の開発チームにおけるコミュニケーションを軸に開発を進めていく手法ですが、この度YYCチームでは、スクラム開発への完全移行を行いました。「チームメンバーが受け入れてくれたから思い切ったシフトができた」と話すのは、YYCのプロジェクトマネージャー兼エンジニアリングマネージャである藤田雄大(ふじた・ゆうた)さんです。

今回は、YYCのスクラム開発への移行の経緯と、移行したメリット、さらには見えてきた課題や今後の展望などを聞きました!

ウォーターフォール型の限界を感じつつ、なかなか踏み切れなかった

――これまではスクラム開発を導入する必要がなく、ウォーターフォール型の開発を行っていたのですか?

藤田:はい、正確にはウォーターフォール(マイクロマネジメント)に近い形で進めてきました。開発マネージャーが2人体制から1人体制になる組織的な変更があり、このままのでは対応できないと思いました。また、これまでの体制ではエンジニアやデザイナーがマネージャーからの指示を待って行動する。というマインドになってしまいDiverseのカルチャーデッキで求めている姿とのズレが生じていました。「ここで大きな転換が必要だな」と感じていました。そのタイミングで「スクラム開発を試すのはどうだろうか?」とPOからコメントを受けたのです。 実は、以前スクラム開発の導入に失敗した経験があり、正直なところ今回のスクラム開発導入にも不安はありました。しかし再度1から学び直したことで、本質を理解できていなかったことに気づくことができました。学びを通して改めて「YYCチームでスクラム開発を進めることができる」と確信したのです。

――なるほど…そしてスクラム開発へと踏み切ったのですね。

藤田:とはいえ、急にやります!と言ってできるものでもありません。まずはチームメンバーにスクラム開発についての説明からスタートしました。何回か勉強会を開き、スクラム開発についての知識を持ってもらう場を増やしました。「まずは教科書通り、スクラム開発のいろはに沿ってやりましょう。そこからYYCらしさを出しましょう」とメンバーに伝え、今年の4月からスタートすることになったんです。

f:id:diverse-tech:20210915162005j:plain

「チームで取り組む」という意識がアウトプットの質を高める結果に

――丁寧に、慎重に導入したのですね。スクラム開発において、大きく変わった点はどこですか?

藤田:大きく分けると2つ挙げられると思います。ひとつは、ミーティングの最適化です。これまでは、定例の朝会のほか、急に大きなミーティングが入ったりと突発的な対応が多かったのですが、これを改めました。木曜日を出社推奨日に決め、みんなで集まって疑問点や困りごとの解決を図るようにしたのです。大きなミーティングが入らない分、集中して作業に取り組めるようになりました。スピード感アップの一因になっています。

――もう一点は何ですか?

藤田:1ヶ月に1回行っていたタスクの振り返りを1週間に1度に変更。それに伴って1週間のスケジュールも細かく立てるようにしました。期間を短く設定したことで、「自分が今日何をすべきか」が見える化され、指示を待たずとも自ら進んで作業を行えるようになったのです。まさに自己組織化の第一歩です。

――クラウドでスケジュールを共有することによって、「誰が何をしているか」というのも見えやすくなったのですね。

藤田:そうですね。タスクの到達度を相対見積もりで表すようにしたことで、「○○さんは今日は4進んだんだな」「あれ、□□さんは2しか進んでないから何か困っているのかな?」とメンバーの進捗度にも意識が向くようになりました。これは嬉しい発見でしたね。「個人として、エンジニアとして施策を行う」ということから、「チームとして」という主語が新たに増えたのですから。チームでプロダクトを向上させるために、何ができるか?チームの一員としてパフォーマンスを上げよう、というのは結果的にアウトプットの質も向上させているように思います。

f:id:diverse-tech:20210915162454j:plain

Fail Fastを飛躍的に進める、大きなきっかけになった

――改めて、スクラム開発を導入して得られたメリットは大きいものがありますね。

藤田:そうですね、思い切って導入してよかったと思います(笑) これまではスケジュールを目算で決めていたこともあって、納期も3~4週間押してしまうことも多かったのですが、そういった不確実性は格段に減りました。やはりこれは、自分自身のキャパシティに応じて、1週間のスケジュールを細かく組んでいることが大きいと思います。仮にひとりがスケジュール通りの進行が難しい場合、他の誰かがヘルプに入るといった、チーム全体の意識も確実に変わってきています。

この段階まで到達するのに、さまざまな失敗パターンを積み重ねてきました。まさにFail Fast, Go Higherの精神を持ってメンバーみんなで作り上げてきたのです。そういった意味でも、スクラム開発を通してメンバー同士のつながりはより強いものになったのではないでしょうか。

――順調に進んでいるスクラム開発ですが、今後の課題や展望を教えてください。

藤田:直近の課題は「ベロシティ」の安定化ですね。まだまだブレが大きいのでスプリントを繰り返して改善していきたいですね。 また、スクラム開発の大前提であるコミュニケーションはもっと大事にしていきたいと思っています。slack文化ということもあり、テキストによるコミュニケーションがベースでしたが、「これ、ちょっとミーティングセットしたほうが早くない?」というのは、10分前後のミーティングを設けてすぐその場で解決するようにしています。そういう意味でもミーティングの最適化はどんどん進めていきたいですね。その先に、Diverseの目指しているMission/Visionを軸として、サービスの根幹にある価値をもっと掘り下げていきたいと思っています。やることはいっぱいありますね(笑)

――コミュニケーションを活発にするために、雑談を取り入れたとも聞いています。

藤田:はい(笑) 4月のスクラム開発から、朝のあいさつとともに今日のひとことを入れてもらうようにしました。「暑い」とか、「お昼ごはんはラーメン」でもなんでも良いのですが(笑)、その何気ないひとことから会話が始まり、「そういえば○○のことなんですけど…」といった仕事上のコミュニケーションにもアクセスしやすくなったように感じています。 スクラム開発はまだまだ道半ばですが、すでにスクラム開発を導入しているyoubrideチームと横の連携も強めながら、YYCらしさを構築できればいいなと考えています。

――藤田さん、お話ありがとうございました!

f:id:diverse-tech:20210915162858j:plain

さて、Diverseでは現在下記の職種を積極的に採用しております!

ご興味のある方はぜひお気軽にエントリーください!

herp.careers

herp.careers

herp.careers

マッチングサービスの「いいね!」パターンの管理とは?見せびらかし会レポート #3

こんにちは!Diverse広報担当です。

Diverseでは週に1回、エンジニア同士で「見せびらかし会」を開催しています。

f:id:diverse-tech:20210914172916p:plain
「見せびらかし会」とは、各エンジニアが1週間の中で頑張った開発Tipsを、仲間に向けて発表する場。
各自の知見やノウハウの共有を目的に行っています。”見せびらかす”という仰々しい名前ですが、ちょっとした工夫や改善も大歓迎!というラフな発表会です。

▼過去の見せびらかし会ブログ
見せびらかし会 カテゴリーの記事一覧 - Diverse developer blog

第3回目は、第1回目でも登場したエンジニア菊池さん(@kikuchy)の”見せびらかし”を紹介します。
ぜひお読みください!


▼目次

  • 「いいね!」ダイアログのパターンをEnumで管理したい
    • 菊池さんの今週の見せびらかしについて
    • どんな仕組みを作ったのか?
      • ―(一同拍手)ここから質問タイムです!
  • 最後に

「いいね!」ダイアログのパターンをEnumで管理したい

菊池さんの今週の見せびらかしについて

菊池:私の見せびらかしは、youbrideで新しく実装する「メッセージ付きいいね!」Dialogの管理方法を工夫したこと。
パターンが多いのですが、Dialogは1つなんです。

全く違うDialogとしてパターンの数だけクラスを作ることも可能ですが、そうすると再利用できるパーツをどうするかという問題が出てきます。

結局再利用可能なパーツはほぼ全体。パターンによって変わる部分は、タイトル・送信ボタンの色・テキストです。
その他、フットノートが異なってきます。

f:id:diverse-tech:20210914173236p:plain
また内容によっては、ファースト質問(「いいね!」を押す前に質問を設定できる機能)があったり、「プレミアムいいね!」化することができるという違いがあったりします。

続きを読む

マッチングサービスのユーザー属性を分析!見せびらかし会レポート #2

こんにちは!Diverse広報担当です。

突然ですが、Diverseでは週に1回、エンジニア同士で「見せびらかし会」を開催しています。

f:id:diverse-tech:20210907123713p:plain

「見せびらかし会」とは、各エンジニアが1週間の中で頑張った開発Tipsを、仲間に向けて発表する場。
各自の知見やノウハウの共有を目的に行っています。”見せびらかす”という仰々しい名前ですが、ちょっとした工夫や改善も大歓迎!というラフな発表会です。

※第1回目のブログはこちら

developer.diverse-inc.com


第2回目は、エンジニア村本さん(@1amageek)の”見せびらかし”を紹介します。ぜひお読みください!

▼目次

  • ユーザー属性を分析するためのツール作り
    • 村本さんの今週の見せびらかしについて
    • どんなツールを作ったのか?
    • ―(一同拍手)ここから質問タイムです!
  • 最後に

ユーザー属性を分析するためのツール作り

村本さんの今週の見せびらかしについて

村本:私の見せびらかしは、HOPのユーザーの属性を分析するために作ったツールです。Swift UIを使って作成しました。
カラフルなグラフが表示されていますが、これはヒストグラムを出していて、丸や四角など形の違いで男性・女性を示しています。また、色塗りの違いでユーザーごとに写真があるかないかを表しています。

※セキュリティ上の理由により、実際の画面を加工しています。

f:id:diverse-tech:20210907123732p:plain

続きを読む

Diverseエンジニアの裏側に迫る!見せびらかし会レポート #1

こんにちは!Diverse広報担当です。

突然ですが、Diverseでは週に1回、エンジニア同士で「見せびらかし会」を開催しています。

f:id:diverse-tech:20210824183340p:plain

「見せびらかし会」とは、各エンジニアが1週間の中で頑張った開発Tipsを、仲間に向けて発表する場。
各自の知見やノウハウの共有を目的にトライアルとして始めてみました。”見せびらかす”という仰々しい名前ですが、ちょっとした工夫や改善も大歓迎!というラフな発表会です。

せっかくなので、見せびらかし会の様子を色々な方に知ってもらいたい!と思い、ブログで発信することにしました。

記念すべき第1回目は、菊池さん(@kikuchy)と藤田さん(@SAMUKEI)の見せびらかし会に密着しました。
ぜひお読みください!

▼目次

  • イベントの記録をシンプルにしたい
    • 菊池さんの今週の見せびらかしについて
    • どんな仕組みを作ったのか?
  • スクラムで各自の進捗を見える化したい
    • 藤田さんの今週の見せびらかしについて
    • どんな仕組みを作ったのか?
  • 最後に

イベントの記録をシンプルにしたい

菊池さんの今週の見せびらかしについて

菊池:私は、youbrideでクライアントのアプリの開発をしています。先日、そこで解決すべき案件が発生しました。「イベントを記録する」という点についてです。
イベントをただ記録するだけだったら、FirebaseAnalyticsやAdjustを適当に呼び出しても問題はありません。

しかし、このイベントはFirebaseAnalyticsとAdjustで記録して、こっちのイベントはFirebaseAnalyticsだけで記録するなど統一されていないと、このイベント記録はどこで誰がやっているのかわからなくなってしまうという問題があります。今回、そこの部分を解決するための仕組みを作りました。

続きを読む

自社システムにマッチしたツールを選び活用することが、ユーザーのサービス継続のカギになる~新ツールMackerelを導入して~

AWS移管に伴い、Diverseではサーバー監視ツールの導入が必要となりました。検討を重ね、新たに導入したのが、サーバー監視ツール「Mackerel」(マカレル)です。今回は、Mackerelを導入した経緯と導入によって生まれたメリット、さらにチームとして見えてきた今後、挑戦したいことについて、サーバサイドエンジニアの横山裕(よこやま ゆう)さんに話を聞きました!

―そもそものツール導入の経緯を教えてください。

横山:当社が提供するサービスをAWSに移管したため、既存のサーバー監視ツールは使えなくなってしまいました。そこで新たに、AWSにマッチした新ツールを導入する必要があったのです。(AWS移管については下記記事参照)

理想とする開発体制をつくるために、僕らが取り組んだこと~AWS移管を完了して~ | Diverse Dev.Blog

実は以前、別のサービスでAWSが提供しているクラウド型のサーバー監視システム「CloudWatch」を使用していたのですが、うまく扱うことが出来ませんでした。そこで以前の状況も踏まえて、まったく新しい監視ツールを使ってみようと話し合いが持たれたのです。

ツール選定の際は「操作性の良いツールであること」に主眼を置きました。チームのみんながストレスなく使えることが最重要だったからです。

その1案として、僕が個人的に無料で使っていた「Mackerel」を提案しました。はてなさんがつくった監視システムとあって、チームのエンジニアたちもその存在は知っていました。話し合いの結果、「良さそうだし、まずは使ってみようか」ということで、導入が決定。まさに弊社のValue、「Fail Fast!」という感覚でした。メリットは何と言っても、その操作性の良さ。導入作業がとにかく簡単で、mackerel-agentをインストールするだけで使い始められるという使い勝手の良さも決め手になりましたね。

24時間いつでも同じサービスを提供する。そのミッションにマッチしたツール

――Mackerelの導入で得られたメリットはどんなところにあると思いますか?

横山:どのアプリにも共通して言えることだと思いますが、僕たちが提供しているサービスは「ユーザーが安心してアプリを不具合なく、ストレスなく使えること」が前提です。その点、「サービスの品質を保つ」という意味でMackerelは、優れた機能を持っていると思いますね。

サーバー監視におけるルールをこちら側で柔軟に決められる点や、プラグインで自分たち独自の監視体制が設定できるのも大きな特長です。設定の閾値を超えるとアラートが発報されるので、それを僕たちが確認する仕様になっています。

マッチングアプリ、という特性上「検索を速くする」のはいつでも課題のひとつ。そのため、レスポンスタイムを計測するといった、データ収集も同時に行います。品質改善につなげる手がかりとしても活用しています。

他方、既存の監視ツールでは、グラフを生成するツールと、アラートを追加するツールと2つのサーバーが必要でした。しかし、Mackerel導入後は1つのツールでこれらすべてが把握可能。1つ画面を見れば全体が見通せるので、ミスの軽減にもつながったと思います。

そもそも既存の監視サーバーでは、「監視サーバーが動いているかを確認する」という作業が発生していましたが、Mackerelに関しては、「ツールが正しく動いているか」という部分ははてな側が負担してくれています。「監視サーバーの動作確認」にかかる人的コストをはてな側が担ってくれているので、こちらは「ユーザーが正しくサービスを使えているか」という確認作業に集中できるというメリットもあります。

f:id:diverse-tech:20210806110307j:plain

勉強会を開催して、チームが今、何をやっているか?を見える化

――導入にあたって、社内勉強会を実施したと聞いています。

横山:はい。すでにyoubrideでは、Mackerelを導入していたのですが、サーバサイドエンジニアから、活用事例が少なくどんなものかわかりにくい、という声が寄せられていました。

そこで、サーバサイドエンジニアに向けて監視の必要性や、活用を意識した勉強会をしようとしたところ、Mackerel側で知見共有のための勉強会企画があることを知り、CREチームの方にリクエストさせていただきました。

当日は、インフラエンジニアからサーバーサイドエンジニアまで幅広く参加。Mackerelで何ができるのか?を簡単に教えていただきました。チームを越えて横断的にみんなで知識共有をしたことで、僕たちが今何に取り組んでいるか、伝える機会にもなったと思います。

Mackerel CREチームさんの記事はこちら

mackerel.io

現在リモートワーク下ではありますが、月に1回このような勉強会を開催しようという試みも始まっています。チームで開催することによって、他のチームの活動を知ったり、知ってもらったり。「今、何をしているか」の見える化を積極的にしていきたいと思っています。

ツールを正しく活用し、ユーザーのサービス継続率につなげていく

――最後に、今後挑戦していきたいこと、展望を教えてください。

横山:とにかく、僕たちの一番の目標は「ユーザーの利便性向上のため、サーバーの安定供給につとめること」です。さらに言ってしまえば、監視サーバーが使われ、アラートが出る前に、予防措置を講じられるような体制、さらにはシステムを構築していきたいと思っています。

僕たちはSREというチームなのですが、チームの目標は「サイトの信頼性を確保すること」これに尽きます。サービスのダウンが無く、質を落とさず使用できるということは、ひいてはユーザーのサービス継続率にもつながります。

楽しく、また快適にサービスを継続していただけるよう、今後もチーム一丸となってクオリティの向上を目指していきます!

――横山さん、ありがとうございました。

DiverseではMackerelや他のツールを使うことのできる「SREとして活躍できる仲間」を募集しています!

f:id:diverse-tech:20210806111140j:plain

エンジニア(インフラ/SRE)

エンジニア(サーバーサイド・youbride)

エンジニア(サーバーサイド・YYC)