ユニークビジョンと青柳氏の紹介

青柳康平氏(以下、青柳):ユニークビジョンのエンジニアリングマネジメントとして、「横軸チームとOKR」という内容で発表します。ユニークビジョンの青柳と申します。

(スライドを示して)ちょうど写真が出てるのが今オフィスの雰囲気で、カフェエリアという、くつろいで仕事ができるゾーンの写真になっているのですが、こんな雰囲気で仕事をしています。

まず、ユニークビジョンと自分の紹介をします。ユニークビジョンという会社はSNSのマーケティング領域でキャンペーンの実施とか、SNSでアカウントを管理するツールなどを提供してる会社です。

全社員は45人で、エンジニアは20人になってます。エンジニアは自社ツールの開発とキャンペーンの案件開発を行っています。

2つのパートナーになっていて、1つはTwitterマーケティングパートナー。これは日本で7社がパートナーになっています。あとはLINEのOMO部門のテクノロジーパートナーになっていて、(この2つのパートナーを)両方持ってる会社は、日本で現在ユニークビジョンだけになります。

自分は取締役CTOをやってます。主に開発をしながら全社の技術方針とかを取りまとめてます。一応、いわゆるプレイングマネージャーみたいな感じでやっています。得意なものは、バックエンド開発とDB設計です。

ユニークビジョンの開発体制

では、ユニークビジョンの開発体制について説明していきます。(スライドを示して)まずこれが全体的な図になります。会社の中で一番重要なのはプロジェクトになっていて、このプロジェクトでは顧客にサービスを提供する開発や先ほどのキャンペーン、あと自社ツールとかを開発しています。あと、(プロジェクトには)全エンジニアがアサインされています。一部独立チームがあり、仕事の忙しさでヘルプをしたりみたいなことをしています。

今回のテーマにある横軸チームですが、弊社では“ワーキンググループ”と呼んでいます。このワーキンググループで何をしてるかと言うと、特定の技術領域の課題解決を行うグループになってます。

プロジェクトの進め方とか、技術的な方針を決定したりしています。ここのチームには関心のあるメンバーとか、あとスキルのあるメンバーがアサインされていて、今12人ぐらいがアサインされています。このプロジェクトをワーキンググループが支える構造になっています。

ここで重要になってくるのは、右側にある「OKRで目標を管理」で、プロジェクトもワーキンググループも、このOKRを使ってどのように進めていくかを決めています。

OKRですが、これは全社、プロジェクト、ワーキンググループ、個人が設定するようになっています。OKR以外の仕事は、基本的にやらないことになってます。四半期ごとに設定しますが、期中でやることが変わったらOKRを変更するような柔軟なことになっています。

OKRのOですが、Objectiveといって高い目標ですね。例えば、プロジェクトとかでどういう高い目標を設定して行うか、個人がどういう目標をするのか、あとワークグループでどういう目標(を設定)するのかを決めて、四半期ごとに行っています。

Objectiveを決めた後、Key Resultsといって、Objectiveを達成するために必要な数値目標を2、3個設定して、2週間ごとに数値を報告するかたちになっています。OKRはGoogleも使ってる目標管理の仕組みになっていて、それを参考にしたかたちになっています。

品質向上ワーキンググループについて

現在、品質向上、レビュー改善、DevOps、セキュリティ、AWSコスト削減、技術勉強会、開発方法論というワーキンググループがあります。今回はこの中の3つについて説明します。

まずは品質向上からです。品質向上ワーキンググループの目的は、プロジェクトの品質向上です。主な活動としては、プロジェクトを7つのフェーズに分解して、必要なドキュメントとか資料とかチェックシートを提供しています。各フェーズごとにレビューを行っています。あと、全体的にそのプロジェクトの開発生産性とか、バグがどれくらい出てるのかの数値情報を提供したりしています。

