コラム

2022/12/21

【イベントレポート】エイチーム×サイボウズ エンジニア交換留学の経験を通じて得た学びと気づき

【イベントレポート】エイチーム×サイボウズ エンジニア交換留学の経験を通じて得た学びと気づき

 エンジニアの文化交流を目的に、エイチームとサイボウズが在籍型出向でエンジニアを交換留学する取り組みを実施しました。この取り組みは、「学び続ける」文化のもと、外部環境で新たな知識や経験を得ることで技術スキルの向上やキャリアアップにつなげるとともに、得た知識や経験を自社に持ち帰ることで、サービス品質の向上につなげることを狙いとしています。
 本記事では、11月25日(金)に実施した交換留学を振り返るイベント「交換留学パネルディスカッション」のレポートをご紹介します。

▼イベント詳細
https://www.a-tm.co.jp/recruit/news/36778/

エイチーム×サイボウズ エンジニア交換留学について

 2022年10月1日~31日の1ヵ月にわたり、エイチーム×サイボウズのエンジニアたちによる交換留学を実施しました。エイチームの「学び続ける」文化のもと、外部環境で新たな知識や経験を得ることで技術スキルの向上やキャリアアップにつなげるとともに、得た知識や経験を自社に持ち帰ることで、サービス品質の向上につなげます。エイチームからは1名、サイボウズからは3名が交換留学に参加しました。
https://www.a-tm.co.jp/news/34656/

第1部:交換留学の起案の背景と経緯(起案者による対談)

田又 利土 (Twitter:@chimame_rt)
株式会社エイチームライフデザイン 技術開発室 リードエンジニア
2017年に中途としてエイチームフィナジーに入社。バックエンドからフロントエンドすべての領域で開発を担当。同社のCTO室 室長として全体の導入技術や施策などを一手に担い、エンジニアリングで経営および事業へコミット。2022年の事業・組織再編を経てエイチームライフデザインに所属し、現在は開発現場に復帰、エッジからサーバサイドまで幅広く開発。
岡田 勇樹 (Twitter:@y_okady)
サイボウズ株式会社 開発本部 副本部長
2007年サイボウズ株式会社に新卒入社。Webエンジニアとして「サイボウズOffice」や「kintone」などの製品開発を担当。2014年にUターンで地元・大阪の開発拠点立ち上げ、念願だった大阪生活を満喫。2018年から開発副本部長として開発組織全体のマネジメントに従事し、現在は外国籍エンジニアの採用や英語でのチーム開発など開発組織のグローバル化にチャレンジしている。

そもそも、この交換留学は何を目指したのか。目的と背景は?

岡田
サイボウズとエイチーム、事業内容が全く違います。もちろん、企業文化や組織文化、開発体制も違います。サイボウズのエンジニアが出向く、エイチームのエンジニアを受け入れる。それによって、自分たちが普段見ている景色とは全然違うものが見えてくるだろうと感じました。留学に行く人も、留学生を受け入れるチームも、自分たちの会社の当たり前を自覚して、また他社のやり方を体験して知ることで、新たな発見があるだろうと感じました。

田又
そのとおりで、自分たちにないものを、そして自分たちの会社にないものを、外に行って習得して欲しいという狙いがありました。新しい環境に触れることで、個人としてもエンジニアとしても成長してもらいたい。反対に、受け入れるチームは、他社の文化を受け入れることで、自分たちにないものに触れて、刺激を受けてもらいたかったですね。

さらにもう1つ。「飽き」からくるマンネリの解消という狙いもあります。僕だけじゃないと思いますが、同じことをずっとやっていると飽きてしまうんです。入社して3年目までは真新しい環境で、知らないことも多く、刺激があって楽しい。しかし、何年か経つと、慣れてきて、刺激がなくなり、マンネリ化する。だからこそ、外に行って、違う雰囲気を感じてもらいたいなと思いました。

何がキッカケでサイボウズ×エイチームでの交換留学の実施に至ったのか

田又
きっかけは、これ(下記画像)なんですよね。Twitter上で僕と岡田さんのやり取りから、交換留学の起案が始まりましたね。

岡田
noteに投稿した「kintoneってどんな体制で開発してるの?」という記事をTwitterでシェアしたところ、田又さんからリプライしてもらったことが始まりでした。このnoteの記事では、kintoneの開発チームについてご紹介しています。当時、kintoneチームでは採用強化に取り組んでいた時期で、kintoneやサイボウズに興味を持っている方に開発体制などを説明しようという意図でした。

