オールアバウトTech Blog

株式会社オールアバウトのエンジニアブログです。

【集計!】リモートワーク化での開発環境〜僕の私の最強のリモワ環境〜

はじめに

開発の@k_takeと申します。 フルリモートでの働き方が浸透してから1年が経とうとしています。 変動した環境に対応してきた皆さん。ベストなパフォーマンスを発揮するために行っている習慣や環境構築(物理)があるのではないでしょうか!?

そんな好奇心から、社内でアンケート調査を行いました。 回答してくれたのは弊社の1~15年目までのエンジニア12名です。 ここではその回答をピックアップしながらいくつかご紹介したいと思います。

f:id:allabout-techblog:20210222192725p:plain

Q1. リモートワークのために環境面で変えたことはありますか?

リモワになったにあたって、なにか変えたことがあるかをお聞きしました。 回答は以下の通り

f:id:allabout-techblog:20210203093648p:plain

回答者全員が『環境面での変化あり』!これは期待値が高まります。

Q2. リモートワークの中で、新しく導入したグッズがあれば教えて下さい

実際に皆さんは何を導入したのでしょうか。結果はこちら!

f:id:allabout-techblog:20210203093530p:plain

効果に関しても聞いてみましたので、ピックアップしていくつかご紹介します

ディスプレイ系

  • やっぱりmacのディスプレイ1つだと開発しにくい、2つでちょうど良い
  • 大きい画面のサブディスプレイを導入したことで画面の有効活用ができ、効率が上がりました
  • iPadを固定して、音声操作でポモドーロテクニックを実施しています。アラームやタイマーを使用する際に便利。 キーボードや画面から目を話さず作業できるのが楽

自分のもっとも好みなサイズ、位置でディスプレイ配置ができるのは、やはり良いですね。

iPad&音声操作やEcho dotという回答もありましたが、周りを気にせず音声操作できるのもリモワならでは。

キーボード系

  • キーボードを別で買ってディスプレイを遠くに置けて疲れにくい
  • 定位置から手を動かすことが減ったので楽になった
  • HHKB→タイピング速度向上によりこころなしか開発スピードも向上した気がします

弊社開発ではMacBook Proを用いた開発を主でして、私目線ではオフィス業務の時代は付属キーボードを使用している開発者が多めの印象でしたがこれをきっかけに、キーボードも別で用意した方が多いようです。

椅子系

  • PCスタンドで姿勢が良くなり疲れにくくなった
  • クッション、椅子 - 体の節々の痛みが治った。姿勢が良くなった
  • バックジョイ→腰痛で悩まされる、ということは今のところ無いです
  • 家庭用のオフィス椅子で、長い時間座っていても居心地が良いです
  • もらった椅子が結構高いものなのか座りごごちが良くて疲れにくいのもいい

節々の痛みが改善したコメントが多く見られる気がします😂 腰痛との戦いですね。ここに来て座る環境の大切さを再認識します。

ちなみに、弊社では、リモートワークの長期導入に伴い、社員の希望者に対して会社からオフィス用チェアを提供いただいた経緯がございます。 ありがたい福利厚生。。。実際 助けられたコメントも多く見受けられました。

嗜好品

  • お菓子を買い込んでおけるので、朝、コンビニに行ってその日のテンションでお菓子を買って1日で食べて終わっていた頃より、自分がなんのお菓子を平均すると最も食べているのかが意識できるようになった。
  • ploom tech:室内で吸える、集中力切れた時に落ち着く

嗜好品を自室で楽しんでいますね。健康にはお気をつけて。

環境

  • 仕事用に隔離環境をつくったところ、メリハリがついてやりやすくなりました
  • 家でも仕事ができるという状態から、家で快適に仕事ができる状態になった
  • 職場より快適に仕事ができている
  • 仕事しやすくなった

自分専用の環境構築ができ、喜びのコメントがいくつか。 家の空間が必要としている役割が増えていることも感じます。

Q3. リモートワークのために習慣面で変えたことはありますか?

次に習慣の面での変化に関してもお聞きました。

f:id:allabout-techblog:20210203093946p:plain

Q4&Q5. 新しく導入した習慣とその効果

Q4 リモートワークの中で、新しく導入した習慣があれば教えて下さい
Q5 新しく導入した習慣の効果を教えて下さい!

実際の導入した習慣と、その効果について。いただいたコメントからピックアップしてご紹介します。

散歩

  • 通勤が唯一の運動だったのでその補填です。体が鈍るのが防げてる気がします。
  • 思考の整理や効率的な休憩になった
  • 体が軽くなった

レーニン

