1
/
5

コロナ禍でも開発スピードを落とさない!みどりクラウドのテレワーク開発体制をご紹介

こんにちは。
セラク・みどりクラウド事業部のエキスパートエンジニア・スクラムマスターの原田です。

東京のコロナ新規感染者は段々と減ってきてはいますが、みどりクラウド事業部では通勤・オフィスでの感染リスク低減を考慮して、引き続きテレワークを推奨しています。

また、セラクでは社外のインターネットから社内のネットワークに接続するためのVPNを設けており、社員は自宅等からVPN経由で社内のシステムや情報にアクセスして業務を進められる体制を2020年前半から整備してあります。

今回はそのようなテレワーク体制下でみどりクラウド事業部はいかに開発スピードを落とさずに価値あるサービスを開発・提供しているのかを、採用しているツールやコミュニケーションの仕組みの視点でご紹介します。

採用しているツール

Microsoft Teams / Office365

Microsoft Teams | リモート ワークのためのコラボレーション ツール
チームワークを実現する安全なコラボレーション プラットフォーム、Teams に無料でサインアップして、リモート ワーク、テレビ会議、インスタント メッセージング、グループ チャットのためのツールを入手できます。
https://www.microsoft.com/ja-jp/microsoft-teams/group-chat-software

みどりクラウド事業部のWeb会議ツールはMicrosoft Teamsを使用しています。
朝会などのミーティングだけでなく、後ほど紹介するペアプロやモブプロでもTeamsを使用しており、お互いの顔を見ながら通話をすることで、リアルの対面で会話するに近いコミュニケーションを実現させています。

また、Teams以外でもMicrosoft Office365の機能としてメールやスケジュール共有機能を使用しており、これらの機能は自宅等からでも接続できるので、どこからでもWeb会議への参加・メールの確認・スケジュールの確認ができるようになっています。

Slack

Slack はニーズに応えるプロダクティビティプラットフォーム
Slack(スラック)は、チームとコミュニケーションを図るための新しい手段です。メールよりも速く、整理され、安全な方法で実現できます。
https://slack.com/intl/ja-jp/

会話でやり取りをしたほうが良い場合はTeamsのWeb会議を使用しますが、簡易な連絡などにはSlackでの文字コミュニケーションで行っています。
プロダクト毎・プロジェクト毎にチャンネルを作成し、それ以外にも技術やプロダクトに関する雑談・発信をするチャンネルも用意されており、Slack上でも部内で活発なやり取りがされています。

また、必要であればプロダクト開発の社外関係者様をゲストとしてSlackへ招待し、社外の方も巻き込んでSlack上でコミュニケーションを取りながら開発を進めることもあります。

もちろん、Slackもテレワーク中に社外から接続可能です。

GitHub Projects

GitHub
問題は事前に防止することが重要です。ブランチの保護やコミットへの署名、ステータスチェックを必須条件にすることによりソースコードを保護し、高い水準を維持することができます。 柔軟な権限付与、SAML/SSOとLDAPを使用した認証により、許可されたユーザだけがアクセスできるよう制限しつつ、チームの連携を促進することができます。
https://github.co.jp/

タスクのステータス管理・見える化のために、Redmineによるチケット管理と併用して、タスクかんばんという手法も採用しています。

詳しくは以下のWikipediaを見てもらいたいのですが、タスクかんばんとはタスクの分解・ステータスの可視化・完了までのプロセスを可視化して、ジャスト・イン・タイムでやるべきタイミングでタスクを着手して確実に終わらせていく手法です。

かんばん (ソフトウェア開発)
かんばんはソフトウェア製品を開発するための方法である。さらに、かんばんは、ソフトウェア開発者に過剰な負荷をかけずに、 ジャスト・イン・タイム ...
https://ja.wikipedia.org/wiki/%E3%81%8B%E3%82%93%E3%81%B0%E3%82%93_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA)

タスクかんばんを実現するツールとしてはTrelloというWebサービスが有名なのですが、みどりクラウド事業部ではソース管理にGitHubを使用しているのでGitHub Projectsというサービスでタスクかんばんを運用しています。

GitHub Projectsの素晴らしい点は、GitHub Projects上で作成したタスクをそのままissueにすることができ、issue上でタスクの進捗を書き込んだり、プルリクを作成してマージされたらタスク完了とするといったように、ソースのGit管理とタスクかんばんを連動させることができる点です。

