Slide 1

Slide 1 text

Developer Experience (DX) for Open-Source Projects How to engage developers and build a growing developer community By William Cheng, Akihito Nakano This presentation will be conducted in both English and Japanese この発表は英語と日本語の両方で行われます

Slide 2

Slide 2 text

About Us Akihito Nakano (中野 暁人) ▹ Core team and founding member of OpenAPI Generator ▹ Top contributor in Japan :) ▹ Technical committee for PHP (client, server) generators William Cheng (Hong Kong) ▹ Core team and founding member of OpenAPI Generator ▹ Overseeing the whole project from bug fixes, PR review to roadmap and team building 2 @wing328 @NAKANO_Akihito

Slide 3

Slide 3 text

What is OpenAPI Generator? 3 [OUTPUT 出力] API clients, server stubs, documentation ● API clients (30+ programming languages) ● 30+ server frameworks ● API Documentations ● Apache2 web server config ● GraphQL Schema [INPUT 入力] OpenAPI Spec For REST API ● Swagger 1.2 ● Swagger/OpenAPI 2.0 ● OpenAPI 3.x [PROCESS 処理] OpenAPI Generator ● Java package (JAR) ● CLI ● Brew (MacOS) ● REST API ● Docker ● NPM ● Plug-ins (Maven, Gradle, IntelliJ, Eclipse, etc)

Slide 4

Slide 4 text

OpenAPI spec (v3.0) example 例 /pets/{petId}: get: summary: Info for a specific pet operationId: showPetById tags: - pets parameters: - name: petId in: path required: true description: The id of the pet to retrieve schema: type: string responses: '200': description: Expected response to a valid request content: application/json: schema: $ref: "#/components/schemas/Pet" 4

Slide 5

Slide 5 text

Here are some of our users ... 5 Japanese company

Slide 6

Slide 6 text

“ Developer Experience (DX)とは? What’s developer experience (DX)? 6 UX DX

Slide 7

Slide 7 text

なぜ Developer Experience が重要なのか ● 開発者の迎え入れ ● フィードバックの収集 ● コントリビュートのしやすさ ● 開発者の継続的な参加 ● コミュニティの育成 など...

Slide 8

Slide 8 text

Why does Developer Experience (DX) matter? ● Onboarding new developers ● Gather feedback ● Easier to contribute back ● Keep developers engaged ● Grow the developer community and more ...

Slide 9

Slide 9 text

オープンソースプロジェクトにおけるDXライフサイクル 9 (2) 調べる・評価する (1) 知る・見つける (3) フィードバックする (5) 伝える・共有する (4) コントリビュートする DXライフサイクル

Slide 10

Slide 10 text

DX life cycle for open-source projects 10 (2) Evaluate (1) Discover (3) Feedback (5) Evangelize (4) Contribute DX life cycle

Slide 11

Slide 11 text

(1)Discover How do developers find out your open-source projects? 11 (1)知る・見つける 開発者はどのように オープンソースプロジェ クトを知るのでしょう か?

Slide 12

Slide 12 text

(1) 知る・見つける 1. 口コミ、リアルなコミュニケーション (友人, 同僚など) 2. SNS: Twitter, ブログ, Qiita, はてブ, StackOverflow, Github, Reddit, HackerNews 3. 各地のコミュニティ: ミートアップ, 技術系メ ディア, 技術書, 翻訳 4. カンファレンス 5. オープンソースプロジェクト (Kubernetes, Prometheus) 6. Githubに公開されているコード 12

Slide 13

Slide 13 text

(1) Discover 1. Word of mouth (friends, colleagues, etc) 2. Social networks: StackOverflow, Github, Twitter, Reddit, HackerNews, Linkedin 3. Local community: Meetup, tech news, localized materials 4. Conferences 5. Open Source projects (Kubernetes, Prometheus) 6. Published code (SDKs) in Github 13

Slide 14

Slide 14 text

評判 - Googleトレンド, SNS - 導入実績 インストール/セットアップ - 始めかたは? インストール方法は? - オンラインで試用できるか - 生成したソースコードのサンプル - プラグインがあるか (Maven, Gradle, Eclipse, Visual Studio) ドキュメント 開発/QA/本番 の各環境で利用する プロジェクトの状況 - アクティブかどうか (コミットログ) - 更新履歴、リリースノート - ソースコードの質 - ビルドのステータス (2) 調べる・評価する 14

Slide 15

Slide 15 text

Background check - Google Trend, Social Media - Who’s using it in production Install/Setup - Getting Start? Installation? - Try it online without installing anything? - Sample output? - Plug-ins? Maven, Gradle, Eclipse, Visual Studio Documentation Run it in Dev/QA/Production environment Project status - Project (commit log) active? - Changelog and release note - Code quality - Build status (2) Evaluation 15

Slide 16

Slide 16 text

より簡単にissueを挙げられるよう にチェックリストを用意しておく TwitterなどのSNSをチェックする 相互にサポートできるような場を 用意する (例: gitterチャット) (3) フィードバック 16

Slide 17

Slide 17 text

make it easier to open an issue with an issue checklist watch out for unofficial channels for feedback build a community to help each other (e.g. chat room) (3) Feedback 17

