• 株式会社ウエディングパーク
  • メディア開発本部 システムエンジニア
  • 小山 翔平

SVNを捨てGitへ!「GitLab」を社内に浸透させた方法と、移行によるメリットとは?

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

今回のソリューション:【GitLab/ギットラボ】

〜ソースコードのバージョン管理をSVNからGitLabへ移行し、コードの品質向上、開発者のスキルアップに成功した事例〜

結婚式場の日本最大級のクチコミサイト「ウエディングパーク」を運営する株式会社ウエディングパーク。同社では何年も続いていたSVNでのソースコード管理を、Gitベースのレポジトリ管理ツール「GitLab(ギットラボ)」に移行した。

SVNでは並行開発が難しく、コードレビューもPCの画面を直接見てもらうような形式で行っていたことに課題を感じていたためだ。GitLabは自社のサーバー上に構築でき、OSSの開発で定番となった「GitHub」に近い機能やデザインを提供しているため、コードの共有やレビューが気軽に行える。

同社に新卒で入社した栗山 茜さんと小山 翔平さんは、何度も社内勉強会を開催し、ドキュメントを整備することでGitLabを社内に浸透させることに成功した。どのようにしてGitの考え方を浸透させたのか。そして移行により得られたメリットとは。導入を推進したお2人に、詳しいお話を伺った。

GitLab導入を推進したのは、新卒エンジニアのふたり

栗山 私は新卒でウエディングパークに入社し、今はWedTech推進室というアドテクの部署で開発をしています。

弊社のエンジニアは半分ほどが女性なのですが、入社前にシステム部門の女性リーダーと話す機会があったんです。その時に女性のエンジニアって凄くかっこいいなと思ったのと、ウエディングというドメインへの興味から入社を決めました。

栗山 茜さん

小山 私も同じく新卒で、栗山の翌年に入社しました。学生時代にはプログラミングの経験がなかったので、入社して最初の1年半くらいは下積みのような感じでしたね。ウエディング業界はIT化が遅れていると言われていますが、そこに革新をもたらしていけることに魅力を感じています。

小山 弊社では、4ヶ月ほど前にレポジトリ管理ツールの「GitLab(ギットラボ)」を導入しました。その導入から社内に浸透させるまでのプロセスを、私と栗山の2人で進めていきました。

小山 翔平さん

人数が増えSVNの運用が限界に近づき、GitLabを導入

小山 今では弊社のエンジニアも20人近いチームになっていますが、昔はごく少ない人数で開発をしていたので、ソースコードのバージョン管理にはSVNを使っていました。

当時は並行開発がなかったので、SVNでも事足りていたんですね。ただ、新卒の採用が活発になりメンバーが増え、複数のプロジェクトが同時進行するようになると問題が出てきました。

栗山 SVNだとブランチが切れないので、複数の人で開発をすることは難しいんです。それに加えて、レビューをするのも一苦労…。新人を教育するためにもコードレビューを行っていましたが、いちいち新人が先輩の席までPCを持っていって、説明してもらっていたんですよ(笑)。

それは手間だし、なにより気になっている箇所を聞くだけになってしまって、自分の知っている領域でしか質問が出来ないんですよね。そのような時に、GitLabならそういった問題を解決できるのではと考えました。

社内に浸透させるには丁寧な手順書と、「同じ距離感」が重要

栗山 GitLabは、GitHubに似た環境を簡単に構築できるサービスで、弊社ではオンプレミス上に構築しています。GitLabを選んだのは、ソースコードをクラウドに置きたくないということも理由としてはありましたが、一番大きかったのはコストですね。

結構な数のレポジトリを管理しているので、環境さえ構築できればあとは無料で使えるという点がありがたかったです。

小山 新卒のメンバーは業務の経験自体がありませんし、既存メンバーも長い間SVNで開発をしていたので、GitLabを浸透させるためにはかなり時間をかけました。マニュアルも文章だけでなく、SourceTreeの操作画面をキャプチャしたものも用意しました。

導入を担当した私たち自身、Gitの経験が無かったんですよ。だからこそ実務で詰まるポイントもわかりましたし、みんなと同じ距離感で導入を進められたことが成功要因のひとつだったのかなと思います。

Gitの難しい概念も、具体的なメリットを見せながら説明

栗山 実際、Gitの勉強会だけでも20回ほどは実施したと思います。GitはSVNと比べて操作が複雑なので、間違えてコミットしてしまったらどうしたらいいかといった問題を、ケースバイケースでひとつずつ説明していきました。その結果、実際に運用を開始してからは特に問題も起こらず、スムーズに進みましたね。

小山 Gitの概念って、SVNから入ってくると理解するのが難しいですよね。ブランチが複数あったり、ローカルにコミットしたり…。それを理解してもらうためには、事例を交えて説明するのが一番だと思います。

いま弊社では複数のメンバーでひとつのサイトを作っているのですが、リリース後にちょっとしたバグを直したいというケースがよくあります。その時にSVNだと、すでに次のリリース用のコミットが入ってしまってリリースができない、というシチュエーションって多いんですよ。

そのときに、Gitならブランチを切って柔軟にバグ対応が出来るという説明をすると、「ブランチを切れるってメリットなんだ」と理解してもらえます。

レビューによりコード品質が向上し、各メンバーのスキルもアップ

栗山 GitLabのおかげで、サービスの品質は向上しましたね。SVNだと誰の確認もなくコミットが出来てしまいましたが、GitLabのマージリクエスト機能を使えば、簡単にレビューを依頼できます。自分以外の人にコードを確認してもらうフローを導入したことで、品質を担保できるようになりました。

小山 さらに、リリースまでのスピード感も増しました。SVNだと不具合が発生しても次のリリースまで待たないと修正できないという事も多かったです。Gitなら別のブランチで作業してすぐに修正版をリリースできるので、不具合を修正しやすくなりました。

栗山 コードレビューをすることで、当たり前なのですがコード規約や正しい文法に沿った書き方だとか、そういったことを全員が意識するようになりましたね。人にコードを見られることで、気が引き締まりました。

また、とりあえず動くだけのコードではない、より良いコードにするための指摘も貰えるようになりました。同じ機能でも短く書けたり、パフォーマンスが良かったり、そういったひとつ上の視点からのレビューを貰えるようになって、自分自身も成長したと思います。

「技術のウエディングパーク」をつくるための第一歩

小山 私たちは、「技術のウエディングパークをつくる」ということを部門の目標にしています。GitLabの導入によって、技術調査チームのレポジトリを全員で確認したり、そこから今までよりレベルの高い会話が生まれてきているので、目標に近づいてきたかなと思います。

小山 今後はGitLab CIを使ってCIを組み込んだり、HipChatからデプロイするということも試していきたいですね。コードレビューも、新卒の人も含めてみんなに出来るようになってほしいと思います。今後はその観点からも勉強会を開催していって、技術力を高めていきたいですね。(了)

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