筋トレ、ランニング、毎朝のロードバイクなど
  • 12kg痩せた
  • 気分のリフレッシュができて良い。
  • キックボクシングを始めた

チームでの仕事の進め方

朝会、夕会、モブプロ・ペアプロの導入
  • リモートになり体調などの様子が分かりづらい状況から、朝会や夕会などで話すことでわかりやすくなった
  • 進捗の報告よりも雑談も織り交ぜながら進めている

全体を通して

レーニングや、リフレッシュの習慣を取り入れている方が多く見受けられます。 やはり健康面は意識しますよね。今回のタイミングで生活を見直し、生活習慣が改善している方もいらっしゃいました。

また、周りの環境が見えづらい今だからこそ、双方から歩み寄るような業務上の工夫が見受けられました。 集中するための環境構築だけでなく、コミュニケーションを取る工夫も大切ですね。

さいごに

いかがでしたでしょうか。個人的なところですと、ほか開発者の『こだわりポイント』の一端を知ることができ、単純に楽しかったですし、参考になりました。

今後にも環境の変化があったとしても、今までの業務ハックは活かせる部分があるはずです。新しい試みをうまく組み合わせながら今後も開発に勤しみたいと思います。それではまた。

2020年の年末LT会はオンラインで開催しました

はじめに

こんにちは!オールアバウトナビ、システム部の@k_shiotaです。

昨年の年末、 2020年を締めくくるべく年末LT会を行いました。
基本リモートワークとなるため、当日はオンラインでの開催となりました。
今回はその様子をお伝えしたいと思います。

続きを読む

2020年に開催した社内ワークショップまとめ

この記事は、All About Group(株式会社オールアバウト) Advent Calendar 2020 17日目の記事です(大遅刻申し訳ありません!)

@amymdです。そろそろ2020年も終わりに近づいてきましたね。
今年は新型コロナの影響でリモートワーク中心の働き方に変わった一年になりましたが、定期的に開催しているエンジニア向けワークショップもリモートで開催されるようになりました。そこで、今年社内で開催されたワークショップについてまとめて報告したいと思います!

  • 1.新しくなった開発環境とこれから
  • 2.今回のコロナ対策とそこから見えてきたもの
  • 3.チームごとの振り返り
  • 4.オールアバウトのネットワーク構成
  • 5.「最近何やってるの?」LT
  • 6.データポータル見せ合う会
  • 最後に
続きを読む

初のフルリモート体制で新卒が素直に書く! ~新卒でオールアバウトナビに配属されて~

はじめに

こんにちは!オールアバウトナビ(以下からナビで省略します)システム部に新卒入社した@monpeiです。

今年就職された方は同年代のエンジニアがどんなことをやっているか気になりませんか?また、来年就職される方や現在就職活動中の方、来年からの仕事に不安を感じていませんか?

私は入社前福島にある大学に通っていましたが、東京で一人暮らしをすることが決まり、不安と期待が高まっていました。 しかし4月からフルリモートの社会人生活のスタートが近づくにつれ、不安の方が強く感じるようになりました。 「どんな社員がいるんだろう?」、「コミュニケーション取れるのかな?」、「業務について行けるかな?」など頭を過ぎっていました。

今回は本配属から半年を経てどのような業務をしたか、コミュニケーション不足・モチベーション低下の解消のためにやっていることについてお話します。少しでも共感する部分があったり、不安を抱えている方が少しでも解消いただける内容になっていれば幸いです。

ベテランの方でも「新卒って何考えてるんだろう〜?」位な感じで読んで頂ければと思います。

ナビの詳細は下記のリンクからご確認いただけます。 www.allaboutnavi.co.jp

4月から現在までのやったこと

4~6月末 研修

主にgitや社内で使用している言語やフレームワークなどについて学びました。

下記リンクから新卒研修の詳細が確認できますので、ご興味ある方はご一読ください。 about.allabout.co.jp

ナビに本配属、業務スタート

7月〜8月初旬

配属されて初の作業は、ローカル環境で開発を進めらるようにDocker環境の構築をしました。 続いてDocker環境構築後に、弊社のウェブサイトやcmsの軽微な修正や機能追加、広告のタグ差し替えなどを行いました。 修正の内容はサイトから一部リンクを削除と新しいリンクにリダイレクトするというとても簡単なものでしたが、初リリースができた時は非常に嬉しかったです。

8月中旬〜10月初旬

業務にも段々と慣れ始め、任されるタスクも少しずつですがレベルが上がってきました。 以下のようなプログラムを作成しました。

  • GKE上で動くバッチ処理(CronJob)で定期的にデータベースのレコードに変更を加える
  • 自動で毎日決まった時刻にCloud Functionsを実行し、Node.jsを用いて集計対象のサイトへスクレイピングをかけ、取得したデータをレポートとしてスプレッドシートに書き込む。

