質問はこまめに、Web会議は少なめに:データエンジニアがテレワークに慣れるには
データエンジニアリングの仕事は多岐にわたります。さまざまな分析や機械学習をするためにデータを取り扱い、処理し、保存し、他のシステムとも連携するシステムを構築します。ワークフローとデプロイメントを標準化することで、チームの生産性は向上しますが、それでもなお、非常に多くの異なるシステムやサブシステムがあり、それらは常に変化しています。あらゆる状況でのデータエンジニアリングをすべて網羅した1冊の本やブログ投稿などは存在しません。この仕事をこなすためには、遅かれ早かれ、とは言っても早いに越したことはないのですが、他人との緊密なコミュニケーションが不可欠です。
どのような職場でもコミュニケーションスキルは必要です。そして、もはや独力で覚えて、誰にも何も尋ねる必要がないような単一のシステムやプログラミング言語だけで開発できる時代ではありません。それでも、データエンジニアリングのような職業に携わる人が誰かに助けを求めるのは容易なことではありません。少なくともオフィスでは、同僚のところまで歩いて行き、それとなくぼやくことができます。しかし、パンデミックが始まって以来、多くの人が在宅勤務を余儀なくされてきました。助けが必要な場合は、質問の内容をチャットやEメールで書き示さなければなりません。質問を作成しているときに答えが得られる場合もありますが、オフィスでは非常に簡単だったことも、リモートで質問内容を明確に表現することは時間と労力を要し、コードや完了したチケットを直接確認することができないことがストレスや欲求不満を高めます。
良い質問の仕方をするのが難しいと考えているのは決して私だけではないはずです。“how to ask programming questions” (プログラミングに関する質問の仕方)と検索すると、3億件以上ヒットするので解決策は「気にせずとにかく質問する」といったものよりもはるかに複雑なのでしょう。ここで、適切な質問の仕方については説明しません。それについてはGoogle検索に譲ります。しかし、私は言葉の使い方が最大の問題だとは思いません。むしろ、質問をすること自体がストレスになる理由に焦点を当て、それを緩和する方法について考えたいと思います。私たちはすでに長期間にわたりテレワークをしていますので、リモートで助けを求めるのを訓練するには非常に良い機会です。
問題解決の助けを求める際にストレスを引き起こす2つのことに焦点を当てます。ひとつは、自分の認識能力の不足が露わになってしまうこと。もうひとつは、助けを求める時期を決断しなければならないことです。この投稿では、比較的新しいシステムを使用していて、未知のことに遭遇せざるを得ない人を主に対象にしています。それでも、多くの人々は、テレワークでは同僚に気軽に質問する機会がなくなり、それがストレスになっているのです。
誰もが皆、自分よりも物知りのように思える
自分が知らないということを人に知られるのが恐ろしいのです。特にテレワークの場合にそれが顕著になります。オフィスでは、はっきりと頼まなくてもチームメンバーからサポートを受けることができます。何か問題を抱えていても、何も言う必要さえないかもしれません。心配そうな顔をしたり、ため息をつくだけで、誰かの助けを得るには十分でしょう。さらに、解決方法はある程度は見えているものの、なかなかたどり着けない場合は、同僚に愚痴をこぼすだけで苦戦していることが伝わります。ことさらに何かを頼む必要はありません。もちろん声を出して話し合うこともできますが、相手が沈黙していても、その顔色を見れば、賛成なのか反対なのかも分かります。しかし、リモートでは、誰からもコメントがないと、その沈黙が何を意味するかをどうやって知るのでしょうか?自分のメッセージを誰かか読んでくれたのか?考え方は正しかったのか?それとも間違っていたのか?あるいは、誰も答えを知らないだけかもしれません。それは意外とよくあることです。
オフィスで勤務しているときは、助けを求めるタイミングについて悩む必要もありません。長い時間取り組んでいて、行き詰まっているように見えれば、誰かが助けてくれるでしょう。テレワークでは、問題解決に取り組んでいる時間が長すぎると感じたときに、助けを求めるのはすべて自己責任です。私たちのチームの場合、通常は週に1日だけリモートで作業しています。メンバーは、その日は完全に仕事に集中できるので作業がはかどると言っています。問題が発生した場合は、オフィスに出勤した時に質問すれば済みます。しかし、毎日テレワークをしている場合は、もはやオフィスへ出勤する日まで待つことはできません。分からないことが生じたら、作業を中断してでもすぐに対処する必要があります。
テレワークでもチャットや電話で人々に尋ねることができるにもかかわらず、多くの人がテレワークの日が来る前に、質問に対する答えを得ていたいと考えていたようです。おそらく私たちは、テレワークでは中断を減らすべきで、自発的に質問するやりとりは難しいものと決めてかかっているのでしょう。
プログラマーが質問する方法について、Googleの検索結果が3億件もあることは前述しましたが、プログラマーが質問するのをためらう理由については、さらに多くの検索結果が得られます。一般の人は、プログラマーが簡単な問題であっても入念に調べた結果での回答を求めていることに驚かれると思います。何日もの調査、完璧な文法、キャッチーなタイトルなど、手間をかけた解決のヒントは、ボランティアの回答サイトに掲載されることが多いので、質問者はその回答により作業を進められることを期待するのは当然です。一方で、多くの開発者は、書くのに何時間、あるいは勇気を奮って何日もかかった半完成コードを提供しても、「このコードが何をしているのか全く理解できない」という嫌味な返事が返っていた時に味わう辛さを知っています。通常、質問者は回答者に返事をしませんが、回答した人に感謝の意を表することもあります(実際はどうあれ)、または、解決したのでもう助けはいらないと嘘をつくこともあるようです。
物事を簡単にする方法
仕事をする以上、問題は解決できなければなりません。多くの場合、助けを求める必要があるということです。理想を言えば、自分の努力を可視化することで問題が明確になります。実際のコーディングのための精神的なゆとりを残しておくために、楽に助けを求めるためのヒントを紹介します。
何度も実践する:とにかく、数多く質問してください。そして、疑問が湧いたらすぐに聞いてみてください。その前に基本的な批判的思考スキルが備わっていることを示しなさいと言う声は無視します。結局のところ、プログラマーとして正式に採用されているわけですから、同僚からの信頼を期待して良いのです。同僚との質疑応答は、Stack Overflow(QAサイト)とは違います。間違った質問をしたからといって評判が落ちたり、ましてやクビになることはありません。(先ほども書きましたが、良い質問を簡単に行う方法は、心配するのをやめて質問を始めることだけではありません。しかし、それはひとつの答えであるとも言えます。)
しかし、書物を読んだり、グーグルで検索することは、他人に尋ねる前の最初のステップです。それらは同僚もチェックする情報源でもあります。また、質問に答えるのは、各チームの少数の決まった人々によって行われることが多く、特にその回答が役に立ったとの評判がある場合は、質問が彼らによってすでに回答されていることもあるのでよく確認してください。
気楽に質問する:オンラインでも形式ばらずに質問することを「実生活」のように常態化することができます。多くの人にとって、これはまったく簡単なことです。予定がなくとも他の人を呼び出すことができます。しかし、開発者の場合は、電話での会話を避けたり、不意の中断をいやがる傾向があるので、日常的な質問でも予定に入れておくことは有益です。
一例として、私たちのチームは、オンラインで「コーヒーチャット」と呼んでいるチームミーティングを頻繁に開催していますが、議題は設定しておらず、参加者はただ立ち寄るだけでよいのです。最初のうちは、このコーヒーチャットを毎日開いていましたが、数週間後には参加する人が減っていきました。オンラインでの非公式な会議の開催は思ったより難しく、たとえば「Zoom疲れ」については、ここ(英語)にもあるように、すでに多くの記事が書かれています。言葉以外できっかけを作れるものが欠けていたり、同時に会話ができなかったりすることが原因で、気楽に質問をする場所ではなくなり、負担を感じるようになっていきました。しかし、私もチームメンバーも、定期的に集まって、仕事に関連する質問を行う時間帯を設けるのは良いことだと感じていたので、週に1回だけ会議を持ち、それ以外は仕事に集中することにしました。
このウィークリーチャットは、十分に詰められていない質問もできる時間枠を提供することにかなり成功していますが、テキストチャットやチケットにコメントすることが面倒な大きな質問についても話し合うのに適した場所になっています。また、議題は決められておらず、ほとんどの人が出席していることから、大局的な話しをするよい機会でもあります。オフィスに勤務していた時期には、ランチやコーヒーブレークの間にいるのは、ほんの一握りの人々だけでした。もちろん、どのような会議でも、ただボーっとしている人がいると差しさわりが出ますが、少なくとも必要な人さえいれば助けを借りることができます。
文句を言う:時には声を出して文句を言うことも大切なことです(面と向かって、あるいはリモートでも)。私のチームメンバーは、「問題を解決する方法についての即効的なプランがなければ、先に進める方法が分からない」と、はっきり口に出して言えることは非常に爽快であることに気付きました。さらにリフレッシュできるのは、上司や同僚から「なぜもっと早く話してくれなかったのか」という反応ではなく、その代わりに、支援の申し出や簡単な励ましの言葉です。何をすべきか分からなくても大丈夫であることが分かると、仕事のストレスが大幅に減ります。私たちは新しいものを開発しているのですから、その未知の領域でも居心地よく感じられるのは素晴らしいことです。
カテゴリ