〜効果的なチームビルディングと具体的な手法論を考える〜

ALLリモートワーク開発の注意点とは?

#エンジニアブログ

新型コロナウイルス感染症の拡大によって、IT業界も働き方や業務の行い方の変革を余儀なくされています。前回の第一回目の記事では、個々のエンジニアにとってのwithコロナ時代のリモートワークについて取りあげました。
第二回目は、このような状況の中で、いかに開発案件を進めていくか、その”新しい開発様式”について、プロジェクトを統括するマネージャーの視点から考えてみたいと思います。

 

 

■完全リモートワークに移行したことで、チームでの開発プロジェクトに何が起こったのか

個々のエンジニアにとっては、完全リモートワークでの開発はメリットも多く、今まで会社で行ってきたことを自宅でやれば良いという考え方を大きく変えなくても問題はないかもしれません。
しかし、チームを取りまとめるマネージャーの視点から考えると、完全リモートワークでの”新しい開発様式”は従来の方法からガラリと変わったと言っても過言ではないでしょう。求められる動きやそもそもの考え方、根底からの変革が必要になると思われます。まずは、多くの人が経験したことのないこの状況で、チームとして何が起こったのかを振り返ってみましょう。

 

●進捗/タスク管理が個別的になった

従来の集合型では、「一つのプロジェクトをチームで行う」という意識が比較的強く、チーム内での情報共有やお互いにある程度サポートをし合いながら進行していました。しかし、リモートワークによる開発方式になったことにより「個別の動き」が強くなりました。つまり「誰が・何を・どの期間でやるのか」という視点がより厳密になったのです。

 

●エンジニアごとの進捗にバラつきが出るようになった

「個別の動き」が強くなったことで、エンジニアごとの進捗具合にバラつきが出るようになり、進行の足並みが揃わない、というケースが発生しています。
これは、コツコツ地道に進める人、どこかのタイミングで一気に進める人、というタイプの違いに起因する場合もあれば、先輩のヘルプが薄くなったリモートワークでは、今までのパフォーマンスが出せなくなってしまった、という場合など、いくつかの要因が考えられます。

 

●コニュニケーションに起因するミスや問題点の発見の遅れが現れるようになった

従来の集合型の開発方式とリモートワークによる開発方式の大きな違いは、コミュニケーションにあると言えます。リモートワークによって、コミュニケーションのほとんどがビジネスチャットツールなどによるテキスト主体となった組織が多く、対面でのコミュニケーションではすぐに伝えることができる内容でも文章にした途端に難しくなる、といったことが発生し認識の齟齬が生まれやすくなってしまいました。

また、集合型の開発方式では、会議や普段の顔色などから個々のエンジニアが何かしらの問題を抱えているか、気がつくポイントがありましたが、リモートワークではそれらの問題のキャッチアップがしにくく、どの問題で手が止まっているかのレビュー時点までに問題が起きていることを把握できない、というケースが発生しているようです。リモートワーク下では、マネージャーの状況把握が個々のエンジニアからの「報告」ベースになってしまいがちなことが原因と思われます。

 

 

■リモート開発における、最適なマネジメント方法とは

●進捗/コミュニケーションマネジメント

リモートワークによるチームビルディングにおいては、コミュケーションの課題をどのように解決していくかが鍵になります。
その方法のひとつとして、ITツールを活用することは非常に有効です。リモートワーク開発をよりスムーズに行うためのツールは様々にありますが、今回はその中からいくつかをご紹介します。

 

Backlog
https://backlog.com/ja/
リモートチームを前提とした、進捗・タスク管理ツールです。
非エンジニアであってもプロジェクト管理がしやすくなるUIとなっているので、デザイナーやWebコーダーなど、職種の異なるチームでの活用や、ひとつのチームでいくつかの案件を対応している場合などでも、非常に使いやすいでしょう。

 

Remotty
https://ja.remotty.net/
仮装オフィスツールです。
仮装オフィスツールとは、その名の通りWeb上にオフィスを構築することで、これまでのオフィスと同じような感覚でコミュニケーションを取ることを可能にしています。
物理的なオフィスと限りなく近い状態になるので、相手の顔が見え、周囲の声が聞け、雑談といった気軽なコミュニケーションを取ることができます。
こうしたツールの導入により、リモートワーク開発によるメリットを享受しつつも、大きな課題と言えるコミュニケーションに対する有効な解決策でもあります。

 

Slack
https://slack.com/intl/ja-jp/
言わずと知れたビジネスチャットツールですが、実はリモートワークでの開発案件においては非常に有効的です。Google DriveやGitHubなど、チームが既に活用しているサードパーティのツールと連携することができるので、データのUPや作業の更新についてのチームへの共有を自動化することができます。使用するツールが多岐にわたってしまうことは、ある種リモートワークの弊害ですが、そういったことを解消できるのはメリットです。