10月中旬〜現在

主なトピックとしては使用しているフレームワークをLaravelに変更するため動いています。 また開発ではありませんが、Team Tech Ballというエンジニアのためのエンジニア主導の組織横断チームに加入しました。

今までの振り返り

業務で実装した集計の自動化の話

背景

では続いて私が業務で実装した集計の自動化の話です。 弊社サービスの一つであるcitrusは外部ニュースサイトにもフィードを行っており、そのフィード先での記事のタイトルやpv数などのデータを集計する作業がありました。 一回の集計作業にかかる時間はさほどかかりませんが、毎日行う必要があり長い目で見ると時間がかかるため、集計の自動化をすることになりました。

citrusの詳細は下記リンクからご確認いただけます。 citrus-net.jp

実装内容

以下今回のタスクの条件です。

  1. 毎朝指定の時間に処理を実行する
  2. フィード先の管理画面(集計するデータが閲覧できる)にログインし、データを取得する
  3. 取得したデータを集計専用のスプレッドシートに追加する

上記の条件を実装する方法はいくつか考えられましたが、今回は下記のような実装を行いました。

f:id:allabout-techblog:20201214092059p:plain
集計自動化のフロー

ナビでは集計の自動化でCloud FunctionsとNode.js + Puppeteerで動いているプログラムがあり、その前例が役立つと考え、これらの技術を選定しました。また、私自身がCloud FunctionsやNode.jsはほとんど使用したことがないことから、自分のスキルアップにも繋がり、ありがたかったです。

流れとしてはCloud SchedulerがCloud Pub/Subを介してCloud Functionsを起動させます。 次にCloud Functionsがフィード先の管理画面にログインし、スクレイピングをかけデータを取得します。 最後に取得したデータをCloud Functionsを用いてスプレッドシートに追加し処理が終了します。 Cloud FunctionsはNode.jsで動いており、スクレイピングはPuppeteerというライブラリを用いています。

Cloud Scheduler

https://cloud.google.com/scheduler/docs/quickstart

Pub/Sub トリガーのCloud Functions

https://cloud.google.com/functions/docs/calling/pubsub?hl=ja

Puppeteer

https://github.com/puppeteer/puppeteer

所感

使用した技術はどれも初めて使うものだったので調査や慣れるのに少し手こずりましたが、自分が知らなかった技術を学ぶことができ、自分が開発で使える選択肢を増やすことができました。 Cloud Functionsはサーバレスアーキテクチャのため、サーバーを立てる処理がいらないことが非常に便利だと感じました。

また、自動集計の実装後に社員から「業務効率が上がった」、「ありがとう」などと言ってもらうことができ、非常に嬉しく思いました。

フルリモートの環境に慣れるまで

コミュニケーションが取りづらい、自宅作業でモチベーションが上がらない時が多々あった

今年はコロナの影響を受けて働き方に大きな変化があった年だと思います。 リモートワークは一長一短かと思いますが、私はコミュニケーションのとりずらさに戸惑いを感じたり、思っていたよりも他の社員との関わりが少なかったことから不安を感じたりしました。 また在宅で仕事へのモチベーションの維持が難しかったり等、慣れるまで少し時間がかかりました。 特に私と同様に今年新卒の方であれば共感していただける部分があるのではと思います。 自分なりにどうやって、コミュニケーション不足を解消したか、また仕事へのモチベーションを上げた取組をいくつか紹介したいと思います。

コミュニケーション不足解消、モチベーションを維持するためにやったこと

前述で触れましたが10月にTeam Tech Ballというエンジニアのためのエンジニア主導の組織横断チームに加入しました。 Team Tech Ballに関しては下記の記事に詳細が記載されています。よろしければ合わせてお読みください。 allabout-tech.hatenablog.com 加入を決めた理由は沢山あるのですが、決め手になったのは二つです。 一つ目は現在ナビのエンジニアは私含め二人しかおらず、エンジニアとの接点が少ないことです。 加入することで、他のグループ会社のエンジニアと関わってコミュニケーションをとりたい、技術的にスキルアップしてできることを増やしたいと強く感じました。

二つ目は、自分がベンチマークにしていた方がTeam Tech Ballに所属していたためです。 私は最新の技術を突き詰めることよりも、自分の仕事や作ったもので誰かが喜んでくれたり、感謝してもらえるようなエンジニアでありたいと考えています。 ベンチマークにした方は、リーダーシップがあり、マネジメント能力が高く、常に誰にでも親切な方です。 「10年後あの人みたいになりたい!少しでも近づきたい!」と思える人と一緒に仕事をすることでモチベーションが上がりました。 まだまだその方に追いつくには技術的にも人間力的にも先が遠いので精進したいと思います!

