[データアナリティクス事業本部] 子育てエンジニアの1日の働き方を紹介します!

子供と.vimrcを育てるエンジニアの1日を紹介します。
2021.10.04

こんにちは!私は今

データアナリティクス事業本部(DA事業本部)
ビジネスソリューション部
ビッグデータチーム

という所に所属しています。やたら名前が長いですね。。 一言で言うと「AWSを使ってお客様のデータ分析基盤環境を作成する」というお仕事の部署になります。

さて、このビッグデータチーム、というかビジネスソリューション部、 クラスメソッドの中でも群を抜いて「新しいメンバーを採用できないとまずいぞ!」と言っている部署です(当部比)。 ということで、ビッグデータチームのエンジニアの働き方というものを知って頂いて、 少しでも引っかかるキーワードがあれば会社説明会などに参加して頂ければなーと思っております!!

このブログでは採用ページの Pythonエンジニア(データアナリティクス事業本部) という枠で募集を行っている職種を想定して書いています。 が、仕事内容以外はデータアナリティクス事業本部の他の部門でもあまり変わらないかと思いますので、 他の部門が気になっているという方にも参考になればと思います。

自己紹介

自己紹介というか、私の今の立ち位置はこんな感じです。

入社してちょうど丸3年が経過しました。 現在はサーバレスのETLシステムの設計・開発を行っています。 最近は案件の開発リーダー的な立ち位置で、 お客様のご要望を実現するためのアーキテクチャ設計をして、 その実装をチームメンバーにお願いしたり、自分で実装したりしてます。

Vimっていうテキストエディタでコードを書いてます。

現在は原則リモートワークです

まず前提として、現在クラスメソッドではほぼ全社員がリモートワークで勤務をしています。 クラスメソッドではもともとリモートワークを取り入れており、 私も週1〜2日くらいリモートワーク、残りを出社という生活をしていましたが、 コロナ禍の現在は完全にリモートワークになっています。 もう1年半以上オフィスに出社していないです。

このブログでの内容は、基本的に家でのリモートワーク前提で書かれていますので、 無事コロナ禍が終わった時にはある程度違う内容になるものと思います。

1日のスケジュール

そんなリモートワークでの、ある一日はこんな流れでした。

08:30:子供を保育園に連れて行く
09:00:勤務開始、やること確認、実装
10:00:プロジェクト朝MTG
10:30:設計・実装
12:00:お昼
13:00:ブログ
14:00:Meetでメンバーと相談
15:00:設計・実装・レビュー対応
17:00:家事育児のため中抜け
20:00:仕事再開、設計・実装
21:00:退勤

この日はブログに時間を取れてますね。 正直なところ、毎日コンスタントに時間を確保するのはなかなか難しいです。 ですが、どちらにしても、私はまとまった時間で書く派なので、逆に2時間以上確保する日もあります。

閑話休題。ポイントをいくつか紹介します!

フレックスタイムと中抜け

クラスメソッドでは現在コアタイムなしのフレックスを採用していますので、 始業するタイミングは自分でコントロールできます。 私は子供を保育園に送っていく時間が決まっているので、 家に帰ってきて一息ついたら業務開始しています。

また、夕方に子供が保育園から帰ってきたタイミングで、 お風呂に入れたり夕食を作ったりという家事育児が発生するので、 そこで長時間の離席してから夜に再開する流れが最近のお決まりパターンになっています。

業務中でも都合が付けば中抜け休憩を取得することができますので、 メンバーに了承をもらってこんな形で動いています。 休憩中もSlackで連絡がくれば簡単な対応はすぐできますし、 結局は家にいるので、必要であればすぐ戻って対応ということも可能です。

Slackが業務の中心

社内でのコミュニケーションはSlackがメインです。 これはリモートワークだからというより、物理出社をしていた時から既にそうでした。 このベースがあったので、フルリモート体制となった今でも、 「出社してた時とあんまり変わらないじゃん」という感じがします。

私の業務の中心は設計や調査、実装なので、一人で黙々とやる時間も結構多いです。 ではずっと黙々やってるかというと、あまりそんな感じはしません。 というのも、Slackでパブリックチャンネルでのやりとりは常に見ることができますし、 分報(独り言つぶやく部屋。社内ツイッター的なもの)でしょっちゅうつぶやいているので、 つまずいているポイントについてアドバイスがもらえたりもします。 なので、コミュニケーションはミーティングの時だけという感覚はほぼなく、 むしろ常に誰かとコミュニケーションを取っているという感覚の方が強いです。

