こんにちは! kintone DXチームでエンジニアをしている tasshiです。
今回はkintoneエコシステムの開発者体験(Developer eXperience: DX)を向上させる、私たちの活動について紹介します。
3行まとめ
- エコシステム開発者向けのSDKや、管理者向けのCLIツールなどを開発しています
- 利用ライブラリへのOSSコントリビューションも業務時間内に行っています
- 英語をチームの第一言語として活動しています
目次
- 3行まとめ
- kintone DXチームってなんですか?
- kintone DXチームのビジョン・コンセプト
- kintone DXチームのプロダクト
- 利用ライブラリへのOSSコントリビューション
- メンバー
- グローバルチーム化と英語コミュニケーションについて
- これからの活動について
- まとめ
kintone DXチームってなんですか?
kintoneエコシステムで活動する開発者(エコシステム開発者)の開発体験を向上させるチームです!
kintoneは現場主体の業務改善を支えるB2B向けのクラウドサービスです。
サイボウズはkintoneそのものを販売するだけでなく、業務改善を支援する「kintoneエコシステム」の拡大にも同時に力を入れています。 kintoneエコシステムでは多くのパートナーや開発者が、プラグイン・連携サービス・構築支援・人材育成などのサービスを展開しています。
現在、kintoneには200種類以上の拡張機能・連携サービスが存在します。 私たちkintone DXチームはこのようなエコシステムで活躍する開発者の支援を行っています。
kintone DXチームのビジョン・コンセプト
kintone DXチームでは、以下の1つのミッションと4つのコンセプトを掲げて活動をしています。
ビジョン
Provide a better Developer eXperience to kintone developers.
(エコシステム開発者によりよい開発者体験を提供する)
コンセプト
- Adaptable to change: Make the developer's product more Adaptable to change
(エコシステムのプロダクトをより変化に強くする) - Better Quality: Make the developer's product Better Quality
(エコシステムのプロダクトがより高品質に開発できるようにする) - Comfortable: Developers can feel Comfortable with their development
(エコシステムの開発者がより快適に開発できるようにする) - Possibility: Developers can get more Possibilities to create features
(エコシステムの開発者がより多くの機能を開発できる可能性を提供する)
kintone DXチームのプロダクト
上記のビジョンを実現するため、kintone DXチームでは以下の2つのプロダクトをメインに開発しています。
- kintone/js-sdk
- kintone/cli-kintone
kintone/js-sdk
kintoneのプラグイン/カスタマイズ/連携サービスなどの開発を支援するライブラリ・ツール群です。
GitHub上ではkintone/js-sdk
のMonorepoで開発しています。
現在は以下の8つのnpmパッケージを提供しています。
名前 | 概要 |
---|---|
rest-api-client | kintone REST APIのクライアントライブラリ |
customize-uploader | kintone カスタマイズのアップロードツール |
plugin-manifest-validator | kintone プラグインのマニフェストファイル(manifest.json )のバリデーションツール |
create-plugin | kintone プラグインプロジェクトの生成ツール |
plugin-packer | kintone プラグインのプロジェクトからプラグインファイルを生成するツール |
webpack-plugin-kintone-plugin | プロジェクトビルド時に自動的にプラグインファイルを生成するためのwebpackプラグイン |
plugin-uploader | kintone プラグインのアップロードツール |
dts-gen | kintoneアプリの型定義ファイル(.d.ts )生成ツール |
js-sdkの開発については以下のブログも合わせてお読みいただければと思います。
cli-kintone (v1)
kintoneからレコードをエクスポート/インポートするためのコマンドラインツールです。
レコードのバックアップや他サービスとの連携などに利用できます。
./cli-kintone record import --base-url https://sample.cybozu.com --app 123 \ --api-token $API_TOKEN \ --file-path ./records.csv [2023-02-01T06:12:06.505Z] INFO: Starting to import records... [2023-02-01T06:12:07.751Z] INFO: Imported 2 records successfully
2022年10月にv1.0.0をリリースし、それ以降も継続的に新機能開発や不具合修正をしています。
Go言語で開発されていた旧バージョン(v0)は2023年10月にメンテナンス終了となります。
利用ライブラリへのOSSコントリビューション
kintone DXチームではOSSコントリビューションも積極的に行っています。
利用しているOSSで問題・改善点があった場合は、業務時間内で不具合報告や機能の提案、Pull Requestの作成を行っています。
実際のコントリビューションを2つ紹介します。
1. yargs/yargs#2269
YargsはNode.jsのプログラムでコマンドライン引数を簡単に処理するためのライブラリです。
kintone DXチームではcli-kintoneのコマンドライン引数の処理に利用しています。
このPull Requestでは、Yargsの生成するスクリプトを用いてzshの補完機能を使った際に、一部のオプションが正しく表示されない挙動を修正しました。
2. axios/axios#5614
AxiosはNode.js/ブラウザで利用できるPromiseベースのHTTPクライアントライブラリです。
kintone DXチームでは@kintone/rest-api-clientの内部で利用しています。
このIssueでは、認証プロキシのユーザ名・パスワードに空文字列を指定した場合に、内部で意図しない実行時エラーが発生することを報告しています。
メンバー
kintone DXチームは現在4名で活動しています。
kintone DXチームではスクラム開発を採用しており、1週間スプリントで活動しています。
スプリント期間内はバックログアイテムのリファインメントや実装を行い、スプリント最終日にはリリースを行います。
また、開発以外にもGitHub Issuesやサポート窓口から報告された不具合や機能提案などにも対応します。
これらの情報はリファインメントや新規機能の検討の参考にしています。
kintone DXチームではこれらの作業を全てチーム内で行っています。
少人数のチームのため、メンバー全員がフットワーク軽く開発に取り組んでいます。
グローバルチーム化と英語コミュニケーションについて
kintone DXチームでは2022年10月にベトナムメンバーを受け入れました。
以降、英語をチームの第一言語として活動しています。
最初はお互いの英語がほとんど聞き取れず、社内のコミュニケータ(通訳)に同席してもらったり、テキストコミュニケーションを併用したりして業務を進めていました。
しかし、英語でのコミュニケーションを続けるうちに、次第に英語で業務を進められる割合が増えてきました。
現在はメンバーの英語学習の成果もあり、ほとんどトラブルなく英語で活動ができています。
英語公用語化の背景や具体的な取り組みについては以下のスライドをご覧ください。
また2022年12月には日本メンバーがベトナムオフィスへ出張し、チームビルディングやベトナム社員へのDXチームの紹介などを行いました。
滞在期間中に文化的な違いを知ることで相互理解も深まりました。
これからの活動について
kintone DXチームは現在、cli-kintoneの開発に注力しています。
リリース後にいただいた多くのフィードバックから以下の機能を開発中です。
- パフォーマンス改善
- リソースの限られた環境でも実行できるようになります
- ログ・エラーメッセージ改善
- 利用時の動作確認や異常発生時のデバックが簡単になります
- ドキュメントサイト公開
- 利用方法・仕様などの一次情報を閲覧できるようになる予定です
また、今後も効率的かつ安全に開発を進めるため、以下の取り組みも進行中です。
- テスト戦略の策定・自動テストの拡充
- ES Modulesへの移行
- Yarn 1から別のパッケージマネージャへの移行
js-sdkの改善や、新規パッケージの検討も並行して進めております!
まとめ
kintone DXチームでは、今後もエコシステム開発者の皆さんがより気持ちよく、より安心して開発できるような取り組みを進めていきます。
js-sdk/cli-kintoneへのフィードバックはGitHubのIssueでいつでも受け付けております。
Issueからバグ修正・機能改善に繋がることも多いため、皆さんのご意見・ご要望をお待ちしております。
- js-sdk: https://github.com/kintone/js-sdk/issues
- cli-kintone: https://github.com/kintone/cli-kintone/issues
- 日本語での問い合わせ: https://github.com/kintone/js-sdk-ja/issues