リモートで作業し、それでも最高になる方法

公開: 2022-03-11

Ryan Wilcoxは、リモート従業員として10年近く繁栄しており、現在は、Toptalのエンジニアであり、自身の会社の創設者でもある、世界中の企業のコンサルタントと開発者の両方として働いています。 彼は現在、WebおよびiOS製品会社であるFanzterでフルタイムで働いています。

リモートワーカーのツールベルト

契約プロジェクトであろうとフルタイムの仕事であろうと、新しいリモコンを始めたり、自宅で仕事をしたりすることは、毎日オフィスに行くことに慣れている場合は少し怖いかもしれません。

しかし、このスタイルの雇用は人気が高まっており、いくつかの非常に著名な企業がそれを支持しています。

私は、さまざまな規模と期間のプロジェクトで、これらのツールを使用してリモートで何年にもわたって作業を成功させてきました。 この投稿では、さまざまな状況で作業するために私が選んだベストプラクティスのいくつかを列挙したいと思います。 ここでのリモートおよび在宅勤務ガイドは、ソフトウェアとハ​​ードウェアに関する特定の推奨事項から、チームの締め切りに間に合わせるためのヒントまで多岐にわたります。

リモートまたはホームオフィスのセットアップ

適切なオフィスを設置することの重要性を十分に強調することはできません。 それはあなたをより生産的にし、より専門的に見えるようにします。 たとえば、ヘッドセットは、オンライン通話中のエコーを回避するために重要です。 このような小さなことは、リモコンとして作業するときに大いに役立ちます。

自分のホームオフィス内で不可欠だと私が考える、リモートで作業するためのいくつかのツールを次に示します。

  • ヘッドセット。 有線ヘッドセットは、重要なときにバッテリーが不足しないため、特に気に入っています。 あなたはそれをたくさん着ているでしょう、それであなたが何か快適なものを手に入れることを確認してください。 私は2つのiMicroヘッドセットを持っています。1つはデスク用で、もう1つはラップトップバッグに詰めています。 ラップトップバッグのヘッドセットとして、2つの優れた品質があります。USB電源であるため、バッテリーを充電し続けることを心配する必要がありません。また、バッグの中で壊れた場合に交換するのは非常に安価です。 実際、この特定のヘッドセットは、長い電話会議には少し不快です。 これらをたくさん行う場合は、Corsair Vengeance 2000をお勧めします。バッテリー機能を備えた快適なワイヤレスヘッドセットで、一日中仕事ができます。 (ちなみに、これらはいずれも紹介リンクではありません。)
  • 特に他の人と一緒に住んでいる場合、特に家族がいる場合は、ドアが閉まる静かな場所です。
  • 安定したインターネット接続、または良好なバックアップ接続。 たとえば、私はDSLを使用しており、DSLが切れた場合に電話でテザリングを設定しています。 Skypeの問題が頻繁に発生したり、通話が切断されたりすると、リモートの複数の従業員を管理しようとしている他の人の目には、信頼性が低下し、専門性が低下します。
  • Skype 。 これは、臨時の電話会議、クライアントとのインスタントメッセージング、または式典の少ないチャットルームの作成にも適しています。
  • SkypeOut 。電話からSkypeの連絡先に電話をかけたりかけたりできます。 これは、特にコンピュータから離れているときや(時間を誤って計算した、クライアントに緊急事態が発生したなど)場合に最適です。
  • 電気ケトル。 時々私はホットコーヒーが欲しいですが、それを手に入れるために私の流れを邪魔したくありません。
  • 水のガロン水差し。 やかん用、または飲用用。 長いコーディングセッション、または長い電話会議の場合。

ホームオフィスのセットアップからの理想的なリモートまたは仕事の描写。

これらのいくつかは明白に聞こえますが、ここですべてのマークを打っていないリモコンの数に驚かれることでしょう。 開発者として、私たちは途切れることなく考えるための静かなスペースが必要です。 また、リモートワーカーとして、電話会議、会議、ペアプログラミングセッションなどを中断することなくホストできる静かな場所が必要です。 ソファで作業するだけでは、長期的なリモートワークソリューションとしてはおそらく適切ではありません。

ソフトウェアツール

