はじめに
こんにちは。LINE株式会社のSET(Software Engineer in Test)の伊藤 宏幸(Hiroyuki Ito)です。
- 「隣のチームが何をやっているのか(全く)分からない」
- 「このチームがなぜその施策を進めようとしているのか分からない」
- 「あの組織が、開発・運用しているツール・サービスの技術スタックやアーキテクチャを共有してくれず、参考にしたくてもできない」
皆さんのチーム・組織・会社では、このような「不満」は出ていませんか?
かくいう私たちの「室」(LINEの組織単位で、他社の「部」ないし「課」に相当)でも、多かれ少なかれこのような「不満」が度々メンバーやリーダーから出てきており、頭を悩ませています。一方で私たちは、新型コロナウイルスへの対策として行ったリモートワークをある意味逆手に取り、室内のチーム同士の情報や成果を共有しあう取り組み「Tech Demo Day」を始めました。そしてその結果として、これらの「不満」を軽減できただけではなく、メンバーからの新施策の提案やチーム同士の協業を増やせています。
この記事では、「Tech Demo Day」の実施の経緯、これまで実施した内容、およびその成果についてレポートいたします。
実施の経緯
今年(2020年)2月下旬、我々の室の週次のリーダー定例ミーティングで、私がSETチームの進捗を報告したところ、参加者から「なぜそこでIstioを使っているのか?」という質問がありました。その2週間前のミーティングで1度説明はしたのですが、再びこの質問があがりました。
実は我々の室では、このような質問の繰り返しが以前から度々起きており、個人的に課題認識を持っていました。
- 口頭や文書の報告だけでは、いくら会議を重ねても本質を伝えきれないのではないか?
- (アジャイルのScrumのSprint Reviewと同様の発想で)作ったもの・動くものをデモした方が、本質を的確かつ簡潔に伝えられるのではないか?
- これまで見えにくかったものを見えるようにする/見せることで、協力を得るチャンスに出来るのでは?
そのような観点から、「我々のこれまでの成果物をリーダー陣にデモする機会を設けさせて欲しい」と、その場で私から即座に提案し、了承を得ました。
早速デモの準備を終え、リーダー陣にデモの日取りを相談したところ、以下の反応がありました。
- これらをリーダーだけにデモするのは勿体無いのではないか?(室のメンバー全員に見せた方が良いですよね)
- SETチームだけではなくて、他チームもデモすべきではないか?
- 各チームが開発・運用しているプロダクト群をデモ・説明しあうことで、それらの相互利用につなげられるのではないか?(それまでは相互利用はほぼありませんでした)
確かにより良い意見だったので、「室のメンバー全員を対象に、各チームが自分たちのプロダクト群を紹介しあう場」として、「Tech Demo Day」と銘打って開催することに、全員その場で合意しました。
リモートワークという「追い風」
ちょうど上記のやり取りをしていた最中に、新型コロナウィルス対策のため、我々もリモートワークへ移行することとなりました。
一方で、このリモートワークへの移行が、「Tech Demo Day」を却って実施しやすくすることに気付きました。
- 「会議室」という「制約」からの解放
- オフィスの会議室自体が物理的に不足していることに加え、ほとんどの会議室が1ヶ月以上予約で埋まっており、そもそもこの手のイベント自体の開催が難しいという問題がありました。
- 我々の室は、日本・韓国・ベトナムの各拠点にメンバーがおり、かつ下記の通りそれぞれ多人数です。上述の会議室不足から、全員を集められる会議室を各拠点に同時に抑えることはほぼ不可能です。
- 日本:15人前後
- 韓国:10人前後
- ベトナム:5人前後
- リモートワークでのビデオ会議であれば、上記の問題に煩わされる必要がなくなり、迅速かつストレスフリーにイベントの開催が可能です。
- Zoomの同時通訳機能による言語の壁の突破
- 前述の通り、我々の室は日本・韓国・ベトナムの各拠点にメンバーがおり、かつメンバーごとに言語の得手不得手があって一つの言語に統一することが難しいため、同時通訳は必須の要件でした。(そのため普段から、社内の通訳チームメンバーに同時通訳をお願いしています。)
- ちょうどTech Demo Dayの開催を考えていた時期に、Zoomのベータ版にミーティングの同時通訳機能(ミーティングに参加した通訳士と、英語など各言語の通訳チャネルとを介して、各言語による同時通訳を実現する機能)が追加されたことを知りました。
- 同機能は、上述の言語の問題を解決できる重要なファクターとなりました。
- 「他者と話をしたい/話を聞きたい」という人間の社会的欲求との合致
- リモートワークの長期化が、スピーカー・リスナーからのポジティブなリアクションにつながり、企画の推進を促してくれました。
これは「チャンス」だと判断し、諸々一気に手配して実施にこぎつけました。リモートワークは、この件に関しては、我々にとっての大きな「追い風」になりました。
これまで実施・発表した内容
初回(2020/03/16)
初回は「お試し版」として、コンテンツをすでに複数用意していた我々SETチームがいわゆる「人柱」となり、トピックを1つに絞って発表しました。
SETチームは、API呼び出しなどをリトライしている「Flaky(=不安定)」なテストを検出するために検証していた、自動テスト結果のレポーティングツールAllureの機能概要と、それを動かすためのJenkinsとDrone CIの設定の比較・差異について説明しました。
この発表直後、他のチームで、Drone CIを活用する提案が出始めました。またSETチームは、この際のフィードバックをベースに、リトライしているテストを検出するためのAllure用プラグイン「Retry Plugin」を開発し(下写真)、半月後に社内にリリースしました。
2回目(2020/04/17)
この回から、「各チームが自分たちのプロダクト群を紹介しあう」というコンセプトでの運用を始めました。
既に公開している、或いは公開予定の情報に絞ると、以下のトピックを共有し合いました。
- 社内のモニタリングシステム「IMON」の概要説明
- SETチームが開発している「Testable Infra」のコンセプト・アーキテクチャ説明
- Docker・Kubernetesなどを活用して、必要な時だけテスト環境を構築・複製し、不要になったら破棄できるインフラを提供しようというものです。開発者やQAが、各テスト環境・本番環境の差分で苦しむことを解決することが狙いです。ちなみに、先述のIstioを使っていたのはここです。後日、このブログまたはLINE DEVELOPER DAYにて共有予定です。
3回目(2020/05/28)
同じく、既に公開している、或いは公開予定の情報に絞ると、以下のトピックを共有し合いました。
- 自作のTime Series Database「Flash」の概要・アーキテクチャ・採用したアルゴリズムなどの説明
- 昨年のLINE DEVELOPER DAY 2019でお話しさせていただいたものの、その後のお話です。詳しくは、ぜひ下記リンクをご覧ください!
https://linedevday.linecorp.com/jp/2019/sessions/B1-1
- 昨年のLINE DEVELOPER DAY 2019でお話しさせていただいたものの、その後のお話です。詳しくは、ぜひ下記リンクをご覧ください!
- SETチームが開発している「Testable Infra」のデモ
- 上述の「Flash」で、早速試してみようという話になりました。
ふりかえり
これまで「Tech Demo Day」を3回実施して直面した問題と、それらへの対応策とをまとめます。
1. 「完璧」を求める声
初回の「Tech Demo Day」を開催するまでは、リーダーやメンバーからの以下の声が絶えませんでした。
- 完璧な資料をすぐに用意できないので、発表したくない
- ルールが完璧に整備できていないので、失敗するのではないか?(なので延期した方が良いのではないか?)
完璧で他者から突っ込まれたりしないものを最初から用意しようとして、結果引っ込み思案になりやすい傾向は、我々の室の課題の一つでした。一方で、アジャイルやスタートアップ事業などで度々指摘されるように、失敗から学べることはたくさんあります。
そこで、(結果的にイベントの企画・進行をすることになった)私が率先して失敗を引き受けることで、失敗を活用した学習方法を「デモ」し、リーダーやメンバーの失敗への抵抗感を減らすようにしました。
- 運営上のトラブルや失敗が起きうることを事前に宣告
- 実際にトラブルや失敗が起きたら、私が謝罪した上で即リカバリを行い、対応した内容を全メンバーに共有する
- 次回以降のイベントを実際に改善する
結果として、回を重ねるごとに、失敗を懸念する声を減らせ、かつ新たな発表者を増やせています。
2. Zoomの同時通訳機能関連のトラブル
先にZoomの同時通訳機能が「Tech Demo Day」開催の追い風になったと記しましたが、一方で毎回、Zoomの同時通訳機能関連でトラブルに見舞われています。
- 同時通訳者が交代する際、Zoom上で後任者を設定する前に前任者がZoomから離脱すると、同時通訳機能が停止する(会議の再設定が必要)
→ 交代する人も含めて、最初から同時通訳者全員をZoom会議に登録しておく運用に変更(交代のタイミングでの設定変更を避ける) - 「言語通訳を有効化」を選択せずに会議を始めてしまうと、後から同時通訳者を設定・登録できない
→ 必ず「言語通訳を有効化」を選択してから会議を開催するよう周知 + 慌てない
3. 続かなくなる恐れ
コミュニティ活動や勉強会でも、ネタ切れなどでたびたび発生し得るものです。(個人的に経験済)
今のところ、定期的にリーダー定例ミーティングで私から話題を振り続けることで、関心を持ち続けてもらっています。ただ逆にいうとこれは、私が行動し続けないと止まる可能性がまだあるということです。今後改善が必要な点です。
今後実施・改善したいこと
実際に室内の協業を始めつつあるので、その成果を後日このブログまたはLINE DEVELOPER DAYにて共有したいと思います。
また、このイベント自体を他の部署、あるいは社外に公開しても良いのでは?とも(個人的には)考えています。
最後に
新型コロナウィルスによる止むを得ない・ある意味強制的なリモートワークへの移行によって、いままで当たり前だったことが出来なくなりつつある不安・焦燥感は、皆さんも日々感じられていると思います。一方で、それらを嘆き続けているだけでは、何も生み出せないこともまた事実です。むしろこの状況だからこそできることを見つけ出し、日々をより良くする方向にフォーカスしていった方が、より健全ではないかと私は思います。
私たちは、リモートワークの以下の点を「利点」と捉え、「Tech Demo Day」につなげています。
- 「会議室」という「制約」からの解放
- ZoomやLINEなどのリモート会議ツールの利活用
- 「他者と話をしたい/話を聞きたい」という人間の社会的欲求への注目
私たちはこの他にも、リモートワークだからこそできることをさらに見つけ出し、日々の歩みを加速させる所存です。
皆さんも、リモートワークだからこそできることを発見し、活用してみませんか?