リモートワーク中の開発者の生産性を維持するためにできること (2020/3/27、ブログ更新のお知らせ)

※米国マイクロソフトからブログ更新のお知らせが来ました!

+++++
リモートワーク中の開発者の生産性を維持するためにできること
+++++

※このブログは、米国時間 3 月 20 日 に公開された
“Helping our developers stay productive while working remotely”の抄訳です
< https://www.microsoft.com/…/helping-developers-stay-produc…/ >

Microsoft 365 担当 コーポレートバイスプレジデント
ジャレッド スパタロウ(Jared Spataro)

マイクロソフトがリモートワークへと移行して 2 週間が経ち、企業としてさまざまな発見がありました。先週、社内 IT 部門の同僚 ナタリー ダース(Nathalie D’Hers)は、何万人もの従業員のリモートワークを実現させるために彼女のチームが取り組んだ 9 つの方法
< https://news.microsoft.com/…/200317-top-9-ways-microsoft-i…/ >
を公開しました。その投稿の中でダースは、リモートワークへの移行に際し開発チームが直面する独自の課題を指摘しています。この話を聞いて、マイクロソフトの開発チームがリモートワークを実現するために何をしているのか気になった私は、Office 体験組織エンジニアリングチームのコーポレートバイスプレジデントであるアレシュ・ホレジェク(Aleš Holeček)に依頼し、ヒントや知見を共有してもらうことにしました。みなさんも、私と同じようにこの話に興味を持ち、役立つと感じるのではないでしょうか。ではホレジェクにバトンタッチします。

お客様にサービスを提供する際に鍵となるのは、チームの生産性を維持することです。多くの作業がオンラインへと移行する中で、マイクロソフトは継続して迅速かつ効率的に対応できるよう集結しています。この作業をできるだけシームレスに進めるにあたって私のチームが取り組んでいることをここで紹介すると共に、リモートワークへの移行でチームの生産性にどういった影響が出たのか、初期段階で学んだことをお話しします。

■リモートワークが人に与える影響

●チームカルチャーの促進

ソフトウェア開発はチームスポーツのようなもので、エンジニアは複雑な問題の解決に共同で取り組まなくてはなりません。マイクロソフトにおいては、協力的な環境での作業がこれにあたります。リモートワークになると、誰かの座席に立ち寄ったり、廊下を歩いたり、グループでランチしたりといったことができなくなります。つまり、チームが簡単に離れ離れになってしまうのです。そこでわがチームでは、協力的なチーム環境を維持するために以下のようなことを実践しています。

・Microsoft Teams のカルチャーチャンネルを用意し、バーチャル給湯室としてたむろする場に使う
・バーチャルランチやコーヒーブレイクを実施
・チームメイトと確認の電話をする際は外を散歩する
・「犬の鳴き声」や「子どもがウロウロ」といった項目のある電話会議用ビンゴボードを用意する

●最新情報の提供

リモートワークにおいて重要な側面となるのは、従業員に最新情報を提供することです。
わがチームでは役立つ情報のオンラインリストを作成し、リモートワークのアドバイスや既存ハードウェアに関する全社向けガイド、自主ホスティングのヒントなどを提供しています。
毎時間更新できないこともありますが日々更新しており、入手した最新情報をアップデートしています。

●リソース

リモートワークに役立つすばらしい記事は山のようにあります。開発者部門のスコット ハンセルマン(Scott Hanselman)による投稿
< https://www.hanselman.com/…/LoveInATimeOfCoronaVirusTipsTri… >
はお勧めです。ハンセルマンは過去 13 年間にわたってリモートワークを実践しており、今回リモートワークに移行する人に向け自身のベストプラクティスを洗い出しました。
(また、ハンセルマンは開発者向けにホームオフィスの設定を紹介するすばらしいTwitter のスレッドも始めています。)

■リモートで役立つツールやプロセス

リモートワークでは、自宅にいても仕事の手が止まることはありません。そこで、わがチームでリモートワークのエンジニアを最適化している方法をいくつか紹介します。

●テクノロジのセットアップ

まずはテクノロジのセットアップから始めます。適切なハードウェアやネットワーク接続があるか確認するのです。マイクロソフトのエンジニアはたいてい会社から提供されたノート PC をすでに持っており、リモートでも作業できる状態にあります。従業員には、モニターやハードウェア、周辺機器などでオフィスでの作業構成を再現するよう伝えています。これは、2〜3 台のモニター構成で作業する開発者には特に重要なことです。

先週マイクロソフトでは、わが社の IT 部門が社員のリモートワークを実現させた 9 つの方法
< https://news.microsoft.com/…/200317-top-9-ways-microsoft-i…/ >
についてブログを公開し、IT の状況を深堀りしました。リモートアクセスに関する教訓として、開発チームに伝えたい重要な 3 点を以下に記します。