典型的な開発環境を補完し、リモートワークに関連する課題を克服するのに役立つ優れたソフトウェアツールがたくさんあります。 これが私が本当に好きなものです:

  • AwayFindは、緊急の電子メール、特に会議の出席者からの直前のメッセージに適しています。これは、SMSを介してメッセージを転送するためです。
  • タイムゾーンコンバーター、世界中のクライアントや同僚と協力するため。 私はTimeAndDateのWorldTimeClock、Every Time Zone、World Time Buddy、またはThe Time Nowが好きで、視覚障害者にとってよりアクセスしやすいバージョンです。
  • チームの全員のためのチャット/IRCルーム。 これは、フォーマル(たとえば、キャンプファイヤールーム)またはSkypeチャットルーム(Keep It Simple、Silly)スタイルにすることができます。
  • バグトラッカー–これは独自のセクションに値するので、以下を参照してください。

会議を計画するときは、常に両方のタイムゾーンを確認してください。 そして、あなたが招待状を受け取ったとき、あなたは常に逆算をして、あなたが同じ数を思い付くようにするべきです。 会議に複数のタイムゾーンが含まれる場合は、UTC時刻も含めるのが好きです。 誰もがUTCからのオフセットを知っている必要があるため、これは全員が同じページにいることを確認するためのもう1つのチェックです。

私は数年前、まともな規模のRailsチームに所属していました。 何人かのチームメンバーは、少なくとも一部の時間はリモートで作業していました。チームの文化は、夕方に多くの作業が行われるというものでした。 私は、キャンプファイヤーやその他の有料チャットサービスを指して、当時の公式チームリーダーを通じてチャットルームを設置することを提案しました。 何もせずに数週間が経過し、チャットルームがチームの資産になるという私の理論をテストするために、開発者だけでSkypeチャットルームをセットアップすることにしました。 この実験は非常に成功したことが証明されました。非常に成功したため、別のソリューションの代わりにSkypeチャットを使用し続けました。 このSkypeチャットルームは、ほぼ1年後にプロジェクトを離れたときにまだ使用されていました。 場合によっては、シンプルが最良のオプションになることがあります。

その後、同じプロジェクトの重要な締め切りの間に、開発者、ビジネス分析者、プロジェクトマネージャー、およびクライアントを含むSkypeチャットルームを設定しました。これにより、一般的なグループが質問にすばやく対応できるようになりました。 開発者専用のチャットルームほど活発ではありませんが、それでも非常にうまく機能しました。 Skypeチャットは、いくつかのグループチャットコマンド、チャットロールの設定、アクセス許可の設定によって管理および制御できます。これにより、チャットルームをユースケースに合わせて実際にカスタマイズできます。 このような単純さの設定でさえ、リモートの生産性を向上させることができます。

リモートワークのベストプラクティス:バグ追跡

私が使用しているバグトラッカーから3つのことを知りたいです。

  • 私は今何に取り組んでいますか?
  • このソフトウェアの次のリリースのために私のプレートには何がありますか?
  • このリリースのソフトウェアのチーム全体の成果物は何ですか?

これらにはそれぞれ目的があります。

まず、「私は今何に取り組んでいますか?」:従来のオフィスで働くときは、バックグラウンドでおしゃべりをします。これにより、他の人が何をしているのかについての一般的な考え方がわかります。 「はい、私は現在これに積極的に取り組んでいます」というバグトラッカーシステムの明示的なマーカーは、リモートワークに同様のパターンと感触をもたらす可能性があります。

第二に、「次のリリースのために私のプレートには何がありますか?」 「私が責任を負っているバグ」または「私が扱っているバグ」を意味します。 すべてのチームには確かに行き来がありますが、バグを取得したいのか、リリースのためにバグを完成させるのに助けが必要なのかを誰に尋ねるかを知ることも良いことです。

チームがこのようにまったく機能しない可能性もあります。たとえば、ワークフローでは、各開発者に最初に1つのバグのみが割り当てられ、1つのバグが完了すると、割り当てられていないパイルが選択されます。 これも生産的です。