一方Google Meetなどを使った口頭でのコミュニケーションも結構あります。 案件のミーティングだけでなく、ちょっとした相談事や雑談など、 テキストコミュニケーションでは難しく感じる時に活用します。 なお、私が現在携わっている案件のメンバーの所在地は、東京周辺、北海道、韓国(!)なのですが、 完全リモートで業務を行っているため、 物理的な遠近よりもインターネット回線の太さの方がメンバー間の距離に直結します。笑

国を隔てたメンバーがいても普通に業務が回せている状況1ですので、 日本中のどこに住んでいてもインターネットさえ繋がれば問題なく仕事ができます。

社外コミュニケーションもSlack

社外のお客様とのやりとりは、もちろんお客様のご要望次第ですが、 SlackやBacklogなどのプロジェクト管理ツール上でのやりとりが多いです。 メールはほとんど使っていません。 一度送ってしまったら修正できないコミュニケーションつらいです。。。

定例会やミーティングなどはZoom、Teamsなどを使用することが多いです。 以前は週に1回お客様オフィスでの打ち合わせを行っていた時期なんかもありましたが、 コロナ禍を経た後の世の中では、エンジニアが対面の打ち合わせに行く機会はあまり増えないんじゃないかなと思っています。

ブログと資格は頑張り所

クラスメソッドではブログ執筆は業務ですので、業務時間内に書くことができます。 むしろセルフマネジメントして書く時間を確保できることが望ましいです。 ノルマはありませんが、ブログを書くことは職務記述書にも明記されていますので、 書くことがきちんと評価につながるということは間違いなく言えます!

また、似た性質のものとして、AWS認定資格の取得があります。 こちらも必須というわけではないですが、勉強内容が業務に直結することもあり、取得が推奨されています。 業務時間内での受験も可能ですし、受験料補助の制度もありますので ガッツリ利用してどんどん資格を取ってください!

なお、AWS以外のクラウド資格なども受験補助があり、 社内にはそれらをコンプリートしてしまった人なんかもいて、 全社的に資格を取ることが当たり前という雰囲気があります。

3大クラウドの資格を全種取得して38冠になってみた

残業や休暇、休日出勤など

月の残業時間については、平均10時間σ=5時間の正規分布でモデリングできそうな感じです(めっちゃデータ少ないけど)。 毎月、8時間×営業日分の稼働が必要なのですが、ショートするのは残念なので、 毎日8+α時間で働いて、たまに早めに上がって、とやっていくとこんな感じになると思います。 忙しかった月でも今の所20時間ぐらいでした。

有給休暇については、あまり意識していないですが、消滅はしていないと思います。 というのも前述の通り、クラスメソッドでは現在コアタイムなしのフレックスを採用しているのと、 業務中でも都合が付けば途中で中抜け休憩を取得することができますので、 本当に1日がかりの用事とかでない限り、有給休暇を取得せずに済んでしまうことが多いです。 そして昨今はコロナ禍ということもあり、残念ながら、休みを取って遊びに行くぞ!っていう用事がないんですよね。。。 休みの1週間前くらいに言えば、間違いなく取得できていると思います。

また、休日や深夜の勤務はほぼないと言っていいと思います。 やや特殊な案件に参画しているときに数回深夜勤務がありましたが、それ以外の案件では経験はありません。

子育てにもってこい

最後に、ちょっと戻りますが、強調させてください!

子育て家庭としては リモートワーク × 中抜け の組み合わせは最強です!!!!!

妻もリモートで仕事していますが、私の方が時間に融通が利くので、 保育園の呼び出し対応などは私の方で行うことがほとんどです。 また、天気が良い時はお迎えから少し散歩やサイクリングをして帰ったりもできますし、 朝から速攻で散らかされたおもちゃを片付けたりもできます!

今はとにかく子供と毎日過ごすのが楽しい日々なので、 この働き方ができて本当に良かったと心から思います。

案件、仕事について

今回は働き方の紹介がメインということでざっくりとですが、 案件や仕事内容についても簡単に触れておきたいと思います。

