Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BtoB SaaSにおける技術課題との向き合い方 要望と開発の狭間を繋ぐ技術
Search
iCARE Dev Team
November 22, 2022
0
1k
BtoB SaaSにおける技術課題との向き合い方 要望と開発の狭間を繋ぐ技術
2022.11.17に行われた『
BtoB SaaSにおける技術課題との向き合い方
』イベントでiCAREから荻野が発表した際のスライドです。
iCARE Dev Team
November 22, 2022
Tweet
Share
More Decks by iCARE Dev Team
See All by iCARE Dev Team
RubyKaigiスポンサー体験がiCAREの開発組織にもたらしたもの
icaredev
0
1.4k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
BBQ
matthewcrist
85
9.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Practical Orchestrator
shlominoach
186
10k
Navigating Team Friction
lara
183
14k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Transcript
Copyright ©iCARE Co.,Ltd All Rights Reserved. 1 BtoB SaaSにおける技術課題との向き合い方 要望と開発の狭間を繋ぐ技術
ex-CTO 荻野淳也 @ogijun
Copyright ©iCARE Co.,Ltd All Rights Reserved. 2 Enablerチーム / Principal
Programmer 荻野淳也 東京都立大学理学部数学科卒、同大学大学院理学 研究科数学専攻修士課程修了(博士課程単位取得 退学)。 学生時代のアルバイトから始まって25年 以上、スタートアップから一部上場企業まで、途中 何回かの起業経験も挟みながら幅広くソフトウェア 開発に関わる。また、2015年から現在まで小さな コーヒー店を経営する喫茶店主でもある。 2021年3月株式会社iCARE入社、同年5月〜 2022年10月までCTO、今月より現職。 ネットではよく ogijun と呼ばれています。
Copyright ©iCARE Co.,Ltd All Rights Reserved. まとまると予防できる
Copyright ©iCARE Co.,Ltd All Rights Reserved. 健康管理システム「 Carely(ケアリィ)」 • 健康情報を一元管理
法令遵守をサポート 健康診断、ストレスチェック、過重労働、巡視、 衛生委員会、etc. • 健康状態の可視化・分析 • 健康経営をサポート • スピーディな開発体制 • 外部のシステムとの連携 4 健康管理システムCarely
Copyright ©iCARE Co.,Ltd All Rights Reserved. 総勢約40名以上、1プロダクト • 開発リーダー 5名
• バックエンド 14名 • フロントエンド 12名 • SRE 2名 • QAE 3名 • デザイナー 2名 • マネージャー 数名 • フェロー・アドバイザー数名 健康管理システム「 Carely(ケアリィ)」 5 健康管理システムCarely
Copyright ©iCARE Co.,Ltd All Rights Reserved. 6 で利用している技術たち バックエンド ストレージ
フロントエンド デザイン/ プロトタイピング モニタリング ワークフロー
Copyright ©iCARE Co.,Ltd All Rights Reserved. 7 たのしい SaaS 企業
SaaS開発者の(入社直後の)心境 どんどん機能開発していけば、お客さまもよろんでくれるはず! めっちゃ速く開発してしょっちゅうデプロイするぞー! SaaSの機能開発トリガー Product Roadmap にそって計画される 既存顧客及び営業中の顧客候補から要望が寄せられる 技術的に必要だと思われるものが開発チームから提案される
Copyright ©iCARE Co.,Ltd All Rights Reserved. 8 B2B特有の事情 非常に強い安全性への要求 セキュリティ・チェック大変ですよね…
→ (話したいことは山程ありますが)今日は扱いません 安定したサービス運用 ← 今日はこっち お客さまの仕事を止めてはいけない 「安定」の定義 → SLO的なことだけではない
Copyright ©iCARE Co.,Ltd All Rights Reserved. 9 専門職B2B特有の事情 顧客社内でも 少数の
専門職が 濃厚に 利用する (その他の従業員は薄く利用する)
Copyright ©iCARE Co.,Ltd All Rights Reserved. 10 専門職B2B特有の事情 安定とは お客さまの社内ワークフローがありマニュアルを作成している
リリースが頻繁 → 機能が変化し続ける → ワークフロー改訂が間に合わない! お客さまは「製品を使いたい」わけではない 製品を使って「仕事を終わらせたい」 → 「改善はありがたいのですが一旦繁忙期を過ぎてからで..」
Copyright ©iCARE Co.,Ltd All Rights Reserved. 11 たのしい B2B SaaS
開発 (架空の会話です、あくまで架空...) A社 「x画面の上にyテーブルが出ているとフローが短縮できて便利」 開発 「追加しました」 B社 「x画面に余計な情報が出てスクロールが必要になった!改悪 だ!」 開発 「すみません戻します」 A社 「デグレしてる!もうマニュアル改訂したのに!」
Copyright ©iCARE Co.,Ltd All Rights Reserved. 12 たのしい B2B SaaS
開発 A社 「x機能とy機能ができればOK」 B社 「x機能とz機能が必須、yは要らない」 C社 「xは別システムでやってるのでzとwだけやりたいです」 D社 「御社製品のxとyがやりたいんですが、既存システムにあるv機能があれ ばあればリプレースも考えます」 開発 「できました! つ [v, w , x, y, z] 」 各社 「(なんか余計な機能いっぱいあるな…)」 CS 「A社からvwzは何だっていう問い合わせが多数来てます!」 顧客要望を抽象化してから開発することが必要なのはわかっております
Copyright ©iCARE Co.,Ltd All Rights Reserved. 13 Carely の成長の記録 Carely
v1 (2016〜) チャットによる健康相談 ストレスチェック、面談 Carely v2 (2017〜) 上記に加えて健康診断、過重労働の管理 睡眠研修 巡視、衛生委員会など COVID-19関連 健康スコア、メッセージ機能、クロス分析 既にけっこうボリューミィ...
Copyright ©iCARE Co.,Ltd All Rights Reserved. 14 たのしい SaaS 開発
これらを全て満たすことはできるのか? 市場の競争に勝つためには勢いよく機能追加したい お客さまの求める「安定」を犠牲にしたくない シンプルでわかりやすいプロダクトであり続けたい とりあえずのソリューション 機能フラグ
Copyright ©iCARE Co.,Ltd All Rights Reserved. 15 機能フラグ if (a_customer.a_feature_flag)
{ // 機能ON } else { // 機能OFF }
Copyright ©iCARE Co.,Ltd All Rights Reserved. 16 機能フラグ if (a_customer.a_feature_flag)
{ // 機能ON } else { // 機能OFF } if (a_customer.another_feature_flag) { // 別機能ON } else { // 別機能OFF }
Copyright ©iCARE Co.,Ltd All Rights Reserved. 17 More Sophisticated Way
コードレベルでの例 Flipper (Railsの場合) サービスでの例 (SaaSもある) AWS AppConfig Unleash
Copyright ©iCARE Co.,Ltd All Rights Reserved. 18 機能フラグの分類 https://martinfowler.com/articles/feature-toggles.html 1.
Release Toggles 2. Experiment Toggles 3. Ops Toggles 4. Permission Toggles
Copyright ©iCARE Co.,Ltd All Rights Reserved. 19 ドッグフーディング まず自社で試そう Pros
心おきなく本番で試すことが可能 フィードバックがタイムラグゼロ(に近い) Cons 自社と似てない会社での運用はつかめない (専門職SaaSなので)自社だけだとユーザが少ない
Copyright ©iCARE Co.,Ltd All Rights Reserved. 20 フラグ管理しないものもあります 例) カラースキーム
Carelyでは青ベース カスタマイズ不可 各色での userbility を検証不可能 (ダークモードが悩ましいです)
Copyright ©iCARE Co.,Ltd All Rights Reserved. 21 たのしい B2B SaaS
開発 機能フラグ定着後の小噺 開発 「超目玉機能Fを作ったのでデフォルトOFFで本番適用するぞ」 開発 「OFF時の挙動はリリース前と全く変化ないことを確認済」 顧客 「あのー機能E(超レア機能)の挙動が昨日までと変わりました?」 開発 「(おっとそこは確認してない、なんなら機能E知らんかった..)」 開発 「ぐぬぬ、revertします」 開発 「すみません、来週の顧客Aでの機能Fのテスト予定リスケで..」
Copyright ©iCARE Co.,Ltd All Rights Reserved. 22 Carelyではどうするか 自作することにしました 単なるオンオフではない
機能の存在は見せたい場合 自社提供のマニュアルから乖離させない 内部的に利用している認可ライブラリとの親和性 前ページの小噺への可能な限りのアプローチ いろいろ課題はあれどざくざく機能を足したいことに変わりはない
Copyright ©iCARE Co.,Ltd All Rights Reserved. 23 その他の技術課題 セキュリティ &
プライバシー パフォーマンス (もっと悩みたい) 各種メトリクスの取得と分析 30> developers / 1 monolith APIやSSOなど外部連携の拡大 内部品質 (6年間の負債と闘う) DevOps 推進
Copyright ©iCARE Co.,Ltd All Rights Reserved. 24 https://herp.careers/v1/icare 👇応募はこちら(HERP) \
We're Hiring👍 / icare dev https://devdriven.icare-carely.co.jp 検索
Copyright ©iCARE Co.,Ltd All Rights Reserved. Thank you! 25