マネジメントの仕事は「管理」することではなく、いかにうまくチーム全体を稼働させプロジェクトの質を上げるか、が本質ですので、なんのためにツールを使うのか、チームにとって何が最適なのか、リモートワークにおいてマネージャーが考えるべき視点は新たな段階に入ったと言えるでしょう。

 

●個々のエンジニアのケア/チーム連携のマネジメント

リモートワーク時のマネジメントは通常のオフィス勤務の時よりも多くのケアや注意が必要なケースが多いと言えるでしょう。組織全体、個々のエンジニアの管理やケアなど、ITツールの活用以外にも、マネージャーが考慮する点はいくつかあります。

 

・より丁寧な指示
対面でのコミュ二ケーションは思っていたより多くの情報を伝えることができ、相手のリアクションなどが理解度を把握する貴重な情報になっています。
それがない状態で指示を伝えるには、細心の注意を払う必要があります。ここで齟齬が発生すると、どんなに優秀なエンジニアでも、プロジェクトの質に影響が出てしまいます。手間に思えるかもしれませんが、受け取る側の勘違いがないよう、丁寧で明確な指示書の作成やブリーフィングの必要性がより高まっています。

 

・個々人とのコミュニケーション機会の創出
チームの構成や状況、個人の特性に応じての判断にはなりますが、業務開始前や終了後など、コミュニケーションを定期的に取る場を設けてる必要があると良いでしょう。今何に悩んでいるかなど、プロジェクトの作業者単位での問題のキャッチアップをする事をおすすめします。
チームとしての結束感、と言うと漠然としていますが、個々人がプライベートとの切り分けに苦労する中、モチベーション維持や人と会話することでの気分転換の意味も含めて、意識的に業務外の話を行うことにも、非常に意味があると考えられます。

 

・チーム内でのサポートに対するケア
全員が高い意識とスキルを持つスペシャルなチームであれば良いですが、メンバーによってはスキルレベルに差があったり、領域によって得手不得手があったりします。先輩後輩の関係性による遠慮などもあるでしょうが、個々が持つそういった特徴はリモートワークでより顕著になりました。そのことを考慮し、できるだけクオリティのムラや進捗のバラつきがでないよう、実作業とは別に付随するミッションやお願いを伝えることで、リモートにおけるプロジェクトを円滑に進める視点も新たに必要になります。

 

 

●開発におけるルール設定の視点

チームで開発を行う上で必須となるのは適切なルールの設定ですが、リモートによるチーム開発では、各々が個別に動く、という色が強まるため、より一層ルール決めに対する重要度が増すと考えられます。
このルール設定も、マネージャーの大切な役割です。
最後に、活用できるルールの具体例をいくつか紹介します。

 

・コードの記述ルール
複数人で開発を行う場合には、コードの書き方やコミュニケーションにおける個人差をなくすべく、共通のルールを設定することで効率よくスピーディーに開発を進めることができます。
コードの書き方という点では、フォーマッターなどを導入してコーディング規則や命名規則を統一することを強くおすすめします。
適切な規則は、コードレビューなどで他人のコードを読む場合にはスムーズに読みことができ、コードを書く上でも非効率な意思決定を減らすことができるので非常に有効です。

 

・報告のルール
コミュニケーションという観点では、分報といって、例えば1時間に1回などの進捗共有を文章で簡潔にまとめるといった方法もあります。
多くの開発現場ではGitなどのバージョン管理を導入していますが、コミットの粒度を小さくする、業務終了前には必ずプッシュをすることにより、アウトプットを共有するなどのルールも有効です。

 

・データ保存、共有についてのツールの使い方ルール
せっかく導入した便利なツールも、使い方やルールが整理されていないと、情報やデータが煩雑になり、かえって把握に時間がかかる、という本末転倒な事態になりかねません。案件によってチャンネルを分けることはもちろんですが、報告やデータの種類によって、どこに上げるかのルール設定を適切に行うようにしましょう。

 

ただし注意が必要なのは、状況に応じて必要なルールは変わってゆくという点です。
ルールを作るのは簡単ですが、それを正しく実行して、必要であれば定期的に見直しを行うといったPDCAサイクルは必要不可欠です。ルールを設けることでより円滑なチーム開発が期待できる反面、不適切なルールはストレスの増加に繋がります。

 

■まとめ

マネジメントにおいてどこまで気を配るかは考えなければならないところですが、勤怠管理や進捗管理について、必ずしも細かく全てを把握することが良いとは限りません。誰しもが経験したことのないwithコロナ時代において、少なからず不安やストレスを抱えながら、それぞれの生活にうまく仕事を溶け込ませようとしています。マネジメントの観点では何が必要なのか、決まった答えがない中、模索し、チームごとの最適を見つけていただきたいと思います。

関連する記事