Trelloでステータス管理をして、実際のソースはGit管理というやり方だと二重管理になってズレが発生することはまぁまぁあることなのですが、GitHub Projectsなら一括管理できるのでおすすめです。

nulab Backlog

Backlog|チームで使うプロジェクト管理・タスク管理ツール
Backlogは、業務を可視化して、チームのコミュニケーションの促進を目的としたプロジェクト管理ツールです。シンプルな操作性と親しみやすい見た目で、開発者だけでなく、デザイナー、マーケターなど、チームで働くすべての人が使えるのが特徴です。
https://backlog.com/ja/

GitHub Projectsは素晴らしいツールなのですが、どちらかというと開発者寄りのツールで操作性などでエンジニア以外の方にはとっつきにくいところがあります。
そのため、プロダクト開発の社外関係者様ともタスクの内容を共有したい場合は、nulabのBacklogを使ってタスク管理をする場合もあります。

社外の方ともできるだけメールだけではなくSlackやBacklogといったコミュニケーションツールを使わせていただき、タイムリーかつ開発チームとの距離感が近いコミュニケーションを実現させて認識齟齬が発生しないようにしています。

Visual Studio Live Share

Visual Studio Live Share | Visual Studio - Visual Studio
Visual Studio Live Share を使用すると、他のユーザーとリアルタイムで任意のコードベースを共同で編集およびデバッグできます。各ユーザーは、それぞれが使い慣れた個人用に設定された環境で作業できます。
https://visualstudio.microsoft.com/ja/services/live-share/

後ほど「コミュニケーションの仕組み」で紹介しますが、ペアプロ・モブプロで同じソースを複数人の開発者で同時に見ながら開発を行う取り組みを進めています。

当初はTeamsの画面共有機能を使って、一人の開発者のVisual Studio Codeの画面を他の開発者と共有するという方法でペアプロ・モブプロを行っていたのですが、この方法だと以下のような不満がありました。

  • Visual Studio Codeのソース文字サイズが小さいと文字が潰れて表示されてしまう
  • Mac版Teamsの画面共有でメモリ消費量が激しかった(だいぶ改善されてきましたが)
  • 他の人のIDEカスタマイズ表示がわかりにくい
  • カーソルを移動してもらうのに、「○行目のXXXのあたり」といったように口頭で伝えて、画面共有をしている人に操作してもらう必要がある

そんな折に、Visual Studio CodeのMicrosoft公式エクステンションとして、同じソースを複数人でそれぞれのローカルのVisual Studio Codeで表示して、なおかつ同時編集もできるVisual Studio Live Shareの存在を知りました。
このツールを使用することで上記の不満はほとんど解消できました。

  • ローカルのVisual Studio Codeでソースを表示するので、文字が潰れてしまうことは無い
  • 引き続きTeamsで通話をしながらペアプロ・モブプロを行うが、画面共有をしないのでメモリ消費量が減って開発マシンが安定した
  • ローカルのVisual Studio Codeでソースを表示するので、自分のIDEカスタマイズでソースを見ることができる
  • 同時編集機能で、参加者全員が自分のカーソルを動かすことができ、必要とあれば編集もできる

ソースの同時編集だけでなく、ターミナルの共有など便利な機能が組み込まれており、テレワークに限らず例えば新人さんなどIDEの操作に慣れていない人とのペアプロにも活用できそうな感じです。

コミュニケーションの仕組み

スクラムフレームワークによる繰り返し・漸進的な開発

みどりクラウド事業部では、アジャイル・スクラム勉強会を行ったりしていることからも分かるとおり、柔軟な開発プロセスを実現するためにアジャイルのTips適用やスクラムフレームワークの導入を進めています。

スクラムフレームワークは一定の短い期間(タイムボックスと言います)で開発期間を区切って、それを繰り返して優先度の高い・価値の高い機能から実現させて、フィードバックを得ながら順次開発&ブラッシュアップしていくフレームワークです。
ウォーターフォール開発と比べると実際に触れるアプリがかなり早い段階で手に入るので、仮説検証を早い段階でできる・進行方向の調整がしやすいのがメリットです。そのため、不確実性が高く、未知の部分が多いプロジェクトで有効な手法と言えます。

スクラムの概要を1分で理解できるイラスト【2018版】
スクラムの概要を1分で理解できるイラスト【2018版】 みなさんこんにちは。@ryuzee です。 アジャイル開発のコーチングやトレーニングでスクラムの全体像を1枚の絵を使って説明することが多いのですが、以前作成したものを最新化したので公開します。 スクラムの本質的な価値やスクラム以外でも日々のプロセスに組み込んだほうが良いこと(テスト自動化や継続的インテグレーション)は含めていません。 ...
https://www.ryuzee.com/contents/blog/7124

