Slide 1

Slide 1 text

#burikaigi_m SDK開発チームの プロダクトオーナーが考えていること BuriKaigi 2024 ( 2024-01-20 ) @tasshi_me

Slide 2

Slide 2 text

#burikaigi_m 自 己 紹 介 • tasshi • Product Owner/SWE • @tasshi_me • https://tasshi.me/ • Cybozu, Inc. B u r i K a i g i 2 0 2 3 の 写 真

Slide 3

Slide 3 text

#burikaigi_m B u r iKaig i 2023 チ ー ム に ベ ト ナ ム メ ン バ ー が ジ ョ イ ン し て チ ー ム の 公 用 語 が 英 語 に な っ た 話 h t t p s : / / s p e a k e r d e c k . c o m / t a s s h i / b o o t s t r a p p i n g - a - g l o b a l - t e a m

Slide 4

Slide 4 text

#burikaigi_m • kintoneと開発エコシステム • 開発者体験の重要性 • SDK開発で考えていること • SDK開発で見ている情報 • SDK開発の難しさ・面白さ 話すこと

Slide 5

Slide 5 text

#burikaigi_m • 業務アプリ構築のクラウドサービス • ノーコード・ローコードで簡単構築 • エコシステム提供の拡張機能 • プ ラ グ イ ン • 外 部 連 携 サ ー ビ ス kintone(キントーン)

Slide 6

Slide 6 text

#burikaigi_m • 拡 張 機 能 を 提 供 す る パ ー ト ナ ー 企 業 な ど • 約 200種 類 以 上 の プ ラ グ イ ン ・ 連 携 サ ー ビ ス が 存 在 • 開 発 者 向 け に APIな ど を 提 供 • A PI ( REST A PI , J avaS c r ipt A PI ) • 開 発 者 ラ イ セ ン ス • 開 発 支 援 ツ ー ル な ど kintoneの開発エコシステム

Slide 7

Slide 7 text

#burikaigi_m • DX = 開発者体験(Developer eXperience) • SDKなどのOSSツールの提供 • REST APIク ラ イ ア ン ト • 型 定 義 フ ァ イ ル • デ ー タ 操 作 CLI な ど kintone DXチーム

Slide 8

Slide 8 text

#burikaigi_m 開発者体験とは

Slide 9

Slide 9 text

#burikaigi_m

Slide 10

Slide 10 text

#burikaigi_m • 開発者が活動全体に感じる印象・経験 • API・ ツ ー ル の 使 い や す さ • ド キ ュ メ ン ト の 充 実 • 開 発 コ ミ ュ ニ テ ィ な ど ※ 社 内 の 開 発 活 動 を 対 象 に し た 開 発 者 体 験 も あ る 開発者体験(Developer eXperience)

Slide 11

Slide 11 text

#burikaigi_m • 開 発 生 産 性 が 向 上 す る • 品 質 が 良 く な る • 新 規 開 発 者 が 参 入 し や す く な る • モ チ ベ ー シ ョ ン が 向 上 す る => よ り 多 く の 人 が よ り 多 く の 機 能 を よ り 高 品 質 に 提 供 で き る よ う に な る 開発者体験が良いと何が嬉しい?

Slide 12

Slide 12 text

#burikaigi_m エコシステム開発者 • 生産性・品質の向上 • 開発コストの削減 • 採用競争力増加 ↓ ビジネス大成功!? プラットフォーム • エコシステムの拡大 • 拡張機能の充実 • ニーズに対応しやすく ↓ ビジネス大成功!?

Slide 13

Slide 13 text

#burikaigi_m 開発者体験の向上は プラットフォームと エコシステム開発者の 両方にとって重要

Slide 14

Slide 14 text

#burikaigi_m kintoneの開発者体験に関わるモノ API SDK 開発ドキュメント 開発コミュニティ サポート

Slide 15

Slide 15 text

#burikaigi_m • ド キ ュ メ ン ト が な い も の は 使 え な い ! • R E A D M E の な い ラ イ ブ ラ リ • デ ー タ シ ー ト の な い チ ッ プ • ( 型 の な い コ ー ド ) • S D K や サ ポ ー ト は ド キ ュ メ ン ト で カ バ ー で き な か っ た 部 分 52%の開発者が ドキュメント不足を API利用の障害に 感じている 2 0 2 3 S t a t e o f t h e A P I R e p o r t 一番重要なのはドキュメント!!

Slide 16

Slide 16 text

#burikaigi_m Obstacles to consuming APIs (API利用の障壁) 2 0 2 3 S t a t e o f t h e A P I R e p o r t 1 位 : 5 2 % ド キ ュ メ ン ト の 不 足 2 位 : 3 2 % A P I を 見 つ け る の が 困 難

Slide 17

Slide 17 text

#burikaigi_m • 再利用可能なコードの提供 • 複雑さの隠蔽 • 品質保証の一部外部化 => 開発コストの削減につながる SDKの価値

Slide 18

Slide 18 text

#burikaigi_m SDK開発で考えていること

Slide 19

Slide 19 text