「ソフトウェアの次のリリース」は大きなものである必要はありません。「次のリリース」が意味するチームに参加しました。「3日後、クライアント向けに新しいアルファビルドをリリースします。 」。 しかし、この新しいリリースで何が予定されているかを知っておくのは、それでも誰にとっても良いことです。 特に、現在のチケットが完了したときに未割り当てのチケットを選択した場合。

投稿の下部に、特定のバグトラッカーに関するいくつかの推奨事項を含めました。

リモートワークのベストプラクティス:チームコミュニケーション

一部の人にとって、チームのコミュニケーションは、リモートまたは自宅からの作業で最も威圧的な部分です。 しかし、これはあなたがそれをさせた場合にのみ問題になります

オフィスでは、席に着く途中でみんなで散歩していると、ちょっとした冗談が出て、「こんにちは」と言われます。 あなたの同僚は、あなたが仕事をしていることを知っています。なぜなら、彼らはあなたが、向こうで、あなたの机で、仕事をしているのを見ているからです。

リモートワーカーはもう少し明確にする必要があります。あなたが彼らに言わない限り、あなたが働いていることを誰も知りません。 しかし、適切なコミュニケーション慣行を確立すれば、オフィスを散歩したり、エレベーターを降りたりするのではなく、ボタンを押すだけで同僚が利用できるようになります。

これらのヒントは、より大きなチームの一員としてリモート管理されている従業員にさらに当てはまりますが、それが唯一の開発者である場合に役立つ場合があります。

あなたの存在を感じさせる:見えないようにしないでください

WideTeamsポッドキャストエピソード48からこれらのアイデアのいくつかを取り上げました。

一日の始めに、IRC(またはチームが使用するツール)に乗って「こんにちは」と言ったり、人々の日々がどうなっているのかなどについてチャットしたりします。IRCに乗って子供や週末について尋ねることを意味する場合でも、スポーツチーム、または週末のハッキング。 あなたが現在家で一生懸命働いていることを人々が知っているとき、あなたは見えなくなることはありません。 関係を築き、あなたがそこにいることを人々に知らせましょう

チャットで他の人とチャットし、同僚との関係を維持するようにしてください。 これは、コーヒールームなどで人にぶつかったときとは異なります。コードをコミットしたり支援が必要になったときに人が準備できるように、明示的に連絡を取り、連絡を取り合う必要があります。

「開始日」、「ランチタイム」、および「戻る」メッセージ

自分の存在を感じさせるだけでなく、仕事をしていないときはリモートのチームメートに知らせる必要があります。 従来のオフィス環境と同じように、一日の残りの時間は姿を消して同僚をぶら下げたままにしたくありません。

他の多くの開発者とチームを組んでいる場合、またはリモートの従業員を管理している場合は、仕事の開始時にチェックインするのが理にかなっています。 シンプルな「おはようございます、皆さん」は、あなたがプロジェクトの作業を開始する準備ができており、家やベッドではなくなったことを人々に知らせます。

日中の昼食や休憩時間に「1時間で戻ってきて」というメッセージを送るのもいいですね。 リモートワークは多くの点で優れていますが、1つの厄介なシナリオは、同僚に質問しても応答がないことです。 30分間不在であるため、応答していませんか? それとも、彼らはゾーンの奥深くにいて、チャットを聞いていないからですか? 多分会議で? 「戻ってきて…」というメッセージは、これらの懸念を軽減し、ワークフローをスムーズにすることができます。

午後が終わったら、いつ戻ってくるかを人々に知らせましょう。 多分それは「朝に会いましょう」または「[x]を終わらせるために今晩遅くに戻ってください」です。 しかし、「1時間で戻る」メッセージのように、彼らはあなたのチームが適応できる特定の期待を設定します。

これらの問題のいくつかを解決するかもしれないSqwiggleと呼ばれる興味深いスタートアップがあります(私はまだそれを自分で試していませんが)。 数秒ごとにあなたの写真を撮るだけでなく、チームメンバーがあなたの写真をクリックしてビデオ/オーディオチャットを開始したり、テキストチャットコンポーネントを提供したりすることもできます。 写真の背後にある考え方は、あなたがあなたのコンピュータにいるかどうかを一目で見ることです。 (オンラインで誰かとチャットしようとしてすぐに返信がないことほど悪いことはありません。彼らは他の何かに追いついていますか?ゾーンの奥深くですか?チャット通知が表示されませんか?今すぐバスルームで?) WideTeamsポッドキャストエピソード83でSqwiggleについて聞いた。