(スライドを示して)プロジェクト自体は、右側にあるようにキックオフ、基本設計、詳細設計、開発、テスト、リリース判定会議、リリース、振り返りという順番で行っています。いわゆるウォーターフォールですが、このウォーターフォールをそれなりに短い期間で行うことによって、頻繁にリリースしている感じになっています。

品質ワーキンググループの今後の取り組みとしては、生産性を向上させる施策を検討したり、バグを減らすための施策を検討したりという感じになっています。

レビュー改善ワーキンググループについて

次はレビュー改善です。レビュー改善ワーキンググループの目的は、社内のレビュー文化の定着になります。レビューに関してもOKRと同様に、GoogleだったりGitlabをお手本にして進めています。

主な活動としては、Slackを使ったレビューのワークフローを確立していて、すべてのコードを毎日レビューする文化が今はできているようになってます。最近はルーレット機能がリリースできました。(スライドを示して)右側のSlackのワークフローですが、誰に当たるかわかりませんが当たった人にレビューをしてもらうということで、他のプロジェクトの人は何をやってるかとか、コードを見ることによって新しい知識を得たりとか。コードを出す人も、説明することによってわかりやすいコードを書くなど、けっこういろいろとうまく進んでいます。

今後の取り組みとしては、見るコードが多くなってくるとレビューしてもらう人もレビューを出す人も負荷が上がるので、ここをどう軽減していこうかというところ。あと、今は本当にルーレットランダムになってるので、得意・不得意をちょっと考えてレビュワーを選定できるようにしていきたいと考えています。

DevOpsワーキンググループについて

次にDevOpsです。DevOpsワーキンググループは、目的としてはGoogleが提唱するDORA(DevOps Research and Assessment)メトリクスの向上をやっています。このDORAメトリクスは変更のリードタイプ、デプロイ頻度、変更障害率、サービスの復元時間で、この数値を取れてうまくいってるところは非常に生産性が高いといわれています。

主な活動としては、全プロジェクトでCI/CDを導入しました。あとはキャッシュを使ってそのCI/CDの速度を向上させることもやっております。あと、主に新しく始める開発用のひな型などを作成しています。

今後の取り組みとしては、テスト工数の削減、自動テストのサポートを考えています。あと、現在時間がかかってる本番環境へのアクセスがありますが、これをもう少し短くしようかなと考えています。

(スライドを示して)最近になりますが、このようなかたちでプロジェクトを技術的なかたちでワーキンググループが支えることでうまくいくようにしているし、OKRを使うことによって、四半期ごとに目的を定めて一歩一歩着実にやりたいことが実現できている体制が、今のユニークビジョンでの開発体制になっています。

ワーキンググループ制度を導入して良かったこと・課題

この制度にしてみてどうだったかですが、まず良いところとして、ワーキンググループによる横軸チームです。どのプロジェクトも同じような運用になって、メンバーの入れ替えが行いやすいということ。あと、プロジェクトのノウハウが横展開しやすいこと。あとはエンジニアが兼任なので、情報共有がしやすいこと。あと、エンジニアのモチベーションアップになっています。

課題としては、兼任が多くなってくると会議が多くなってきて大変だということ、あと忙しくなってくると当然プロジェクトが重要なので、プロジェクトが優先されてしまうのもあります。

あとOKRの目標管理ですが、(この管理の)良いところは、仕事が忙しくても技術課題が解決されていきます。あと、各チームの方向はブレないです。あと、やることに集中できます。

課題として、良いOKRが立てられてるかは「ちょっと微妙かなぁ」というところがあるので、ここはどんどん進めていきたいなと思っています。あと、数値だけ追っててなかなか改善まで踏み込めないこともあるので、このあたりも課題かなぁと思っています。

まとめです。エンジニアが日々の仕事だけでなく、技術的な課題を解決するように仕事に取り組めています。なので、けっこうエンジニアの満足度は高くなっています。

このワーキンググループですが、今回紹介したもの以外にも顧客を対応するディレクターとか、社内向けとかで、実は全部で19あります。これも全部OKRのおかげですべて機能してるかなと思っています。

ご清聴ありがとうございます。