そうしたら、田又さんから反応していただき、予想外の展開に発展しました(笑)

田又
このTwitterのやり取り前から岡田さんとは個人的に交流があって、たまたま僕のタイムラインに流れてきたんです。僕自身はサイボウズさんとは仕事をしたことがなかったので、どんな感じの開発体制なのか、具体的な開発手法とか、気になりまして。この企画が実現できたら、「僕が公式にサイボウズに行ける」なんて想像して楽しくなりました。

具体的に社内調整をどう進めたのか。また、参加メンバーの募集について

田又
まずは社内で連携を取る前に、この交換留学の目的をはっきりさせることに取り掛かりました。会社で取り組むことなので、社内の理解を得ること、経営陣から応援してもらえる取り組みにすること。そして社内の関係者から協力を得るために、この「目的」をぶらさないことが大切だと思いました。

岡田
企画の当初は、本人が「行きたい!」と言えば、特に問題なく進むと思っていました。しかし、今振り返ると、情報やセキュリティの取り扱い、契約面の調整、人事制度の問題など、考慮すべき点はありました。そのため、普段から業務委託や出向契約などの経験があれば、準備・検討すること、リスクへの対応も想定できたのではないかと思います。

田又
もう1つ、懸念として想定されたものとして「転職」があります。交換留学によって他社の環境を知り、その人が会社を離れるきっかけを作ってしまうのではないか。これについては、考え方の問題だと思います。交換留学を経て戻ってきて、他社の良いものを取り入れつつ、自社の良い点を再認識してアップデートしていく。もし戻ってきて、会社から離れてしまったとしたら「もっと良い会社にしないとね」と、前向きに捉えて考える。この考え方で経営陣や人事部門の理解を得ようと試みました。

岡田
企画を通すための社内調整については、それほど苦労はありませんでした。サイボウズには、熱意を持った人が周囲から助言をもらいながら責任を持って進めるという社風があります。そのため、企画そのものに対してのハードルは高くありませんでした。

ただ、やるからには、たくさんの人たちに共感してもらって、興味を持ってもらうことが必要だと思いました。ボトムアップの文化なため、「ぜひ行ってきてよ!」というコミュニケーションではなく、エンジニアの皆さんから「行きたい!」と声が上がり、希望者が集まるかどうかがポイントでした。そして、受け入れられるチームがあるか、賛同が得られるか。その点において、企画を成り立たせるために、社内にしっかり説明をしていくコミュニケーションが必要でした。そうした苦労はありましたね。

田又
そんな苦労があったんですね。サイボウズさんに関しては、受け入れチームも、行きたいという人も、予想を裏切って多い印象でした。サイボウズさんからは4名が立候補して、エイチーム側の受け入れ体制の問題もあって、結果的には3名を受け入れさせてもらいました。

岡田
そうですね、予想以上の人数から手が上がったのは嬉しかったです。この企画を推進してくれた社内メンバーの働きかけも大きかったです。ただ社内にアナウンスするだけではなく、例えば1on1の場での会話したり、それぞれのチームに個別でお話しさせてもらったり、そうしたコミュニケーションによって、少しずつ興味を持ってくれたんだと思います。

田又
エイチームの場合は、社内の承認を取るのに苦労しました。グループの経営会議で議題に出して、経営陣に説明して合意をもらったり、人事部門との調整などです。契約締結などのフェーズまでいけば人事部門で担当してもらったので特に行動していませんが、やはり契約は色々と苦労をかけました。

交換留学の希望者や受け入れチームの調整についてはスムーズだったと思います。開発体制に余裕があるわけではありませんが、受け入れるために開発チームに声をかけると「企画の意図も理解できるし、取り組みにも共感できるからぜひ受け入れてみるよ」と協力的でした。

一方で、留学に行く人を選ぶことは悩ましかったです。広く公募するとたくさん手が挙がることは予想されましたが、選考の設計が難しいという点がありました。初回の試みということもありますが、この経験を社内に還元できそうな人でありながら、留学先のサイボウズさんにも良い影響を与えられそうな人。当初設定した交換留学の目的を達成するためには、誰が行くのが望ましいのかを考える必要がありました。