Slide 18

Slide 18 text

(再掲)オープンソースプロジェクトにおけるDXライフサイクル 18 (2) 調べる・評価する (1) 知る・見つける (3) フィードバックする (5) 伝える・共有する (4) コントリビュートする DXライフサイクル

Slide 19

Slide 19 text

(Recap) DX life cycle for open-source projects 19 (2) Evaluate (1) Discover (3) Feedback (5) Evangelize (4) Contribute DX life cycle

Slide 20

Slide 20 text

(4) コントリビュート 1. Pull Requestテンプレートを活用す る 2. “ゲーミフィケーション”の要素を取り 入れて、コミュニティ内に階層分け した役割を定義する a. Users b. Contributors c. Technical Committee d. PR reviewer and merger e. Core Team 3. 地域コミュニティの活性化 a. ユーザーからリーダーへ 20

Slide 21

Slide 21 text

21 1 Core team members 週に3時間プロジェクトでの活 動を行う 3 Template Creators 新しく言語やフレームワークを サポートするジェネレータの実 装を行う 5 Users issueの投稿や質問、プロジェ クトへのフィードバックを行う 2 Technical committees 特定の言語において、提出し たPull Requestが3つ以上 マージされている 4 Contributors バグ修正、機能追加やドキュメント の改善などのPull Requestを提出し ている

Slide 22

Slide 22 text

22 github.com/kemokemo Go Technical Committee Creator of Go Gin Server Generator github.com/ackintosh Core Team Founding Member プロジェクトの発展に貢献されている 日本のコミュニティのみなさんに感謝! github.com/taxpon Python Technical Committee Founding Member github.com/autopp Ruby Technical Committee github.com/d-date Swift Technical Committee Founding Member github.com/algas Creator of Haskell Servant Server Generator github.com/niku Creator of Elixir Client Generator And many other contributors, issue/PR reviewers in Japan

Slide 23

Slide 23 text

(4) Contribute 1. File pull requests for enhancements, bug fixes, etc 2. “Gamification”: Different tiers for open source contributors a. Users b. Contributors c. Technical committee d. PR reviewer and merger e. Core team 3. Local community a. Turn users into leaders 23

Slide 24

Slide 24 text

24 1 Core team members Spend at less 3 hours per week for at least 3 months on the project 3 Template Creators Submit a new generator for a new language or framework 5 Users These users may have reported an issue, asked questions or provided feedback to the project. 2 Technical committees At least 3 merged pull requests for a particular generator or programing language 4 Contributors File a PR to fix bugs, enhance the generators or improve the documentation

Slide 25

Slide 25 text

25 github.com/kemokemo Go Technical Committee Creator of Go Gin Server Generator github.com/ackintosh Core Team Founding Member A special thanks to the Japanese community to help move the project forward!! github.com/taxpon Python Technical Committee Founding Member github.com/autopp Ruby Technical Committee github.com/d-date Swift Technical Committee Founding Member github.com/algas Creator of Haskell Servant Server Generator github.com/niku Creator of Elixir Client Generator And many other contributors, issue/PR reviewers in Japan

Slide 26

Slide 26 text

(5) 伝える ⇢ (1) 知る 1. 口コミ、リアルなコミュニケーション: 友人, 同僚など 2. SNS: Twitter, ブログ, Qiita, はてブ, StackOverflow, Github, Reddit, HackerNews 3. 地域コミュニティの活性化: ミートアッ プ, 技術系メディア, 翻訳 26

Slide 27

Slide 27 text

(5) Evangelize ⇢ (1) Discover 1. Word of mouth (friends, colleagues, etc) 2. Social networks: StackOverflow, Github, Twitter, Reddit, HackerNews, Linkedin 3. Help build the local community: Meetups, tech news, localized materials, conferences 27

Slide 28

Slide 28 text

OpenAPI Generatorへご支援いただいている スポンサーのご紹介 NamSor は名前を様々な観点で分類する APIを 提供しており、個人名を性別、出身国、人種や 民族によって正確に分類することができます。 照明のためのApp StoreやMusic Storeを想像し てみてください。Lightbow はこれまで5年間さま ざまなアップデートを行い、最高の品質と量の照 明の演出を提供しています。それに加えて、オリ ジナルの演出を作成するためのエディタも提供 しています。 プロジェクトの支援についてはこちら https://opencollective.com/openapi_generator

Slide 29

Slide 29 text

Thank you to the sponsors of OpenAPI Generator NamSor offers Name Ethnicity and Gender Classifier API to classify personal names accurately by gender, country of origin, or 'race' and ethnicity. Imagine the App Store or Music Store, but for LIGHT. After five years and many great updates, Lightbow continues to provide the highest quality & quantity of stunning light shows, plus the most powerful editor to create your own! Want to support this project financially? https://opencollective.com/openapi_generator

Slide 30

Slide 30 text

CREDITS ▹ Presentation template by SlidesCarnival ▹ Photographs by Unsplash ▹ Icons by pngtree 30

Slide 31

Slide 31 text

THANK YOU & All the best in building developer communities Any questions? @wing328 @NAKANO_Akihito 31