会社概要

今回ご協力いただいた企業:株式会社じげん
ご協力いただいた方:エンジニア兼VeNtura PM 浅沼 敬、 エンジニア(VeNtura) Vinh Nguyen、フロントエンド 葛西 志恵

はじめに

今回はアルバイトEXをはじめ、数多くのライフイベントにおける最良の意思決定を支援するメディアを運営するじげん様にお話を伺いました。

コードレビューをされたくない、こんなコードはレビューしたくない、から始まった

ー開発の立て直しに浅沼さまが入った頃の事を教えてください
当時、日本とベトナムとの双方が関わるプロジェクトが始まったのですが、GitHub上での共同開発において、両者ともにレビューを嫌がるという事態が発生しました。日本側は規約の不揃いなど可読性の低いソースコードを読むことを嫌がり、ベトナム側は文化的な背景もあり、他者からソースコードを見られることを恥ずかしいと思っていた結果です。そんなことから、開発がスムーズに進まなくなってしまい、早急な立て直しを迫られたというわけです。

それまで、ベトナムでは1プロダクトを1名のエンジニアが担当し、独立して開発をしていました。要件通りにきちんと動くものができていたのですが、それぞれが独自の書き方で開発していて、複数人で1つのプロダクトを開発していくのは難しい状態でした。

一方で日本では日常的にコードレビューを行っていたため、共同開発においてベトナム側のソースコードに対してレビューを行うのですが、そこで色々な障壁にぶつかりました。まず、日本とベトナムとでは少ないながら時差があり、言語が異なります。また、このようにコミュニケーションが取りづらい環境の中で、スタイルの違いなどをいちいち指摘していたのではいくら時間があっても足りないという日本側の主張や、動いているのになぜソースコードを指摘、修正されないといけないのかというベトナム側の主張など、双方ともにレビューをしたがらなくなりました。

そこでスタイルを統一するために、コーディング規約とそれを用いてコードを解析するプログラムのRuboCopをベトナム側に渡してみましたが、きちんと利用されているのかどうか上手く確認できず、効果も感じられませんでした。

また、そもそも文化的な違いとして、ベトナム側では「レビューの意味がない。時間がかかる、コーディングをする時間がとれない」というだけでなく、年下の人にダメ出しをされたくない、コードを見られるのが恥ずかしいなどのレビューに対する感覚の違いもレビューが機能しない大きな要因でした。

Vinhさまと浅沼さま

開発プロセスに組み込んだコーディング規約の管理

ーSideCIの導入について教えてください
RuboCopの実行を指導しても、各自の実行状態・指摘点が見えるように運用できなかったため、コーディング規約についての指摘を日本側で行わなくても良いように、GitHubと連携してこれらを解決できるものがないかということで、ツールを探した結果、SideCIにたどり着きました。SideCIは手軽に始められ、解析時の取得コードの扱いが安全だと判断できたため導入をしました。また信頼という点で、仕様に関する質問を行った際に、すぐに納得感のある回答をもらえたこともポイントでした。その他、GitHubのPR駆動という点で、開発プロセスにそのまま組み込めるという点はとても魅力的でした。

また、導入の効果についてですが、コードを見られるのを恥ずかしがるベトナム側のエンジニアが、指摘が見えるところにあがることによって、今度は逆にコーディング規約が守られていないことを恥ずかしがるようになりました。こういった変化により、ベトナム側においてもスムーズにコーディング規約が守られはじめました。

SideCIでチェックして、スタイルの違いなどのミスがないということがわかってから、日本側でもレビューを行うようになってきました。最初はレビューを恥ずかしがっていたベトナム側ですが、技術的な改善点を知ることができるという期待もあり、レビューを受け入れるようになりました。最近では単純な指摘を行うことはほとんどなく、仕様的にこうしたほうがいいんじゃないかというレベルの話し合いをするようになってきました。

取材風景

エンジニアカルチャーの統一

GitHub、SideCI、Jenkinsなどのツールを導入したことにより、日本とベトナムで同じように開発を進めることが出来るようになりました。

ベトナム側ではコーディング規約が守られることによってメンテナンスしやすくなって、生産性が上がったという実感を持っているため、今ではベトナム内でもコードレビューが日常的に行われています。またチームの状況としても、個々人に任せる範囲、その下のリーダーに任せる範囲が増えて、分業による開発もスムーズにできるようになりました。開発時にも可読性や命名規則、クラスの分け方などレビュー時の視点を考えて開発されるようになっています。

日本側でもコーディング規約が徹底されるようになり、双方の良いところを取り入れたエンジニアカルチャーができあがってきました。ベトナムの開発チームは、現在では欠かすことができないパートナーです。特に海外向けのプロジェクトでは欠かすことができず、英語と日本語、ベトナム語などの多言語が扱えてエンジニアリングもできるという、強力な戦力となっています。

また、日本側ではサーバーサイドのメンバーだけでなく、フロントサイドのメンバーにもSideCIが広がっており、scss-lint を使い始めています。

エントランスにて

今後の展望

SideCIの導入にあたって、 過去分をどうこう言わないように気をつけました。導入後からのコーディングに的を絞って、無理なく運用を続けられるようするという意図です。新規の開発分については、開発プロセスに定着してきたので、再設計・実装を織り込むプロセスをどう作り出すかということをこれから検討していきたいと考えています。
また、今後はその他のプロジェクトにおいても、このようなベトナム側との共同開発を上手く取り入れていければなと思います。

ZIGExNロゴマーク

解析結果まで30秒、
無料でお試しください

SideCIは14日間無料でお試し頂けます。登録開始から約30秒で解析結果が閲覧できます。
また、OSSはすべての機能が無料で無制限にご利用頂けます。

導入事例一覧