岡田
誰が行くかは重要ですよね。目的を達成するために定めた要件の中に、入社して何年目とかも議論しました。しっかりナレッジやノウハウを持ち帰り、留学先にもちゃんと置き土産を残していける人。お互いに刺激を与え合える人であることが大切だと考えました。そうでないと、交換留学の目的は達成されませんから。

第2部:交換留学を実施して見えた自社・他社・自分自身の気づき(交換留学生たちによる対談)

上島 愛史 (Twitter:@aiji42_dev)
株式会社エイチームライフデザイン 技術開発室 リードエンジニア
2014年に新卒としてエイチームに入社。直近はRemixでのサービス開発などフロントエンドや、Cloudflare WorkersなどのCDNエッジ領域の業務に従事している。サイボウズへの交換留学でフロリアチームでの業務を経験。
植村 誠  (Twitter:@mktu13)
サイボウズ株式会社 開発本部 kintone開発 フルスタックエンジニア
2022年3月にサイボウズにキャリア入社。サイボウズではkintoneのアプリ設定領域の新機能開発に従事しており、フロントエンド・サーバーサイドを担当。エイチームでは統合メディア(現イーデス)のSEO施策を推進するチームのフロントエンドとサーバーサイドの開発を経験。
内山 武尊
サイボウズ株式会社 開発本部 kintone開発 フルスタックエンジニア
2018年に新卒でサイボウズ株式会社に入社。4年間kintone開発の機能開発チームでプログラマーとして機能開発や不具合修正を担当。現在は採用業務やメンバーとの1on1を実施している。エイチームでは、引越し侍の開発に携わる。

それぞれの留学先でどのような仕事を担当したのか。普段の仕事との違いは?

上島
僕は今回、サイボウズのフロリアチームに交換留学に行ってきました。kintoneのフロントエンドリアーキテクチャプロジェクト、通称「フロリア」を推進するチームです。1ヵ月間でフロリア内の2つのチームを経験させてもらいました。

最初のチームでは、主にテストコードを書くことが多く、普段の通常の開発業務と近かったですね。印象的だったのは、チーム参加時のオンボーディングはじめ、様々な仕様書やテストケースがドキュメント化されていたことです。僕たちが所属しているエイチームの開発組織では、仕様書やテストケースがドキュメント化されていなくて、個人の力量でなんとか担保されていることが少なくありません。こうしたドキュメント文化が特に印象的でした。

また、QA(品質保証/Quality Assurance)の方がチーム内にいたことも新鮮でした。エンタメを除くライフスタイルサポート事業ではQA担当があまりいないので、一緒に働けるのは嬉しいですね。

2つ目のチームでは、PoC(Proof of Concept)開発を担当しました。本格的なシステム開発の前に行う技術検証する役割です。毎週月曜日に検証や調査のための「もくもく会」があって、時間を確保して新しい挑戦に取り組む開発体制が刺激的でした。

内山
そうですね、おっしゃる通りサイボウズにはドキュメント文化が根付いていると思います。自分も入社した時点でドキュメント化されていたので、自ずとドキュメントを書くのが日常の業務でも当たり前になっていました。また、機能開発のプロセスに仕様書の変更タスクが含まれているので、情報の鮮度が落ちていないかなど、意識的に更新の運用を心がけています。

自分は「引越し侍」の開発チームに交換留学しました。「引越し侍」には、一括で引越しの見積もりを比較するサービスとネットで引越しの見積もりを比較するサービスがあります。また、新規サービスとして、引越し業者選びをインターネット上で完結できる新たなプロダクトがあり、この新規開発チームに参加しました。ここでは、GraphQLやReact.jsなどのモダンな技術構成で開発に取り組みました。最後の1週間で新規サービス開発以外にも携わらせてもらいました。

サイボウズのkintoneの機能開発チームでは、主にモブプロ(モブプログラミング)を導入して開発するため、複数人でコミュニケーションを取りながらプログラミングしていきます。一方で留学先のエイチームの開発チームでは、一人で開発を進めて、チーム内でコードレビューしてもらうという体制でした。サイボウズに入社する前は個人開発の経験があったため、初体験ではなかったのですが、サイボウズではモブプロが主流なため、久しぶりの個人での開発でした。

