Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BtoB SaaSにおける技術課題との向き合い方 要望と開発の狭間を繋ぐ技術

Avatar for iCARE Dev Team iCARE Dev Team
November 22, 2022
1.1k

BtoB SaaSにおける技術課題との向き合い方 要望と開発の狭間を繋ぐ技術

2022.11.17に行われた『BtoB SaaSにおける技術課題との向き合い方』イベントでiCAREから荻野が発表した際のスライドです。

Avatar for iCARE Dev Team

iCARE Dev Team

November 22, 2022
Tweet

Transcript

  1. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 2 Enablerチーム / Principal

    Programmer 荻野淳也 東京都立大学理学部数学科卒、同大学大学院理学 研究科数学専攻修士課程修了(博士課程単位取得 退学)。 学生時代のアルバイトから始まって25年 以上、スタートアップから一部上場企業まで、途中 何回かの起業経験も挟みながら幅広くソフトウェア 開発に関わる。また、2015年から現在まで小さな コーヒー店を経営する喫茶店主でもある。 2021年3月株式会社iCARE入社、同年5月〜 2022年10月までCTO、今月より現職。 ネットではよく ogijun と呼ばれています。
  2. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 健康管理システム「 Carely(ケアリィ)」 • 健康情報を一元管理

    法令遵守をサポート 健康診断、ストレスチェック、過重労働、巡視、 衛生委員会、etc. • 健康状態の可視化・分析 • 健康経営をサポート • スピーディな開発体制 • 外部のシステムとの連携 4 健康管理システムCarely
  3. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 総勢約40名以上、1プロダクト • 開発リーダー 5名

    • バックエンド 14名 • フロントエンド 12名 • SRE 2名 • QAE 3名 • デザイナー 2名 • マネージャー 数名 • フェロー・アドバイザー数名 健康管理システム「 Carely(ケアリィ)」 5 健康管理システムCarely
  4. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 6 で利用している技術たち バックエンド ストレージ

    フロントエンド デザイン/ プロトタイピング モニタリング ワークフロー
  5. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 7 たのしい SaaS 企業

    SaaS開発者の(入社直後の)心境 どんどん機能開発していけば、お客さまもよろんでくれるはず! めっちゃ速く開発してしょっちゅうデプロイするぞー! SaaSの機能開発トリガー Product Roadmap にそって計画される 既存顧客及び営業中の顧客候補から要望が寄せられる 技術的に必要だと思われるものが開発チームから提案される
  6. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 8 B2B特有の事情 非常に強い安全性への要求 セキュリティ・チェック大変ですよね…

    → (話したいことは山程ありますが)今日は扱いません 安定したサービス運用 ← 今日はこっち お客さまの仕事を止めてはいけない 「安定」の定義 → SLO的なことだけではない
  7. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 9 専門職B2B特有の事情 顧客社内でも 少数の

    専門職が 濃厚に 利用する (その他の従業員は薄く利用する)
  8. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 10 専門職B2B特有の事情 安定とは お客さまの社内ワークフローがありマニュアルを作成している

    リリースが頻繁 → 機能が変化し続ける → ワークフロー改訂が間に合わない! お客さまは「製品を使いたい」わけではない 製品を使って「仕事を終わらせたい」 → 「改善はありがたいのですが一旦繁忙期を過ぎてからで..」
  9. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 11 たのしい B2B SaaS

    開発 (架空の会話です、あくまで架空...) A社 「x画面の上にyテーブルが出ているとフローが短縮できて便利」 開発 「追加しました」 B社 「x画面に余計な情報が出てスクロールが必要になった!改悪 だ!」 開発 「すみません戻します」 A社 「デグレしてる!もうマニュアル改訂したのに!」
  10. 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は何だっていう問い合わせが多数来てます!」 顧客要望を抽象化してから開発することが必要なのはわかっております
  11. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 13 Carely の成長の記録 Carely

    v1 (2016〜) チャットによる健康相談 ストレスチェック、面談 Carely v2 (2017〜) 上記に加えて健康診断、過重労働の管理 睡眠研修 巡視、衛生委員会など COVID-19関連 健康スコア、メッセージ機能、クロス分析 既にけっこうボリューミィ...
  12. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 14 たのしい SaaS 開発

    これらを全て満たすことはできるのか? 市場の競争に勝つためには勢いよく機能追加したい お客さまの求める「安定」を犠牲にしたくない シンプルでわかりやすいプロダクトであり続けたい とりあえずのソリューション 機能フラグ
  13. 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
 }

  14. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 17 More Sophisticated Way

    コードレベルでの例 Flipper (Railsの場合) サービスでの例 (SaaSもある) AWS AppConfig Unleash
  15. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 19 ドッグフーディング まず自社で試そう Pros

    心おきなく本番で試すことが可能 フィードバックがタイムラグゼロ(に近い) Cons 自社と似てない会社での運用はつかめない (専門職SaaSなので)自社だけだとユーザが少ない
  16. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 20 フラグ管理しないものもあります 例) カラースキーム

    Carelyでは青ベース カスタマイズ不可 各色での userbility を検証不可能 (ダークモードが悩ましいです)
  17. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 21 たのしい B2B SaaS

    開発 機能フラグ定着後の小噺 開発 「超目玉機能Fを作ったのでデフォルトOFFで本番適用するぞ」 開発 「OFF時の挙動はリリース前と全く変化ないことを確認済」 顧客 「あのー機能E(超レア機能)の挙動が昨日までと変わりました?」 開発 「(おっとそこは確認してない、なんなら機能E知らんかった..)」 開発 「ぐぬぬ、revertします」 開発 「すみません、来週の顧客Aでの機能Fのテスト予定リスケで..」
  18. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 22 Carelyではどうするか 自作することにしました 単なるオンオフではない

    機能の存在は見せたい場合 自社提供のマニュアルから乖離させない 内部的に利用している認可ライブラリとの親和性 前ページの小噺への可能な限りのアプローチ いろいろ課題はあれどざくざく機能を足したいことに変わりはない
  19. Copyright ©iCARE Co.,Ltd All Rights Reserved.
 23 その他の技術課題 セキュリティ &

    プライバシー パフォーマンス (もっと悩みたい) 各種メトリクスの取得と分析 30> developers / 1 monolith APIやSSOなど外部連携の拡大 内部品質 (6年間の負債と闘う) DevOps 推進