CA Reward

Tech Blog

Tech Blogトップに戻る

day++(インクリメント・デイ)#2 レポート

2017.03.22

  • このエントリーをはてなブックマークに追加
  • Pocket
kotaking
kotakingエンジニア

3/10(金)に、第2回CAリワードハッカソン、「day++」(インクリメント・デイ)が開催されましたので、詳細をレポートしてきたいと思います!

https://cloud.githubusercontent.com/assets/7459326/23829328/100bb37c-0733-11e7-84cd-9af2012b7559.JPG

day++ 開催概要

day++(インクリメント・デイ)とは、エンジニア自らが「プロダクト」と「技術」に向き合い、「課題発見」から技術的な「挑戦」と「改善」を実施し、アウトプットまでを行う1day開発合宿です。

エンジニアがより高みを目指し、「挑戦し続ける」「個々の成長をチームの成長へとつなげる」という思いを込めて「day++」としました。

そして第2回のテーマは「Tanshuku(短縮)」

プログラム改善による実行速度の短縮だったり、日常業務の中での作業時間短縮だったり、それぞれが日々の業務で感じている課題を定義し、課題解決に向けて全力で取り組みました。

タイムスケジュール


時間進行
 10:30〜10:45  開会式 
 10:45〜19:00  開発合宿 
 19:00〜21:00  発表・プレゼン 
 21:00〜21:15  MVP発表 

開会式

img_open

技術責任者 辻の開会の挨拶でday++スタート!

day++の様子

開会式の後、各自テーマに沿った開発に入っていきます。開発は社内のどのスペースを使ってもOK。エンジニアが1day合宿と向き合っている様子を少しご紹介したいと思います。

img<em>00001 Hacker's Cafe(社内カフェスペース)で論文を読みながら短縮Hackしているのは、データサイエンティストの白井。黙々と集中して開発しています。

img</em>0003 同じくデータサイエンティストの宮西。アドテクライブラリは技術書籍が充実しているので、調べたい情報を調べたい時に利用できるのはいいですね!

img_0004 個室の開発集中ルームで短縮Hackに取り組むサーバサイドエンジニアの飯野。そっとドアを開けて開発の様子を撮らせていただきました。

img_0005 周囲の音が遮断され、集中するにはもってこいの環境です。

img_0006 自席で短縮Hackに取り組むのは、サーバサイドエンジニアの山塚。普段はCAリワードの肝となるBOSATSU(不正対策チーム)のリードエンジニアです。

img_0007 Hacker's CafeでGoogleAnalyticsと向き合うのはテクニカルクリエイターの佐藤。

img_00003 音楽を聞きながら集中開発モードに入っているのは、サーバサイドエンジニアの淵之上。弊社サービスを手広く手がけるマルチエンジニア。開発スピードには定評があり、今回どんなアウトプットを見せてくれるのか楽しみです。

Coffee Break

参加者全員にサンドイッチが配られました。休憩するかと思いきや、皆サンドイッチ片手にもくもくと開発を続けていました。やはり集中モードに入ったエンジニアからは、とてつもない気迫を感じますね。

img_00004

発表・プレゼン

1人3分の持ち時間で本日の成果のプレゼンを実施。今回の発表の中からいくつかピックアップして、それぞれのエンジニアがどういった課題に取り組んだのか、詳細をレポートしたいと思います。

統合フロントの開発フローをTanshukuする(渡邉)

img_0004

  • CAリワードのオファーWall統合プロジェクトの課題
    • 新しくコンポーネント or パーツ作りたいけど、もしかしたら既存にあるかも
    • 既存で使えそうなコンポーネント見つけたけど、使い方が分からない

結果、手を動かすまでが遅くなる。 これを解決するため、react-storybookとESDocを導入し、問題解決に挑みました。 ドキュメントの更新はなかなかメンテがツラいもの。出来るだけ自動化出来るようにと、コンポーネントから自動で読み取ってドキュメント化するツールを開発しました。

教師なし学習を不正対策に適用(宮西)

img_0006