私の所属するDA事業本部ビジネスソリューション部では、 AWSを利用したデータ分析基盤環境の構築を行っています。

仕事内容

現在は、S3に配置されるデータをLambdaやStepFunctionsを使用してRedshiftに入れるようなETLシステムを開発しています。 他に登場する主なAWSサービスとしては以下のようなものがあります。

  • SQS
  • DynamoDB
  • Glue

素晴らしいよサーバレス、最高だよサーバレス。

作っているものは、言ってしまえばデータを左から右へ流すシステムなので、一見地味で簡単そうに見えますが、 少量だとうまくいく場合でもデータ量が膨大になると力技では解決できない場面も多く、 大量データに対応できるスケーラブルな構成を考えて作りあげる所が最大の面白さだと思います。

使用する技術など

プログラミング言語は基本的にはPythonを使用します。 機械学習やSpark基盤の分析環境など、ビッグデータ周辺ではやはりPythonが使われていることが多いですね。 またDBにデータを蓄積することが多いのでSQLもよく扱います。

最近はServerlessFrameworkを使用して原則サーバレスで全てを処理するようなシステムを作成することが多いです。 構築する際には、マネジメントコンソールでポチポチしたくないので、 CloudFormation(ServerlessFrameworkはCloudFormationのラッパーだと思ってください)やAWS CLIを使用して、 全てGitリポジトリにコードとして残していく方針で開発を行っています。

多くのエンジニアが、ここは楽したい!それによってミスを減らしたい!というようなポイントについては、 モダンなやり方をどんどん採用できる環境であると思います!

案件規模、開発体制

現在、1年半ほどご一緒させて頂いているお客様の案件を担当しています。 プロジェクトメンバーはアクティブに動いているメンバーが6人(PMを含む)です。 この案件は大きい方で、2〜3人で対応する案件の方が割合としては大きいかなと思います。

開発手法としては、アジャイルに近いようなイメージでやることが多いかと思います (別に「アジャイル開発をやることが目的」ではないので、案件によりけりです)。 PMがかっちり管理というよりは、現場主導でどんどん進めて、 気づいたらお客様との調整も現場がやったりしていることも多いです。

AWS(クラウド)の経験について

ちょっとズレますが、会社説明会などでよく聞かれる質問として、 「AWS(クラウド)未経験ですが、大丈夫ですか?」というのがあるのですが、 私もAWSについては、EC2を趣味で少し触った程度の状態で入社しました。 AWSのサービスは非常に多岐にわたっているので、これを全て習得するというのはほぼ不可能ですし、 ビジネスソリューション部でよく使うサービスはある程度決まっていますから、 まずはそれらのサービスから習得していければ問題ないと思います!

事実として、AWSでETL処理をガッツリ作ってました!なんて人にはなかなかお目にかかれないので、 クラウドって便利そうくらいの興味からのスタートで問題ないと思います。 私も、Lambdaとか便利そうだなーと思いながらも、 実際に案件に入ってから初めてLambdaに触ったという状況からのスタートでしたが、 プロトタイプ的に作られたシステムへの機能追加、改修作業などを通じて段々と理解を深めていくことができました。

ただし、体系的に教えてもらえるような機会というのはほとんどないので、 受け身の姿勢だとほとんど何も身に付かないという点はしっかり認識しておいた方が良いと思います!

おわりに

私の1日の流れを紹介しつつ、どんな仕事をしているかなどを軽く書かせて頂きました。

「データ分析基盤」などと言う単語を意識せずとも、社内のログ分析環境なんかを作ったりしてる方って結構いるんじゃないかと思います。 そういった方で上記のような働き方や仕事に興味があるという方は、是非会社説明会などに気軽に参加して頂ければと思います! 今はリモート開催ですので、ご飯を食べながらでも本当に気軽にご参加頂けます。 また、もっと突っ込んだ話をじっくり聞いてみたいという方にはカジュアル面談というものもありますので、 エントリーページのご要望欄に「カジュアル面談希望」とお書きください!

データを扱うことが好きな方で、少しでも興味を持って頂けたら 下記の募集要項から是非お問い合わせ頂ければと思います!

関連ブログ


  1. ただしこれは、韓国とは時差がないという要素も大きいです