しかし、今回の経験を通して、サイボウズでもタスクによっては個人での開発、難易度に応じてモブプロで開発するなど、開発手法を使い分けるのも、新しい挑戦として取り組んでもよいのではと感じました。

植村
エイチームの新しい統合メディア(現「イーデス」)のSEO施策を推進する開発チームで主に機能開発を担当しました。前半の2週間は開発タスクを割り振ってもらい、実装からリリースまで経験させてもらいました。リリース業務は想定外で、「ここまでやっていいんだ」と思いました(笑)。

後半の2週間では開発タスクをこなしつつ、サイボウズでの開発手法や技術文化などを共有し、実際にエイチームの開発チームでもサイボウズ式の振り返りを実践しました。

サイボウズとの違いとしては、1つのプロダクトに関わる人数と職種の幅の違いです。エイチームは、運営するサービスも多く、それぞれのサービスの運営体制が少人数精鋭という組織。そのため、開発における一人当たりの対応範囲が広く裁量も大きいという印象です。サイボウズは、kintoneという1つのプロダクトに関わる人数も職種も多い。サービスの特性もあるかと思いますが、そうした違いは感じました。

留学先では具体的にどんな技術に触れたのか。普段との違いは?

上島
フロントエンドはReactで書かれていたので通常の業務との違いはありませんでしたが、テストのところでJavaを書きました。仕事でもプライベートでも経験上、Javaを書いたことも触ったこともなかったので手探りでやっていきました。しかし、歴代のコードがあって、メンテナンスもされていたので、なんとかついていくことができました。Closure Libraryも初めて触りました。

植村
フロントエンドではReactとNext.jsで書かれていて、そこを改修させてもらうことが多かったです。サーバサイドでは、RubyとRuby on Railsで、これまで触ったことがなかったものの、書き方含めていろいろ教えてもらいながら開発しました。レビューをしっかり行ってもらえたのも大きかったです。コードを書いて、ロジック的に問題ないかという観点、書き方的なところで「この書き方のほうがいいよ」など、保守性の観点でもアドバイスをもらいました。とても勉強になりました。

内山
普段の業務とはまったく違う技術でした。先ほどの上島さんのお話しの通り、kintone開発チームでは、サーバはjavaで、ライブラリだとClosure Libraryを使っています。引越し侍の新規開発チームでは、フロントエンドはReactで、サーバサイドはGoでした。

キャッチアップの観点では苦労はありませんでした。最初のタスクをモブプロで一緒に開発したので、わからないことを聞きながら、進めることができました。

田又
留学先で、まったく違う技術スタックで開発する可能性もあるので、実際に困った点などはあったかと思い聞いてみましたが、皆さん問題なく開発できたようですね。

岡田
皆さんのお話は、会社や組織にとっての新たな気づきでもあると感じました。エンジニアの採用活動において、自社で導入している技術を経験している人を採用しがちです。また一方で、応募する側のエンジニアの方々も、経験したことがない技術には躊躇しがちだと思います。

今回の1ヵ月間の交換留学では、異なる技術環境で、未経験であっても、お互いの準備とスタンスによっては十分やっていけるということが証明されたと思います。今後の採用や組織開発にもぜひ生かしていきたいです。

留学先企業の改善点は? ぜひ、アドバイスを。

植村
先ほど、留学先の開発チームで、サイボウズでの振り返りを試みたお話をしました。振り返りそのものは1回やりましたが、1回限りで終わるのではなく、週1回など、振り返り&改善をサイクルで回していけると、より効果的でよいと感じました。

上島
僕もサイボウズの開発チームに留学して同じことを感じました。僕たちは、振り返りについて、計画的にスプリントまわして、改善していくのは弱いです。今後、社内の開発チームでも改善を検討していきたいと思います。

内山
エイチームは、少人数精鋭チームで開発を進めていくため、個人の裁量が大きい分、属人化の傾向が強いとも感じました。ドキュメントもないので、わからないことがあれば特定の人に聞きに行く。チームを抜けにくいし、休みづらい側面もあるのではと思いました。

しかし、自分の留学先である引越し侍の新規開発チームは、こうした問題意識が強く、モブプロを普及させていこうとか、これから改善していこうという雰囲気でした。そうした瞬間に立ち会えたのはありがたい経験でした。