既存の手法に加えて教師なし学習(外れ値検知や異常値検知)を検証しました。過去に蓄積したデータではなく、1回のセッションを評価することで、不正検知までの時間を大幅に短縮する試みです。通常、ユーザーエージェントから読み取れる情報としては、OS名、OSバージョン、ブラウザ名、ブラウザバージョンなどが取れますが、PythonのUAパーサを使うと、botかどうかの判定も出来るようでした。精度を上げていく必要はありますが、実用化されればリアルタイムで判定出来るので強い武器になりそうです。

不正予測モデルの学習時間短縮(白井)

img_0010

不正予測モデルの学習時間短縮テーマに既存モデルの精度をある程度保ちながら学習時間を短縮する方法の検証をしました。 今回用いた方法としては、学習に使う属性の次元を削減し無駄な計算を省いていくというもので、これにより今までのパフォーマンスより6倍から12倍ほどの学習時間で処理が終わったようです。 時間はもちろんのこと精度の方も既存のモデルと比較して遜色ないレベルで、更に検証を重ねる必要はありますが、驚く程のパフォーマンス改善となるので、是非実用化まで持っていきたいです。

UIの効果分析時間の短縮(佐藤)

img_00111

効果の高いデザインのPDCAを早いサイクルでまわせるようにする為、レポート分析の時間を極限まで短縮することに挑戦した佐藤。今求められているのは、どの位置のリンク、ボタンが押されているか、どのクリエイティブが有効か、A/Bテストの結果は、など、検証軸は山のようにあります。それらの検証軸での効果分析を素早い時間で可能にするためのGoogleAnalyticsダッシュボードを構築してくれました。

Nightmareを使ってDeploygateの共有リンクをChatworkにポストする(市村)

img_0012

Android/iOSのSDK開発を担当する市村が開発したのは、定常的な問い合わせがあった際、自動でDeploygateにある必要な情報を拾い、ChatworkにPOSTするというもの。これが導入されると開発に集中したい時に、問い合わせがあっても集中を切らすことなく開発が進められそうですね!開発を中断する事での差し戻し時間撤廃とレスポンスまでの時間短縮でday++に挑んでくれました。

MarkDown To PDF(飯野)

img_0013

日々の業務の中で発生する定常業務の時間短縮に挑んだのは飯野。Markdownで書かかれたものを、イメージを崩すことなくPDFに変換するツールの開発を行いました。 特筆すべきはデザイン崩れが起こらない点。同じようにPDFに変換するツールはいくつかあるのですが、Wikiで記述したイメージが完全再現されず、テーブルレイアウトが崩れたりするなどの問題がありました。個人的には今すぐにでも使いたいと思えるツールでした。

MVP発表

img_7092

参加者全員のアウトプットは紹介しきれませんでしたが、今回day++に参加した18名の中からMVPを獲得したのは・・・


フロントエンドエンジニアの渡邉です!

img_0013

受賞のポイントとしては、CAリワードのオファーWall統合プロジェクトにおける課題発見とその解決アプローチ、自動化、1dayでの完成度はさることながら、今回の「Tanshuku」というテーマに対して「探す時間」「人に聞く時間」「整理する時間」を短縮し、React.js、Atomic Designを取り入れ無数のコンポーネント化が進んでいく今後のオファーWall統合プロジェクトの大きなボトルネックになるであろう課題を未然に解決してくれた点です。

渡邉は受賞した喜びをday++にちなみ「インクリメントポーズ」で表現してくれました!

MVP受賞おめでとうございます!

いかがだったでしょうか?CAリワードの1day開発合宿「day++」。各々が課題を発見し、課題解決に向けて技術チャレンジしていくことはエンジニアにとってとても大きな意味があると思います。能動的に自分が発見した課題をクリアし、プロダクトを改善していく。日常の開発業務にも活かされていくのではないでしょうか。

第2回day++のレポートは以上になります。

第3回day++もレポートしていく予定ですのでお楽しみに!



Photo credit: bburky via Visual hunt / CC BY

kotaking
kotakingエンジニア