現在はナビの業務とは別に、Team Tech Ballの活動の一貫で、社内のエンジニアの勉強・交流会の企画や、自社内の勉強会などのイベントを管理するツールの作成を行っております。 中々はじめは業務上関わる人が少なくコミュニケーションが取りづらいと、もやもやしておりました。 自分から新しいことにチャレンジする、新しい環境に飛び込むことで、以前より仕事への充実感が増してきたのを感じています。

新しいことや環境にチャレンジしたり、飛び込むことは勇気がいることですが、それをしなくてはいけない環境に身をおいてしまえば、案外何とかなることが多い気がしております。 こんな時期こそチャレンジ精神を忘れずにがむしゃらに突き進んで行きたいと思います!

ナビシステム部内での取組

続いてナビシステム部内で毎日行っている朝会についてお話します。 ナビのシステム部内では上期の途中から他の開発部署の取組や業務の仕方を積極的に取り入れ、日々業務の仕方を改善しております。 その中でも、上期の終わりくらいから朝会を導入したのですが、私のモチベーションを上げた要因の一つでしたのでご紹介できればと思います。

以前ナビでは業務終了前の夕会しか行っておらず、話す内容も進捗度合いの報告がメインで、どこに悩んでいたのか、悩み中なのか等を共有する時間を設けてはいませんでした。 私の部署の先輩方は非常に優しく、質問や相談をしやすい環境にはあったものの、リモワの場合相手がどんな状況にあるかが把握しずらく質問や相談をするハードルが高いと感じておりました。 そんな中、上期の途中から毎日業務開始後すぐの15分位を使って朝会を始めました。 朝会を通してその日やることの共有と、前日やったことをjamboardを使って簡単なモチベーショングラフを書き、共有を行っています。

以前よりどこに悩んでいたのか、悩み中なのかが共有しやすくなり、話すことで自分だけで抱え込まずにすむため気持ちが楽になりました。またメンバーの状況もよく把握できるようになりました。他のメンバーがどのくらいのタスクがあって、どこに悩んでいるのかなどの状態も把握しやすくなり、「〇〇さんのタスク僕が巻き取ります!」などが言いやすくなりました。

また朝会ではありませんが、金曜日に行っている振り返りでは、技術の話だけでなく雑談を交えながら次週チャレンジすることを話しています。 このような取組をきっかけに、メンバーとの距離感もわかってきて質問や相談が非常にしやすくなりました。 ぜひコミュニケーションが不足していると感じたチームは朝会を導入してみてはいかがでしょうか?

最後に

本配属から半年を経て私が大事だと感じたことは大きく二つあります。

一つは日々の業務を流れ作業にしないことです。 業務を覚える、できることが増えるようになることは良いことですが、その反面慣れも出てきてミスをする恐れもあるということを学びました。 月に一度は自分を見直す時間を設け、できるようになったことと、慣れが出てきた部分を洗い出してみようと思います。

二つ目はコミュニケーションは大事だということです。 当たり前のことを書いておりますが実体験として、コミュニケーションが不足すると、長い目で見たときに実装の進捗具合に遅れがでたり、モチベーションの低下に繋がることを実感しました。 リモートワークでもコミュニケーション不足にならないようにしながら、リモートワークだからこそできる仕事の仕方を模索したいと思います。

最後まで読んでいただきありがとうございました。少しでも皆様のお役に立てる記事になっていれば幸いです。

golangでCloud Monitoringのデータを元に稼働率を取得するようにした話

こんにちは!オールアバウト SREG@y_hideshi です。

今回はGCPのモニタリングサービスであるCloud Monitoringのデータを元に稼働率を取得するようにした話をしたいと思います。

背景

オールアバウトでは、Cloud MonitoringのUptimeCheckという機能を利用してURL監視やサービスの稼働率をチェックしています。

f:id:allabout-techblog:20201026114142p:plain
Cloud Monitoring:UptimeCheckの画面

上記の画像にある通り、URL単位で稼働率を画面上から確認することができます。ただ、UptimeCheck数が多くなると、各画面に遷移して稼働率を確認するのは大変になります。

そのため、このチェックを自動化しようというのが今回稼働率を自動取得しようとした背景です。

Cloud Monitoringのデータ取得はCloud Monitoring API経由で取得することができ、Cloud Monitoring APIを扱う場合はgolangで便利なパッケージが提供されているので今回はそちらを使用します。

続きを読む