見出し画像

サイボウズ社内の開発事例で学ぶ、kintoneカスタマイズのチーム開発 に参加してきました

2024年10月24日(木)サイボウズ東京オフィスにて行われた
「サイボウズ社内の開発事例で学ぶ、kintoneカスタマイズのチーム開発」(タイトル長いw)というkintoneのSIエンジニアを対象とした勉強会に参加してきました。

サイボウズのエンジニアが社内で実際に取り組んだプラグインやカスタマイズ開発事例をもとに、チームで効率的に開発を進めるための開発環境や体制整備について説明します。

参加者募集のページより

Cybozuパートナー向けポータルサイトCyPN Portalなど自社製品向けのシステム開発をしているサイボウズの
システムコンサルティング本部/システムデベロップメント部
の山田さん(新卒3年目、若い✨)が入社されて1年半後の昨年秋、チーム体制が大きく変わり、本格的にチーム開発に取り組む必要が出てきたとのことで取り組んできた「開発の標準化」「開発効率化」についてのお話をしてくださいました。

11月にチーム体制の変更があり、12月から現状整理や課題抽出をして、翌年1月頃には開発環境や体制の整備の動きを開始、約半年で開発の標準化と開発効率化をしたというのだから、行動力がスゴイ!

開発の標準化の3つの観点として、以下を挙げられていました。

  1. コーディング規約の策定

  2. 開発プロセスの標準化

  3. ライブラリの統一

コーディング規約の策定

コーディング規約の策定においては、全てを文書化するのではなく、ESLintやTypeScriptによる自動解析ツールに設定しておけば済む内容や、コードレビューで指摘できるような基礎的な内容については規約に文書化しない、というところが目からウロコでした。(文書化した規約はたったの3つ😳)

コーディング規約を作る、となったら0から全て書かないといけないような気がしていたし、細かく書くとメンテナンスコストもかかるし。
かくいう私も、メンテナンスを怠り形骸化したドキュメントやWikiを数多く残してしまった自覚が・・・(´д`;)
自分の作ったドキュメントは責任持ってメンテナンスしていかないとダメですね。

開発プロセスの標準化

開発プロセスの標準化として、仕様検討段階、開発段階、リリース段階の各工程における使用ツールと施策をご紹介いただきました。
コード管理にはGitHub、クラウドでホストされている開発環境GitHub Codespacesや、CIツールのGitHub Actionsも使っているとのことでした。
便利なツールを上手に使って効率良くやれるように標準化していく過程で、苦戦したこともあるそうです。

既存のシステムやプロセスについて、そのシステムやプロセスになった背景/理由を理解しないまま改善提案を行い、微妙な雰囲気になった。

開発プロセスの標準化を進める際に苦戦したこと

転職して新しいチームに入った私にはめちゃくちゃ耳が痛い話でした。何か運用を変えるような提案をしたい場合も、既存メンバーは理由があってそういう運用をしているのだから、その背景を理解した上で丁寧に話をしていく必要があるということを忘れないようにしないといけませんね。

さらに、「一般的な開発手法に寄せる。『自分が考えた最強のXXX手法』は原則導入しない」というのも納得。一般的な手法はだいたいベストプラクティスだから、とのこと。

ライブラリの統一

ライブラリについては、導入必須と導入推奨に分けているそう。

導入必須
TypeScript, ESLint, Prettier, webpack, @cybozu/eslint-config, @kintone/rest-api-client, @kintone/dts-gen
導入推奨
React, Material UI, immer, use-immer, neverthrow 等々

導入ライブラリ

TypeScriptや@kintone/dts-gen、neverthrowなどを利用して型安全な開発をすることで、バグを減らしたりコードレビュー時の負荷も減らしているとのことで、山田さんは「もはやTypeScriptでないと開発できない」と。
開発効率の上がる手法は私も積極的に取り入れて行きたいです。

質疑応答

最後に質疑応答の時間があったので、コミットメッセージの書き方はどのようにしているか質問しました。

コミットメッセージはConventional Commitsを採用されているとの回答をいただきました。
Semantic Release Botというリリースを自動化するツールがコミットメッセージ規約に基づいてコードの変更内容を解析して、それに応じたリリース内容を出してくれるからだそうです。

Gitを使い始めた頃、何も考えずにポイポイとコミットしていた私に、前職で私を指導してくれた竹内さん(私の開発の師匠)は「コミットメッセージは慎重に、丁寧に」ということを何度も教えてくれました。
嫌がられていたのに、私一人で勝手にコミットメッセージに絵文字を入れていたので、いっぱい絵文字のコミット残してきちゃったのはスミマセン😂(gitmojiの取組み、割と好きなんですけどね)

感想

ほんの数年前に前職でチーム開発についてのことを教えてもらっただけで転職してしまった私なので、一般的な開発手法というのも知らず、今回サイボウズの開発手法を知ることができたのは新たな学びでとても興味深かったです。
会社やチームが変わると開発手法やお作法の違いに戸惑うことも多くありますが、既存の運用を尊重しつつ、よりよい方法を追究して効率よく開発していきたいという気持ちになりました✨️

勉強会を終えて部屋を出たら、同じサイボウズで開催されていた「ノーコード宣言シティーサミット2024」に参加していた、私のkintoneの師匠の片岡さんとジョイゾーのみんなが待っててくれて、感動の再開😭
ゆっくりお話する時間はなかったので、名刺だけお渡ししてCybozu Daysでお会いしましょう、となりました。
皆様、とってもかわいいジョイゾーブースでお待ちしてます🩷

懇親会

サイボウズの勉強会のすごいところは、懇親会がセットになっているところ。
「kintoneカスタマイズで一番苦労した思い出」 というテーマでの3名のLTも聞くことができたのですが、この中でもCrenaの平吹さんがプラグイン改善ストーリーとしてGit運用方法をお話してくれて、懇親会でも新たな学びが。
やっぱり勉強会っていいなあ😊

♨️温泉に行きたくなるようなセット

いいなと思ったら応援しよう!