ベストプラクティスを設定できるプロジェクトについて

リモートフリーランスのギグは常に異なります。 (それは魅力の一部です!)時々、あなたは純粋にスタッフの増強として開発者の既存のチームに連れてこられます。 たぶん、このチームはしばらく一緒にいて、その場合、彼らはすでにコミュニケーション慣行を確立しています。

一方、プロジェクトの開発者はあなただけで、技術者以外のクライアントと協力している場合もあります。 独自のソフトウェア開発のベストプラクティスを設定し、操作の実行方法をある程度制御できます。 以下は、私の10年ほどのリモートワーク経験からのいくつかのベストプラクティスです。 ほとんどの場合、これらは半週間(20時間/週)または1週間のスケジュール(40時間/週)を対象としています。

スタンドアップミーティング

プロジェクトの状況について話し合うためのスタンドアップミーティングの開催については、何か言いたいことがあります。 これらは従来のオフィスでは非常に一般的ですが、リモートチームにとって生産性が高くない理由はありません。これらは、クライアントと開発者の2者間のコミュニケーションを強化するためのもう1つの方法です。

従来のスタンドアップミーティングでは、昨日何に取り組んでいたか、今日何に取り組んでいるか、そして障害があるかどうかを尋ねます。 この形式は、チームの規模によっては機能する場合と機能しない場合があります。単一の開発者プロジェクトの場合、これらの実際の質問は意味がありません。

スタンドアップミーティングを開催する頻度は、チームの規模と文化によって異なります。 ただし、ここに私の推奨事項があります。

  • 1〜3人の開発者:週に2回のスタンドアップスタイルの会議
  • 4人以上の開発者:毎日のスタンドアップミーティング

1〜3人の開発者の場合、これらの質問はほとんど自明です。チケットを耕すときに個々の作業を追跡するのが簡単なので、各開発者が何をしているのかがわかります。誰もが何をしているのかを知っています。仕事。

大規模なリモートチームでは、より多くの部分が動いています。作業を複製したり、互換性のない変更を加えたりして、だれも誰かの仮想のつま先を踏まないようにする必要があります。

Toptalの週ごとの支払い構造を考えると、週に2回の会議は、クライアントが週の料金からだまされたと感じる前に、プロジェクトに関する懸念を表明するのに十分な時間を与えます。 週に1回の会議があるだけで、クライアントは仕事の質に不満を持っている可能性があり、開発者は成果物を調整する時間がありません。

高度なリモートチームには、自宅で作業しているときに実際の会議をスケジュールせずに、すべての利害関係者を同じページに保持する他の方法がある場合があります。 私はまだ誰かと電話/スカイプ/ハングアウトに乗って、そのように会議をするのが好きです。

小規模なチームの場合、週に2回のスタンドアップミーティングが非常に効果的です。コースの修正は迅速に行われますが、開発者は各ミーティング中に報告すべき重要なことがまだあります。

次のリリースでリモート配信

プロジェクトのサイズにもよりますが、小規模(1〜2人の開発者)の場合は毎週、大規模(3人以上の開発者)のプロジェクトの場合は隔週でクライアントに送信される成果物が好きです。 このリズムにより、開発者は、クライアントが表示できるインターフェイス(またはユーザーエクスペリエンスの向上)など、かなりの量の作業を完了するのに十分な時間を確保できます。

技術者以外のクライアントの場合、進捗状況を測定できる唯一の指標は、画面に表示されるものです。

開発者にとって、特に技術者以外のクライアントの場合、ユーザーインターフェイスで視覚化できる進捗状況が、クライアントにとって重要な唯一のものであることが多いことを覚えておくことが重要です。 技術者以外のクライアントは、今週500行のコードをプッシュしたり、Webサービスとのやり取りに苦労したりすることを気にしません。 進捗状況を測定できる唯一の指標は、画面に表示されるものです。 それは、バックエンドで良い仕事をすることが無関係であるということではなく、むしろ、クライアントの目にこのすべての良い仕事を具体的にする必要があるということです。