上島
PaaSであるkintoneはとても大きなプロダクトですし、多くの人たちがサービスに関わっています。toB向けというサービス特性もありますが、開発物がリリースされるまで、思った以上に時間がかかるという印象でした。

そのため、エイチームとサイボウズの開発スタイルの大きな違いとして「スピード感」が挙げられます。リリースのサイクルもですが、開発の計画を立てる段階からかなり余裕をもって予定を立てています。もちろんそれはとても良いことで、エンジニアが伸び伸びと開発できるし、様々なリスクに備えることもできます。

しかし、新卒から8年近くエイチームの環境で働いている僕からは、誤解を恐れずに言うと、「体がなまっている」という感じがしました。先ほどの通り、少人数の開発チームですし、早く開発して、早くリリースして、ユーザーの反応を見て速やかに改善する。まるでサバイバルのような、この開発環境で働いていると、とにかくスピードが求められます。そのため、日々「成長しなきゃ」という危機感を抱いて仕事をしています。改善すべき点というより、会社の文化や風土の違いという点で、印象的でしたね。

岡田
その言葉が欲しかった!(笑)
この交換留学をやりたいと思った理由の1つに、サイボウズにはスピード感が足りないという課題感がありました。サービスの特性上、そうした開発スタイルになりがちではありますが、15年前に僕がサイボウズに入社したころと比べても、スピード感は少しずつ落ちてきている。そして、最近入社した方々にはとっては、その課題に気づきづらい。こうした気づきを与えてもらえて本当にありがたいです。

田又
確かに、サイボウズはtoB向けのプロダクトなので、安心・安全、品質が大切で、そのためには大きくバッファーを取ってリスクに備えたりする。そうした背景から開発文化が生まれてくるのもよくわかります。

エイチームは少人数精鋭チームによるスピード感が強みで、サイボウズは振り返りの文化が組織の強み。こうしたそれぞれの強みを再認識できたのはよかったです。

自分自身に何か変化はあったか? 学びや気づきは?

上島
交換留学を経験して、自信がつきました。僕はエイチームに入社して約8年間、ずっと同じ会社にいるわけで、エイチーム以外で働いた経験がありません。業界での自分の立ち位置、スキル基準、業務内容のレベル感など、他と比較できる機会がありませんでした。

サイボウズの開発チームで働かせてもらって学ぶべきことはたくさんありました。それと同じくらい「まだまだ、自分も外で戦える」という自信にもつながりました。

また、サイボウズの皆さんは17時くらいになるとだいたい業務を終えて、勉強会などの自己研鑽に励みます。自分で自制して、この時間を自己研鑽に充てようとか、時間の使い方を工夫している。少しずつ、そうした心の切り替え方も学べたような気がします。

内山
スピード感を意識するようになりました。kintone開発チームは4名でモブプロします。1つの機能を4人が同じ時間を使って開発する。結構リッチな体制でした。交換留学を経て、一人で扱えそうなところは積極的に一人で取り組んでみるなど、以前よりは意識するようになりました。

また、kintoneの開発ではモダンな技術を採用していないので、これまでモダンな技術のキャッチアップが疎かになっていました。この留学を機に、技術のキャッチアップを積極的にやるようになりました。

植村
技術的な知識量については、1ヵ月という短い期間ではありましたが、身につくものが多かったです。また、別の観点として、今まで自社で何気なくやっていたことが、実はとても大きな意味があるということが、他社の環境に触れることで見えてきました。

kintoneは歴史が古く、コードも複雑です。だからこそ、ドキュメントが必要で、コードを書いているうちにミスが起きないようにモブプロが取り入れられている。交換留学から戻ってきて、エイチームとサイボウズの両方の開発環境を体験したからこそ、これまで取り組んできたことが必要だったということに改めて気づかされました。

エンジニア交換留学パネルディスカッションを終えて

田又
今回、エイチームとサイボウズで交換留学という取り組みに挑戦してみましたが、この取り組みは2社間に限定されるものでもないと思っています。こうした企業間の交流の輪がもっと広がればよいと思っています。エンジニア同士に限らず、その他の職種でもぜひ取り組んでみても面白いかもしれません。

今日の皆さんのお話を聞いて、楽しみつつも新たなな学びと気づきもあったようで、実施してよかったと思います。

最後に、起案メンバー+交換留学生+パネルディスカッション運営チームで記念撮影!

このエントリーをはてなブックマークに追加