10年以上続くプロダクトで今取り組んでること、取り組もうとしていること
by
SansanTech
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Sansan株式会社 部署 名前 10年以上続くプロダクトで 取り組んでいること、取り組もうとしていること 【Ruby×⼤規模開発】3社のエンジニアが語るスケーラブルな設計と運⽤ 技術本部 Eight Engineering Unit 平⽯ 健太郎
Slide 2
Slide 2 text
1. サービス紹介 2. プロダクトの現実 3. 取り組んでいること(過去・現在) 4. 取り組もうとしていること(未来) アジェンダ 1
Slide 3
Slide 3 text
写真が⼊ります 平⽯ 健太郎 Sansan株式会社 技術本部 Eight Engineering Unit Product Dev Group 2021年Sansan株式会社に新卒⼊社 プロダクト開発チームに配属しサーバー開発を担当 現在は技術的課題の改善やAIエージェントによる⽣ 産性向上に向き合っている
Slide 4
Slide 4 text
サービス紹介
Slide 5
Slide 5 text
© Sansan, Inc.
Slide 6
Slide 6 text
サービス概要 アプリを開いて すぐ名刺交換ができる 取り込んだ名刺を 簡単に管理・検索 異動・昇進・転職など 近況情報が届く 名刺を撮るだけで 素早く正確にデータ化
Slide 7
Slide 7 text
Eightに付随するサービス Eight Team Eight Career Design Event Business 5000社以上で導⼊されている 企業向け名刺共有サービス 400万⼈以上に ダイレクトリクルーティングができる 採⽤サービス Eightユーザをメインターゲットに 年間4万⼈を超える参加者を集める ビジネスイベントを企画・運営
Slide 8
Slide 8 text
Eightの年表 2012 サービスローンチ 2015 ユーザ数が100万⼈を突破 2017 企業向けプレミアム機能(現Eight Team)の提供開始 2019 Eight Career Designサービス提供開始 2023 東京ビッグサイトで⼤規模イベント Eight EXPO を開催 2025 ユーザ数が400万⼈を突破
Slide 9
Slide 9 text
プロダクト開発の現実
Slide 10
Slide 10 text
- 複雑な処理 - 名刺のデータ化処理、ユーザ間のつながり処理 - デッドコード - 使われているか、使われていないか不明なコード・テーブル群 - 古いメンテされていないGem - Gemを⼊れた当初はそこそこ使われ活発にメンテされていたが、 直近はリリースが3年以上⽌まっているものが多数 技術的負債の蓄積
Slide 11
Slide 11 text
膨⼤なドメイン知識 - 13年のサービスの中でいくつも機能を追加してきた - 名刺管理、Eight Team、転職サービス、イベント連携… - ある改善タスクにおいても想定しない箇所に影響を与えることがある - 機能間のインターフェースが複雑に絡み合い、⼀つの改善でも他の機能との 整合性を取るための調整に多くの⼿間がかかってしまう
Slide 12
Slide 12 text
- データ量の増加によるパフォーマンスへの影響 - ユーザー数・名刺データにおける13年分の蓄積 - データベースの応答速度低下や、データ処理の⻑時間化 - 個⼈情報を取り扱うことによる開発・運⽤上の制約 - 名刺は「個⼈情報の塊」 - 調査や開発の際にデータアクセスが制限され、対応に時間がかかる 増え続けるデータと、その責任
Slide 13
Slide 13 text
Eightで取り組んでいること
Slide 14
Slide 14 text
技術改善に集中できる新体制への移⾏ - Enhancementチームの発⾜ - 腰を据えて技術改善に向き合えるように - 機能別のチームは廃⽌ - Featureチームとしてドメイン関係なくプロダクト開発を⾏う
Slide 15
Slide 15 text
積極的なバージョンアップデート - 積極的にRuby, Railsのアップデートを実施 - QA体制の充実やテストカバレッジを90%維持している - アップデートの恩恵をなるべく早く受けれるように - 開発メンバーにも「〇〇が使えるようになった」や 「パフォーマンスが〇〇%改善した」などメリットを伝えるように
Slide 16
Slide 16 text
型の導⼊ - コードの保守・品質・可読性の向上のためにRubyの型を導⼊ - Eight では Sorbet を導⼊ - コードベース全体の8割以上で型チェックが有効化されている状態に 詳しい導⼊背景・進め⽅はブログにまとめています https://buildersbox.corp-sansan.com/entry/eight-steep-vs-sorbet
Slide 17
Slide 17 text
これからEightで取り組もうとしていること
Slide 18
Slide 18 text
AIフレンドリーな開発
Slide 19
Slide 19 text
ドキュメントを残すための仕組みづくり - 今まで開発においてスピード重視で設計資料を残す仕組みがなかった - 散発な努⼒はあったものの、組織としての標準を定められていなかった - AIエージェントが実装するためのサポートになるように - 設計書だけじゃなく開発プロセスも明⽂化 - Devin DeepWikiも使いながらドメイン知識をドキュメント化
Slide 20
Slide 20 text
依存Gemの削減 - メンテされていないGemが最新のRuby/Railsに追従していないとアプデ 作業が停滞する - Eightの例: Her, activerecord-redshift-adapter - デファクトスタンダードなGem依存に置き換えていく - Her → Faraday - activerecord-redshift-adapter → pg
Slide 21
Slide 21 text
機能のスリム化 - プロダクトをスリムにしていく - ログなどからあまり使われていない機能をリストアップ - PdMと議論、合意を取った上で機能を削除していく - メンバー全員がEightを理解している状態にする - 誰も知らない/コードを読まないと理解できないをなくしていく
Slide 22
Slide 22 text
- プロダクト開発の現実 - 蓄積する技術負債、複雑化するドメイン知識、増え続けるデータ - ⾏っている取り組み - 体制づくり、積極的なアップデート、コードの堅牢化 - 今後の取り組み - AIフレンドリーな開発、プロダクトのスリム化 まとめ
Slide 23
Slide 23 text
22 © Sansan, Inc. We are hiring! ⼀緒にEightの価値を⾼められる⽅を募集しています! Webアプリ開発エンジニア
Slide 24
Slide 24 text
No content