「ワーキング・グループ」とは、メンバーが自分の興味・関心がある技術や、社内の改善点について提案すると、日々の業務時間内でその研究・議論を行うプロジェクトチームをつくることができる、「OPEN & FLAT」を掲げるユニークビジョンで大事にしている取り組みの一つです。
事業企画や採用・広報など、普通の会社だったらそれぞれの部署がありますが、ワーキング・グループとしてチームができることで、「部署が無い=固定した役職者を作る必要が無い」ため、組織がフラットになり、”偉い人”が生まれない仕組みになっています。
”偉い人”がいない、良いことを言う人の意見がフラットに取り上げられる環境を作ることで、メンバー全員がオープンに課題にフォーカスした発言をできるようになり、ボトムアップで会社全体のパフォーマンスが最大化されると考えています。
***************************************
今回は、わたくしベルーガがユニークビジョンのワーキング・グループの1つ、DevOpsチームについてご紹介します!
今回インタビューするDevOpsチームは品質の高いサービスを早く届けるために活動しているチームです。
ーまず、「DevOps」とはどういったものなのでしょうか?
岩谷:DevOpsというのは、開発(Dev)と運用(Ops)が協力して、場合によっては一つのチームで業務を進めることで、ユーザーに迅速かつ確実にアプリケーションを届けるための開発手法です。
リリース頻度を上げるとそれに比例してバグが発生する可能性も上がっていきますが、DevOpsを推進していくことでリリース頻度を上げながらも品質を高く維持することが可能になります。
ユニークビジョンでは、開発をサポートする方法論やツールを提供するチームとして存在しています。
ーチームの発足経緯について教えてください。
青柳:ユニークビジョンではもともと開発と運用を明確に連携しようとはしていませんでした。しかしDevOpsの運用に成功している会社で、リリースの頻度がとても高くできているという話をよく耳にするようになりました。それと同時にDevOpsの考え方を用いた良い運用も、世の中にはたくさん出てきていたんです。リリース頻度の向上はユニークビジョンでも常々目標としている課題だったので、ユニークビジョンに合ったDevOps的な開発手法を考えていくチームを発足することになりました。
ー具体的にはどんな取り組みをしているのでしょうか。
青柳:主には自動的にテスト・デプロイ・リリースをするための仕組みであるCI/CD(Continuous Integration/Continuous Delivery:継続的インテグレーション/継続的デリバリー)の導入を進めています。
ユニークビジョンでは手順が属人的だったり、無駄な工数を使っていたりしていたので、そういった問題を改善するべく取り入れ始めました。
DevOpsチーム主導でCI/CDを全プロジェクトに導入することには、1年ほどの試行錯誤を重ね苦労しました。しかし、いいものを早く届けられるように改善を重ねているので、最近では安定して使える状態になっています。
岩谷:CI/CDが遅くなったり、止まったりするようなことがあれば開発業務に支障をきたしますし、全プロジェクトから一気に苦情が来るので、安定性はかなり重要ですし、気は抜けないですね。(笑)DevOpsチームの3人は開発メンバーとして参加しているプロジェクトが分散しているので、広くいろんなチームの言葉が拾えていると思います。CI/CDでトラブルがあるとエンジニアの仕事が進まなくなってしまうのでプレッシャーを感じますが、たくさん意見をもらえるのは会社全体からの期待値が上がっている証拠だと感じて日々取り組んでいます。
トゥオン:ユニークビジョンでは、各プロジェクトはソースコードだけでなくタスクや進捗の管理もGitLabで行なっています。GitLabには便利が機能がたくさんあるのでもっと活用してもらえたらと思い、毎週月曜日の全社朝会の中で「GitLabニュース」と称してGitLabの様々な機能を紹介しています。その中ではマイルストーンやタイムトラッキング、ラベルなどについて紹介し、その後いくつかのプロジェクトで使ってもらえるようになりました。ここで紹介した機能を活用してもらうことで自動集計されて、ディレクターが何もせずとも進捗や状況を管理しやすくなるツールも作りはじめています。
ー今期はどんな活動を行なっていたのでしょうか?
青柳:今期はCI/CDの高速化や、Rustのビルド高速化、自動テスト普及のためのカバレッジ率の可視化などに取り組んでいました。また、品質向上チームやレビュー改善チームから数値の集計や可視化についての依頼を受けるなど、他のワーキンググループとの連携も多いです。今期では、品質向上チームで指標を立てている開発生産性を自動集計するツールの開発も行なっていました。GitLabから数値を取ってきて各プロジェクトに共有したりグラフ化したりなど、エンジニアではないディレクターにも分かりやすいよう気をつけています。
岩谷:「品質の高いものを早く届ける」というDevOpsの根幹的な考えを加速させていくために、様々なツールやテンプレートをDevOpsチーム主導で作り、各プロジェクトに使ってもらっています。それにより社内でツールなどが統一できているのは嬉しいですね。
最近では画面側のテストまで含めた自動テストを各プロジェクトに導入しました。しかし、自動テストのテストケースはまだ書きづらく工数がかかってしまうので、あまり使われていないのが現状です。テストの工数でいかに人の手を減らして効率良くすることができるか、というのはDevOpsチームの大きな課題ですね。書きやすいテストツールやテンプレートを充実して普及させ、早ければ今期中にでも解決していきたいと思っています。
トゥオン:そうですね、実はツールの作成や導入はDevOpsチーム主導で行なっているものの、それを使うかどうかは今の所プロジェクト次第になっているんです。もちろんあった方がいいと思って提供しているツールなので、どうしたらもっと使ってもらえるかを考えないといけないなと思っています。
そこで、各プロジェクトに入った自動テストがシステム全体のどのくらいのロジックをカバーできているか、というカバレッジ率を今期は追っています。現状を知った上で、どこからアクションをとっていくかをチーム内で検討しています。
せっかくCI/CDを導入してもテスト作成のフェーズが改善していかないと全体が改善していかないですし、また全社で考えていけたらもっと早く進められると思うので、声をかけながら進めていっています。
ーDevOpsチームとして思うことや今後の展望を教えてください。
トゥオン:今のDevOpsチームでは主にCI/CDに注力していますが、DevOpsはCI/CDだけでなくもっと広い範囲で、もっとできることがたくさんあります。まだまだ知らないこともあるので、興味を持ちながら常に勉強していかないといけない分野だなと思っています。広い範囲で活動していくためにも、もっとメンバーがいてもいいのかもしれないですね。
青柳:今後の展望としては、やはりリリース頻度を上げたいですね。1日で数回リリースできる状態を実現できるよう、まずは1日1回リリースを来年中に目指す目標として動いています。CI/CDの導入は完了したので次の課題はまずテストです。先ほどもあったように、自動テストでのカバレッジ率向上のため、現状の把握に取り組んでいます。
DevOpsは世の中ではまだ思想的な部分が多いのですが、きちんと運用できているところはリリース頻度に反映されているなと思います。質も頻度も高く、安定してリリースができるようになっていけばビジネスとしてもインパクトはありますし、会社の価値もますます上がっていくと思うので、大事な目標だと考えています。
岩谷:DevOpsチーム主導で導入してきたCI/CDが、今では社内のエンジニアにとっては存在することが常識という感覚になってきています。先日もランナーを増強して早くなったことで、たくさん喜びの声をいただきました。良い点も悪い点も意見をもらっていく中で、社内のインフラとなっていることを実感し、一日も早く反映させていかなければという責任感がますます出てきています。
DevOpsの根幹は仕事の効率化であり、いかに自動化していけるか、というところだと思っています。今はDevOpsチームが主導して動いていますが、皆がDevOps的な観点を意識して、効率の悪い部分には疑問を持ち、改善を重ねていける環境が理想ですね。そのためにも、引き続き先陣を切ってDevOpsの推進や啓蒙活動を進めていきたいと思います!
***************************************
ユニークビジョンでは、DevOpsチーム主導で開発の可視化、効率化を進めています。チームの活動に興味を持たれた方は是非ご応募ください!