1. デスクトップのみで作業する開発者には、Windows Virtual Desktop     
< https://docs.microsoft.com/J…/azure/virtual-desktop/overview >
ソリューションが搭載された会社用のノート PC を提供してください。これにより、開発者が開発環境にリモートアクセスできるようになります。

2. ノート PC が提供できない場合、自宅マシンに Hyper-V 仮想マシン(VM)をセットアップし、直接 VPN にアクセスしてリモートワークできるよう VM を管理することをお勧めします。

3. リモートから直接リソースにアクセスする必要がない場合や、VM をサポートするハードウェアがない場合は、クラウドサービスが役立つかもしれません。
Visual Studio Online< https://azure.microsoft.com/…/services/visual-studio-online/ >
は、Git のリポジトリからクラウドでホストされる開発環境を作成するサービスです。
Visual Studio Code からこれらの環境に直接接続できるため、ローカルでの体験と見た目や感覚は変わりません。専用ハードウェアへのアクセスが必要なタスクの場合、既存マシンを Visual Studio Online にリンク
< https://docs.microsoft.com/…/visualst…/online/how-to/vscode… >
することが可能です。

●出荷のリズム

次に、ソフトウェア出荷に向けて確立されたリズムを維持する必要があります。
わが開発チームでは、全員が継続して前進できるよう、定期的にスタンドアップミーティングや出荷室でのミーティングを実施しています。こうしたミーティングはやめられませんし、やめるつもりもありません。そこで、ミーティングは完全に Microsoft Teams    
< https://docs.microsoft.com/…/get-started-with-teams-quick-s… >
に移行しました。Teams は、リモートミーティングのハブとなるだけでなく、作業計画や流れを確認する Azure Boards、ミーティングの参加者が概略を作成してアイデアをマッピングできる Microsoft Whiteboard      
< https://docs.microsoft.com/…/microsofttea…/manage-whiteboard >
など、ソフトウェア開発に特化したアプリケーションも用意されています。こうしたツールのおかげで、チームメンバーはまるでオフィスにいるようにまとまっています。

●仲間同士での学び

仲間同士でのレビューやペアプログラミングを実施している開発者は、通常隣に座って互いに学び合うため、リモートワークが難しいと感じることでしょう。
そこでマイクロソフトの開発者は、Visual Studio Live Share
< https://docs.microsoft.com/…/vis…/liveshare/quickstart/share >
を活用し、共同でデバッグセッションや仲間同士の学びを実践しています。Live Share により、開発者は共同でも 1 人でも作業でき、対面でコラボレーションしているような気分になれます。

●採用プロセス

人材採用のプロセスは、リモートワーク中だからといって保留できない重要な作業です。
技術関連の面接
< https://docs.microsoft.com/…/lives…/use/technical-interviews >
には Live Share が役立ちます。Live Share を使えば、応募者がすでに使い慣れているツールを使用して応募者とのつながりを構築し、コミュニケーションできるようになります。

■これまでに学んだこと

みなさんと同様、私たちも実践しながら学んでいます。ただ、リモートワークを最優先とするこの期間中の開発生産性に関する初期の数値を見て励まされました。
マイクロソフトでは、生産性を示す数値として、エンジニアがコンピュータコードに送信した変更回数を全社で追跡しています。以下のグラフは、完了したプルリクエストの数を週ごとに示しており、今年始めからの数値です。完了したプルリクエストを数えることで、開発者が開発速度を維持しているかどうか判断できます。

作業項目、作業時間、プルリクエストそれぞれにおいて低下は見られません。
何らかの変化が見られる箇所は日中の行動の変化で、働き始める時間が早かったり、仕事を終える時間が遅かったり、日中の「ピーク」が低くなったりしている程度です。
以下のグラフは、Office 開発部門のエンジニアによる 1 時間あたりのビルドの数を示しています。

チームでのリモートワークの実現は継続的な課題で、組織によってその課題も異なると思います。マイクロソフトがこれまでに把握できたことをお伝えしておくと、協力的で生産的なカルチャーを維持することや、リモートワークに適したツールで開発者に力を与えること、また生産性が維持できていることを示す数値を確認することなどは、すべて開発チームがリモートワークに移行するにあたって効果的だということです。
組織がリモートワークへの移行を進める中で、マイクロソフトはこれからもベストプラクティスやサクセスストーリー、そしてヒントを提供し、リモートワークがみなさんにとってシームレスなものとなり、成功体験となるよう支援したいと思います。

※Visual Studio と Visual Studio Code でリアルタイムにコラボレーションする開発者の様子/マイクロソフト社内で完了したプルリクエストのトレンド/Office 開発部門のエンジニアの 1 時間あたりのビルド数の各画像につきましては、日本マイクロソフト広報資料サイトをご覧ください。
< https://news.microsoft.com/…/200327-helping-developers-sta…/ >

この記事が気に入ったらサポートをしてみませんか?