mitsulog

自由気ままにつらつらと

新卒でCustomer Reliability Engineer(CRE)を選んで良かったこと=≡Σ((( つ•̀ω•́)つ

新卒でCustomer Reliability Engieer (CRE)になってからもうすぐ2年が経過しようとしています。早い!

配属された時になぜCREを志望したかを書いたのですが、今回は新卒でCREというキャリアを選択するとどうなるのかの例として僕の2年間を紹介したいと思います!

mitsu9.hatenablog.com

2年間CREとしてどういう仕事をしてきたのか

まずはこの2年間でどのような仕事をしてきたのかを紹介します。

  • CSスタッフが利用する管理ツールの運用保守
  • 問い合わせ起因の技術的調査
  • CSスタッフの業務効率化のためのツール作り
    • 手動での集計や分析をツール化
  • 新規サービス用の問い合わせ対応環境の構築
    • CSスタッフ用管理ツールの立ち上げ
    • 窓口やFAQ等の環境構築(Zendesk)
  • 問い合わせデータを分析するための基盤構築
  • 返信テンプレを推薦し問い合わせ対応を効率化する仕組みの構築
    • 問い合わせのデータ分析
    • テンプレ推薦モデルの作成・推論APIの作成
    • CSのオペレーション設計
    • Zendeskの環境構築・APIとZendeskの繋ぎ込み

定常業務として既存の管理ツールの運用保守・技術的調査を行いながら、主に返信テンプレを推薦する仕組みを構築していました。 また、新規サービスの開始に伴い新しい管理ツールの開発や問い合わせ窓口の構築などもおこないました。 運良く2年間の中で立ち上げ・運用・改善と一通りの経験をすることができました。

新卒でCREを選んで良かったところ (身についた力)

技術

  • 大規模なシステムの挙動を把握する力が身についた
    • コードリーディング力
    • SQLやログを見る力
    • 大規模なシステムの構成や工夫に関する知識
    • 大規模なシステムでよく起きる問題に関する知識
  • インフラからフロントまでの一通りの開発経験が得られた
    • AWS
      • Web App: ELB + EC2 + RDS
      • サーバーレス: API Gateway, Lambda, Fargate, CodeBuild, Step Functions
      • NW: VPC, Subnet, Security Group etc
      • Monitering: CloudWatch, Chatbot
      • Terraformを用いたリソース管理
    • 言語・FW
    • その他: Capistrano, CircleCI, CRM(Zendesk)との連携
  • 自然言語処理の知識・開発経験が得られた

CREでは定常業務として問い合わせ起因の技術的調査をおこなっていますが、この調査で得られる力はエンジニアの基礎としてとても大切な力だと思っていて、身につけられて良かったと感じている力になります。 問い合わせ起因の調査とは「事実確認」と「事象説明」のための調査です。 この「事象説明」が特に大変な点で、システムで何が起きているのかを正確に把握し言語化する力が求められます。 問題があった場合にはどのような問題を起きていたのか・なぜその問題が起こったのか、問題がなかった場合でもどのデータを根拠として問題は起きていないと判断したのかをわかりやすく説明できないと問い合わせたユーザーは納得ができません。 また、問い合わせ起因の調査ではそのユーザーの環境では発生したが他のユーザーでは発生していない問題を基本的には扱います(全てもしくは多くのユーザーに影響のある問題の解決はプロダクトのエンジニアが担当するため)。 単にコードを読むだけではなくDBのレコードやリクエストの順番、キャッシュやバッチ処理など様々な要素を見てシステムがどのような挙動をしていたかを調べる必要があり、最初はとても難しいのですが複雑な事象の原因を掴めた時にはちょっとした達成感があります。

技術的には幅広くいろいろ触ることができました。 CREはサーバーサイドエンジニアやインフラエンジニアなど技術で切られた職種ではないため、技術的にはインフラからフロントまで全てを担当します。 簡単な処理をさくっと実装してサーバーレスで動かすといったことは素早くできるようになったと思います。 また、弊社のCREは複数のサービスに携わるため言語やFWも様々経験することができました。 一つを深くということはあまりできていませんが、どんな技術でもさくっとキャッチアップしてとりあえず動かすということはできるようになったと思います。

一方で深く関わった部分としては自然言語処理(問い合わせ分析)があります。 CREは基本的に問い合わせを扱うため、形態素解析してごにょごにょしたり、ベクトルにして可視化したりといったことができるようになりました。 大量の問い合わせデータの加工・分析をおこなうだけでなく、分析しやすい形式でデータを保管したり必要なデータを簡単に取得するための環境を整えたりもしました。 また、僕の場合は機械学習をする機会があったので自然言語関連の機械学習に関する知識も身につきました。

技術以外

  • プロジェクトマネジメントの知識・経験が得られた
  • コミュニケーション能力が鍛えられた
  • CSのオペレーションに関する知識が身についた
  • オペレーションの分析・課題発見・解決策提案の経験が得られた
  • 割り込みや複数プロジェクトを担当する時のタスクマネジメントの方法が学べた

弊社のCREは案件に対して1人の担当者がつき、その人がステークホルダーとコミュニケーションを取りながら案件を進めるというスタイルです。 もちろんチーム内で相談することはありますが、基本的には担当者が意思決定権を持ちそれぞれが持つ案件をごりごり進めています。 その中で僕は「返信テンプレの推薦による問い合わせ対応効率化」という案件を持ち、アプリ開発・インフラ構築等からCSの方とオペレーションにどう組み込むかの調整まで一貫しておこないました。 半期での目標設定やタスク・スケジュール管理、人的リソースが必要な時は相談して協力者を募ったり、自分の案件を進めるために必要なことは全ておこないましたが、正直ここが一番難しく一番力がついた箇所かなと感じています。

CREはまだ人が少ないため一人の担当範囲が広く裁量が大きいという特徴があります。 業務も明確に決まっている訳ではなく、自分が手を上げれば何でもチャレンジできる環境だと思います。 また、常に新しいことにチャレンジしているので参考にできる事例はあまり多くなく、プロジェクトの未来も不透明でとにかく自分の頭で考えて行動することが求められます。

このような環境・働き方のため、プロジェクトマネジメント力やコミュニケーション力を身につけることができました。 また、弊社のCREはCSの改善を進めるチームなので、CSのオペレーションに関する知識や課題を発見するための分析力も身につけることができました。 課題発見からおこなうため、解決策を複数考え開発工数や影響範囲などを見てどの解決策を実行するのかを決めるという経験もできました。

他には割り込みが多く複数サービスを見るチームなのでタスクマネジメントについても身につきました。 割り込みが多くて進めたいものが進まないとか、頭の切り替えが多くて効率が悪いといった問題はそこそこコントロールできるようになってきた気がします。

おわりに

振り返ると技術面でもそれ以外の面でも課題解決のための基礎力が身についた2年間でした。 自分にできることで課題解決を考えるのではなく必要な技術を都度インプットし成長しながら成果も出していくということや、全て自分の力で解決しようとせず時にはお金で解決したり他の人を巻き込んで解決することも選択肢として持っておくことなど、様々な学びがありました。 このような学びが得られたのは、CREという新しい職種の価値を発信するためにはまずは語れる成果が必要と思い、とにかく課題を解決することに集中し続けられたおかげだと思っています。

CREは比較的新しい職種でありよくわからないという人が多いと思います。 特に新卒となるとまだまだ人が少なく、どのような仕事ができるのか・スキルが身につくのかがわからず興味があってもなかなか選びにくい選択肢になっているかもしれません。 そんな人たちが少しでもイメージできるようになれば良いなと思い、僕のCREとしての2年間を振り返ってみました。 CREというキャリアに少しでも興味を持ってもらい、選択肢の1つとして考えていただければ嬉しいです。

参考リンク

やったこと集

やったことの中でブログを書いたり登壇したものを集めてみました。 技術的な詳細について興味があればこちらも参考にしてください。