みどりクラウド事業部では、テレワーク体制下でもスクラムフレームワークで定義されたミーティングをTeams・GitHub Project・Redmine・Trello等のツールを柔軟に使いながら実施しており、リアルで出社して対面でコミュニケーションをとるのと遜色のないレベルで意思疎通を取りながら開発を進めています。


具体的には、以下のようなミーティングを行っています。

・スプリントプランニング
週の初めに、開発チーム全員がTeamsのWeb会議で集まり、画面共有でGitHub ProjectのタスクかんばんやRedmineチケットを全員同じ画面で見ながらタスク分解・タスクの内容理解・概算見積を行っています。

・デイリースクラム
毎朝、開発チーム全員がTeamsのWeb会議で集まり、各開発者が昨日までやったこと・今日の予定・今困っていることを発言してチーム内で共有しています。困っていることに対して他の人の助けが必要な場合、デイリースクラム後にペアプロを行ったりして解決していきます。

・スプリントレビュー
週の終わりに、開発チーム全員とみどりクラウドのプロダクト責任者がTeamsのWeb会議で集まり、画面共有などを使って1週間で完成させたプロダクトの機能をプロダクト責任者にお披露目します。また、この場で来週はどの機能を開発していくかも開発チーム・プロダクト責任者間で摺合せを行っています。

ただしみどりクラウドの場合、プロダクト責任者とのコミュニケーションはスプリントレビューに限らず、聞きたいことがあればSlackなどですぐに相談できる体制にしています。そのため、スプリントレビューは1週間の仕切りとして完成したかどうかを確認する定例イベントという位置づけと言えます。

・スプリントレトロスペクティブ
週の終わりに締めくくりとして、開発チーム全員でTeamsのWeb会議で集まり、TrelloなどのWebサービスを使ってふりかえりという取り組みを行い、開発チームや開発プロセスの改善を進めていきます。
ふりかえりについては、以下のソニックガーデンさんのブログ記事がわかりやすいと思います。

ふりかえりメソッド「KPT」の基本とはじめ方
「ふりかえり」は、プロジェクトや職場において継続的な改善をしていくための取り組みのことだ。もともとはシステム開発の業界で始まったものだが、最近では別の業界での試みも始まっている。特に現場の業務改善する場面に有効だ。 ふりかえりで有名なメソッドが「KPT」。KPTは、Keep/Problem/Tryの略で、非常にシンプルだが強力な手法だ。まずは、このメソッドに従って始めると良いだろう。 ...
https://kuranuki.sonicgarden.jp/2018/04/kpt-method.html


ここまでの紹介でおわかり頂けたかと思うのですが、すべてのスクラムフレームワークのミーティングをTeamsのWeb会議で行っています。

私はこれまでリアル対面でも5年程度のスクラムマスター経験があるのですが、現状のWeb会議でのミーティングでもリアル対面とそれほど変わらないレベルのコミュニケーション密度を実現できていると感じています。
コロナ以前のような大多数の開発メンバーがオフィスに居る・一部の人が遠隔地のようなケースでは全員同じコミュニケーション密度を維持するのは難しかったのですが、コロナ禍で全員テレワーク・全員Web会議でコミュニケーションという状態になったことで、全員同じコミュニケーション密度に揃えるのがやりやすくなったところはあるのかと思っています。

チームメンバー全員でタスク洗い出しと見積を行う

「スプリントプランニング」の項でも書きましたが、週の初めにチームメンバー全員でタスク分解・タスクの内容理解・概算見積を行っています。
このチームメンバー全員で行うところがポイントで、一部のリーダー格がタスクを取りまとめて担当者にアサインするようなやり方ではなく、チームメンバー全員がプランニングの時点でできるだけ理解度を揃えながら、いろいろな意見を取り入れて概算見積を行います。

このような取り組みによって、「私はメンバーだから、全体的なことはよく知らない」といった考え方や「リーダー格が決めたことなんだから、私はそれに従っているだけ」といった考え方ではなく、開発メンバーが主体的・自律的に「チームとして価値あるプロダクトを実現していくにはどのように行動していけばよいか」という考え方にシフトしていくことを狙っています。

タスク洗い出しと見積も、TeamsによるWeb会議を使って集まり、GitHub ProjectsやRedmineといったWebアプリを使用して進めているため、テレワーク体制下でも問題なく進めることができています。