#burikaigi_m • 様々な拡張機能の開発フローをイメージ • 共 通 で 必 要 な 機 能 を 抽 出 し て い く • 開発プロセス全体でなるべく共通の体験を提供 • ツ ー ル 同 士 の 連 携 • ド キ ュ メ ン ト へ の 適 切 な 導 線 ①ユーザーストーリー

Slide 20

Slide 20 text

#burikaigi_m • なるべく簡潔かつ用途が明瞭なIFを設計する • APIは基礎的なラインナップになりがち • SDK側 で ユ ー ス ケ ー ス に 近 い 形 に ラ ッ プ す る • 公開されている概念・用語に基づいて設計する ②インターフェース

Slide 21

Slide 21 text

#burikaigi_m • ロ グ か ら エ ラ ー 原 因 が 特 定 で き な い と 問 い 合 わ せ が 発 生 す る • 問 い 合 わ せ は 送 る 側 も 受 け る 側 も 大 変 • 問 題 解 決 に 繋 が る 情 報 を ロ グ に 含 め る • ユ ー ザ ー 側 で 解 決 し な く て も 問 い 合 わ せ の 往 復 を 減 ら せ る • 多 す ぎ る ロ グ は ノ イ ズ に な る • ロ グ レ ベ ル な ど で 制 御 で き る よ う に す る • 実 行 環 境 の 情 報 を ま と め て 出 力 す る コ マ ン ド が あ る と 情 報 収 集 コ ス ト 減 • 例 : b i o m e r a g e コ マ ン ド ③有益なログをたくさん出す

Slide 22

Slide 22 text

#burikaigi_m SDK開発で見ている情報

Slide 23

Slide 23 text

#burikaigi_m • プ ラ ッ ト フ ォ ー ム の 性 質 • 仕 様 や 製 品 ア ッ プ デ ー ト 情 報 • ユ ー ザ ー の フ ィ ー ド バ ッ ク • ど の よ う な 拡 張 機 能 が 作 ら れ る の か • 拡 張 機 能 リ ス ト • 導 入 事 例 1. プラットフォームの知識

Slide 24

Slide 24 text

#burikaigi_m • 開 発 者 に 「 使 い や す い 」 と 思 っ て も ら い た い • 自 分 自 身 が 開 発 者 と し て 「 使 い や す さ 」 に 敏 感 で あ る 必 要 が あ る • ラ イ ブ ラ リ を 作 る に は ラ イ ブ ラ リ を 読 む ・ 触 る • 使 い や す さ は 多 様 か つ 変 化 す る • 開 発 言 語 特 有 の お 作 法 • 言 語 ・ ラ ン タ イ ム の ア ッ プ デ ー ト • 開 発 ツ ー ル の ト レ ン ド の 変 化 2. 開発者の知識 個 人 的 に 頭 の 痛 い ワ ー ド は 「 ゼ ロ コ ン フ ィ グ 」 と 「 E S M 」

Slide 25

Slide 25 text

#burikaigi_m • SDKが ど の よ う に 使 わ れ て い る か • パ ッ ケ ー ジ の ダ ウ ン ロ ー ド 数 • プ ラ ッ ト フ ォ ー ム 側 の メ ト リ ク ス • G itH u b I s s u e s な ど で の フ ィ ー ド バ ッ ク • 実 際 の エ コ シ ス テ ム 開 発 者 と 会 う こ と も • 自 社 イ ベ ン ト な ど 3. 提供しているSDK自体の知識

Slide 26

Slide 26 text

#burikaigi_m SDK開発の難しさ・面白さ

Slide 27

Slide 27 text

#burikaigi_m • C L I ツ ー ル は ユ ー ザ ー の 手 元 の 環 境 で 実 行 さ れ る • 環 境 固 有 の 問 題 • ネ ッ ト ワ ー ク ( 特 に プ ロ キ シ ) • フ ァ イ ル シ ス テ ム • セ キ ュ リ テ ィ 設 定 • 再 現 し な い こ と も 多 い = > ロ グ 出 力 の 拡 充 を 進 め て い る 難しさ: 環境依存の不具合

Slide 28

Slide 28 text

#burikaigi_m • や っ ぱ り ユ ー ザ ー が 精 神 的 に 近 い と い う の は 良 い • 利 用 ケ ー ス ・ ユ ー ザ ー 層 を 想 像 し や す い • モ チ ベ ー シ ョ ン が 湧 き や す い • 自 分 の 「 使 い や す い 」 と ユ ー ザ ー の 「 使 い や す い 」 が 近 い • 同 じ で は な い の で 注 意 面白さ①: ユーザーが開発者

Slide 29

Slide 29 text

#burikaigi_m • JSON受け取るだけでしょとか思われがち • 設計面がダイレクトにユーザー体験に繋がる • ユーザーのお手元で動くという恐怖 • ライブラリ提供者側の知識が身に付く 面白さ②: 技術的にも意外と楽しい

Slide 30

Slide 30 text

#burikaigi_m • SDK開発のPOは楽しい • ドキュメント・ログは大事!! • 自分自身も開発者であり続ける まとめ