この画像は、特にリモートワークの状況での成果物の重要性を示しています。

つぶやき

だから私は毎週または隔週の成果物が好きです。 それより短いものは、開発者を困難な場所に置くことがよくあります。おそらく、2日間バックエンド作業を行うのに行き詰まり、インターフェイスを終了する時間がないため、クライアントに何も表示されません。

ソフトウェアプロジェクトの種類によっては、これらのクライアントリリースのすべてが一般にリリースされるわけではありません。 たとえば、Railsプロジェクトで作業している場合は、承認された変更をすぐにデプロイしたい場合があります。 一方、モバイルアプリでは、リリースを「1.3a10」と呼ぶことができますが、現在のリリースは、後で展開されるソフトウェアの新しい1.3バージョンのより大きな機能セットの一部にすぎません。

ここで、リモートバグトラッカーのベストプラクティスが役立ちます。 バグ追跡により、クライアントは次のことを認識します。

  1. この成果物のチームのプレートには何がありますか
  2. 完了している場合
  3. 作業がクライアントによって承認されている場合。

クライアントはこのリリースから何を期待できるかを知っており、開発者はどのような作業が先に進んでいるかを知っています。

リモートチームが継続的デプロイやかんばんを使用するのに十分成熟している場合は、それで問題ありません。 ただし、これらはどちらも非常に高度な手法であり、強力な開発者ベースの文化を持つ組織に適しています。 カスタムソフトウェア開発が必要であると見なされているがコストがかかるほとんどの組織は、おそらくこれらの手法のいずれにも対応できていません。 なんで? 私が見た2つのことは、クライアントが開発者に確認してほしい変更の数に追いついていないか、優先順位が急速に変化して開発が1つのことを実行できないことです。

推奨事項

ベストプラクティスを確立するチームにたまたま入った場合は、リモートワークを管理するためのツールを以下に示します。 これらは私の推奨事項にすぎないことを覚えておいてください。確かに、このガイドはすべての人を対象としているわけではありません。 これらのツールが気に入らない場合は、おそらくニーズに合ったツールがあります。

  • Planscope.io 、毎週モード。 これは、タイムトラッカー+バグトラッカー+プロジェクト見積もりツールであり、プロジェクト取り組んでいるときにクライアントに毎日メールを送信し、進捗状況と予算の観点から状況を確認できるようにします。 これは、1〜4人の開発者/月のサイズのプロジェクトに最適です。
  • App Trajectoryは、プロジェクトの見積もりと1〜2週間のチャンク(反復)への分割に重点を置いた小規模チーム向けのバグトラッカーです。 App Trajectoryは、反復で完了している作業の量と、すべての既知の作業が完了するまでの反復の数を示します。 これは、2〜12人の開発者/月のサイズのプロジェクトに最適です。
  • Pivotal Trackerは、アジャイル手法に焦点を当てたクライアント向けのバグトラッカーツールです。 これは、正式なアジャイルイテレーションを行っている場合、またはプロジェクトサイズを開発者/年で測定している場合に最適です。
  • チャット用のFlowDock 。 Flowdockには、プレーンなIRCやSkypeチャットに比べていくつかの利点があります。人気のあるサービスと統合するだけでなく、後ですばやく参照できるように会話にタグを付けることもできます。 FlowDockは、一般的なチャットとは別に、ステータスアクティビティ(コードチェックインなど)のリストも保持します。 (つまり、Webインターフェイスでは、自動ステータス更新が左側にあり、チャットが右側にあります。)
  • 繰り返しになりますが、 Campfireはチャットにも最適です。

結論

リモートまたは自宅で仕事を始めることは、あなたとクライアントの両方にとってかなりの調整になる可能性があります。 私はそれを非常に正しく、そして非常に間違って行ってきました。 しかし、うまくいけば、クライアントや雇用主が「タレントクランチ」の問題を解決し、主要な技術センターや「スタートアップ」ハブの外に住む開発者に幅広い機会を提供するための優れた方法になる可能性があります。 適切なベストプラクティスを導入してリモートで共同作業する開発者から得られる効率の全世界があります。