ペアプロ・モブプロ

開発を進めていく中で、一人では技術的・理解度的に難しいタスクにぶつかって手が止まることはよくあることです。そのようなときに一人で頑張って調べるという手もあるのですが、私はペアプロ・モブプロを実施することを推奨しています。

・ペアプロ
ペアプログラミングの略です。開発者の二人一組でペアを組み、1台の開発マシン・キーボード・マウスを二人で共有して1つのタスクに取組みます。当然、二人で同時にタイピングはできないので、開発マシンの操作はペアの一人が担当し(この人のことをドライバーと言います)、もうひとりは横に張り付いて設計や実装の考え方について助言します(この人のことはナビゲーターと言います)。
基本的に、ナビゲーターは経験豊富な人に担当してもらい、ドライバー役の人に技術や知識を伝えてもらいます。ドライバー役の人は、横で経験豊富な人から直接指導をしてもらいながら、さらに手も動かすので身につくのが早いという点がメリットです。

コロナ禍かつテレワーク体制下では開発者二人が横並びで張り付くことは不可能なので、上でも紹介したVisual Studio Live Shareなどの共同作業ツールを使って同じソースを見て、Web会議で会話をしながらペアプロを実施しています。

・モブプロ
モブプログラミングの略です。ペアプロは2名で1つのタスクを進めましたが、モブプロは開発チーム全員で1つのタスクに取組みます。こちらの場合も、使える開発マシン・キーボード・マウスは1つずつだけで、ドライバー役の人が一定時間ごとにナビゲーター役の人と入れ替わるのがペアプロとの大きな違いです。
ペアプロは経験豊富な人からまだ慣れていない人に向けてスキル継承を行うことが主な目的でしたが、モブプロでは経験豊富な人も含めてドライバー役を担当し、開発チーム全員でわいわい喋りながら実装を進めていきます。
開発チーム全員が1つのタスクに取り掛かるなんてなんて非効率!と思うかもしれませんが、チームメンバーそれぞれで分担した場合と比べると早く終わることも多いのです。ここでは説明しませんが、なんで!?と気になった方はぜひ以下の書籍を読んでみてください。

カンバン仕事術
Marcus Hammarberg、Joakim Sunden 著、原田 騎郎、安井 力、吉羽 龍太郎、角 征典、高木 正弘 訳 2016年03月 発行 364ページ ISBN978-4-87311-764-5 原書: Kanban in Action フォーマット Ebook Storeで電子版を購入:価格3,168円 序文 はじめに 本書について 第I部 カンバンの学習 1章 チーム「カンバネロス」のはじまり 1.1 イントロダクション 1.2 ボード 1.3 ワークフローのマッピング 1.4 作業項
https://www.oreilly.co.jp/books/9784873117645/

モブプロの場合も、ペアプロと同様にコロナ禍かつテレワーク体制下で一箇所にリアルで集まるということは現実的ではないため、Web会議を用いて実施しています。

では、テレワーク体制でもまったく問題ないの?

これまで説明してきたとおり、テレワーク体制下でもチームで開発できる体制を整えてリアル対面と遜色のないコミュニケーションを実現させていますが、まったく問題が無いわけではありません。
テレワーク体制下だと以下のような課題があると思っています。

飲みにケーションなど、仕事以外のコミュニケーションを取るのが難しい

お仕事については各種ツールや仕組みを駆使してテレワーク体制下でも問題なく進められるようにできていますが、流石に一緒に食事をする・一緒にお酒を飲むという体験まではリアル対面と同等レベルまでは至っていません。

リモート飲みなどの取り組みも行っていますが、やはり画面越しでお酒を飲むのはこれまでとは勝手が違うのでまだまだ改善の余地ありという感じです。当面続きそうなテレワーク体制下で、仕事以外でも部内の一体感や相互理解を育んでいけるようにするにはどうすればよいか、試行錯誤している最中です。

このように、セラク・みどりクラウド事業部ではテレワーク体制下でも開発スピードを落とさずに価値あるサービスを開発・提供し続ける体制を考え続けており、柔軟に取り入れています。

みどりクラウド事業部のテレワークに対する取り組みに興味を持っていただけたら、ここでは紹介しきれていない取り組みやツールの活用などもご紹介できますので是非お話をしましょう。お待ちしています。

株式会社セラク(アグリテック分野)'s job postings
21 Likes
21 Likes

Weekly ranking

Show other rankings