$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

オフィスでの仕事で何が生まれていたか a.k.a リモートワーク時代でも取り戻したいもの

この一年、オフィスのオフラインでの仕事から、一気にリモートワークのオンラインでの仕事に切り替わった。その中で色々困っていることが共有されているが、特に雑談がしづらくなったというデメリットを見かけることが多い。

そこで今回は、リモートワーク時代でもオフィス時代のメリットを享受するためのヒントを得るために、オフィスの仕事で何が生まれていたかを少しだけ掘り下げて考えてみたい。

僕はオフィス時代では次の3つが生まれていたと考えていて、リモートワーク時代でも取り戻したいと考えている。

  • 偶然のアイデアの発見
  • 複数人が勢いで何かをやっていく熱量
  • 自然な知見の横展開

偶然のアイデアの発見

  • オフィス時代ではその辺で会話していたら、それを周りで聞きつけた人が別職種・別チーム問わずやってきて、簡易ブレストみたいになることがあった。それにより新しい機能アイデアとか、ちょっとした改善アイデアが偶然発見されたりしていた
  • 出張して来た人と雑に話していたときも、実はこういうこと困ってるんですね〜から、それシュッと改善できますよ、みたいな話に発展することがある

今は「能動的に話に行く」ことはオンラインツールで出来るのだけど、「受動的に気になることが聞こえてきたので会話をしに行く」みたいなのは実現出来てないので、この問題が起こってそうに見える。

複数人が勢いで何かをやっていく熱量

  • オフィス時代では、会話していたら熱量が上がってきて、2~3時間くらいで複数人でガッと取り組むことで、何か動くものが出来るということがあった
  • オンラインで、熱量が上がってきて勢いで作る、ということが中々起こりづらく感じる

コミュニケーションツールでの解決ではなく、強制20%ルールといったやり方を使い、数人で取り組めるゆとりの時間で解決する、みたいな方法もあるかもしれない。

自然な知見の横展開

  • ランチや休憩スペースで偶然居合わせた人と、最近こういうことをチームでやっているとか、こういうこと困ってるみたいな話から、自然と知見が横展開されていた
  • あとこれわからない!!みたいな相談をチーム内でしていたら、周りで聞いていた別チームの人がやってきて教えてくれることもあった
  • それ以外でも、仕事とは直接は関係ない疑問(例えば自作ツールでうまくいかない!とか)みたいな話を、詳しそうな人をちょっと捕まえて話すみたいなことが出来ていた

オンラインになって、おりゃっと突撃するのがしにくくなったり、偶然居合わせるということがなくなったりすることで起きてきている問題だろうか?話しかけても良いかどうかを非言語情報から察知できなくなったことも要因かもしれない。

仕事以外の会話がしやすい雑相談Slackチャンネルやグループみたいなものがあってもいいかも。

まとめ

今回はオフィス時代のメリットを少しだけ深掘りすることで、リモートワーク時代でも取り戻したいものについて考えてみた。このように深掘りすれば、単純に「リモートワークでも雑談を増やそう」以外だけでなく、組織構造などを変えることでアイデアを発見しやすくしたり、スクラム開発など開発フロー面で対策を取ることで熱量を起こすといった別の対策も考えられるだろう。個人的にはリモートワークをせざるを得ない状況になることにより、場所の制約から解放されるチャンスが生まれていると思うので、どんどんリモートワークでもいい感じに働ける工夫をしていきたい。

TypeScriptで「Reactを自作しよう」をやってみた

最近2分間コーディングのすすめ、コードを書く習慣のハードルを下げるに触発されて2分間コーディングをやってみている。まずは昔興味が出ていたReactを自作しようをやってみたのでメモ。

やった様子は https://github.com/shibayu36/building-own-react に置いた。メインファイルは https://github.com/shibayu36/building-own-react/blob/main/src/index.tsx

create-react-appしたままだと色々おかしくなったのでejectして手直ししたり、JSXのtranspileを置き換えるためにwebpackの設定を少しいじったりしたところが苦労した。そのあたりについては https://github.com/shibayu36/building-own-react/commits/main を眺めると様子がわかると思う。

学べたこと

  • Fiberという仕組みによって細かく作業単位を分割しながらレンダリングし、ユーザーのインタラクションを妨げないようにしている仕組みについて理解が深まった
  • Reactの型構造について理解が深まった
  • JSXの解釈を自分で実装する方法が学べた
  • requestIdleCallbackを使った無限ループっぽい仕組みによって、変更を監視する手法を学べた
  • ReactのRender PhaseとCommit Phaseそれぞれでやっていることの理解が深まった
  • 差分検出の簡単な流れについて理解が深まった

数百行くらいのコードで、JSXのtranspile・render・差分検出・関数コンポーネント・useStateが簡単に使えるものが出来上がるのはすごい。作った後にReactを使っているコードのスタックトレースを眺めていたら、今回作った関数名などが出てきて理解しやすくなったなと感じた。

参考

AirPods ProとKrispでリモートミーティングの音声を快適に

最近家族と同室でリモートワークをしている。自分と家族は別々で仕事をしているので、家族が電話中の時に自分はミーティングをしていることがよくある。その時、家族の声によってミーティングの声が聞き取りにくくなったり、家族の声がミーティングに入ってしまうと、快適なミーティングができなくなってしまう。

この問題に対処するため色々試したところ、AirPods ProとKrispを使うと非常に快適になるということが分かったので紹介。

家族の声でミーティングの声が聞き取りにくくなることを防ぐ

これは単純でAirPods Proのノイズキャンセリング機能がかなり優秀なので、それをONにするだけで終了。

ただノイズキャンセリング機能を使うと自分の声が聞き取りづらくなるという問題もあるので、静かな時は外部音取り込みモードにしている。AirPods Proはイヤホンを長押しすれば、外部音取り込みモードとノイズキャンセルモードを瞬時に切り替えられるので便利。

家族の声がミーティングに入ってしまうことを防ぐ

次に家族の声がミーティングに入ってしまうことを防ぎたい。

まずAirPods Proは、PC付属のマイクと違ってそこまで周りの音を集音しないので、それだけでもだいぶ家族の声が入るのを防いでくれる。その上で大きめな声だと少しだけ入ってしまうので、Krispを導入して、よりノイズキャンセルするようにした。

jp.vcube.com

AirPods Pro + Krispを使うことで、部屋の中で自分と家族が会話していたとしても、自分の声しかミーティングには入らない状況にできて満足している。

こちらも、そもそも静かな時は全部の音を伝えた方が臨場感も出るかなと思い、静かな時はノイズキャンセリングをオフにしている。Krispは1クリックでオンオフを切り替えられるので良い。

f:id:shiba_yu36:20210413100237p:plain:h300

参考: 他の人の音声のノイズを消す

これはKrispを導入するまで知らなかったのだけど、Krispは他の人の音声のノイズを消すこともできる。これも非常に便利で、例えば一時的に外出している人と通話をしていて会話が聞こえづらい場合に、こちら側でノイズキャンセリングを有効にすることで会話が捗った。

まとめ

今回はAirPods Pro + Krispでリモートミーティングの音声を快適にする体験について書いてみた。参考になれば嬉しいです。