こんにちは!セーフィー株式会社オペレーションシステム部の大林です。 私は2019年9月に実務未経験からエンジニアとしてセーフィーに入社しました。ちょうど1年が経った頃なので、この1年間でやってきたことや感じてきたことを紹介してみようと思います!
まずは自己紹介
簡単に私の経歴をご紹介します。
- 大学(文学部)卒業後、大手証券会社に入社
- 地方総合職として、地元の支店で4年間個人向け営業
- エンジニアになろうと決意し、退職して上京
- プログラミングスクールで約3ヶ月間HTML/CSSやRuby on Railsを学習
そして転職活動を開始して初めて面接を受けたのがセーフィーでした。 CTOからの技術的な質問にまともに答えられず、帰り道「おわた……」と思ったのも今ではいい思い出です。
そんな中、面接の翌日に「まずはアルバイトで働きませんか」とオファーがありました。 当時は私のように実務未経験から入社したエンジニアがおらず、ポテンシャル枠の採用は初めてだからまずはアルバイトでお互いにミスマッチでないか様子を見ましょう、とのことでした。
その後2週間ほどして正式に内定をもらい、今に至ります。
オペレーションシステム部って?
今まではサービス開発寄りの記事が多かったので、セーフィーのオペレーションシステム部についても簡単に紹介します。 オペレーションシステム部が関わる業務は、ものすごくざっくりですがこんな感じです。
フロントオフィス業務に関しては、マーケティングや営業支援、契約・請求・出荷管理などのシステムとしてSalesforceを利用しています。
またセーフィーでは多くのパートナー企業さまにサービスをOEMで提供しています。パートナー企業さま向けのエンドユーザー管理ツール(Agency Tool)や社内向けの管理ツール(Management Tool)は内製のシステムです。
これらのシステムの管理や運用、機能拡充を行いながら、スプレッドシード管理になっている業務のシステム化や各種連携などを進めています。
右下のSafie Entrance管理ツールについては、厳密に言うとオペレーションシステム部の管轄ではないのですが、私がフロントエンド開発に携わっているので載せました。
では、私がこの一年で関わってきた順に紹介していきます!
1ヶ月目
Vue.jsとにらめっこ
2019年9月にアルバイトとして入社し、まずはじめはフロントエンドエンジニアとしてAgency Tool・Management Toolの刷新プロジェクトに携わりました。そこから約半年間、メインの業務としていました。
言語はVue.js+TypeScriptです。これらの私の経験値はほぼ0でした。 Vue.jsについてはスクール在籍中に興味を持ち少しだけ独学していたもののVuexは使ったことがなく、TypeScriptに関しては恥ずかしながら名前だけは知っている程度でした……
私が入るまでは、Agency Tool・Management Toolのフロントエンド開発は一人の先輩が担当していて、その先輩の下に付く形でスタートすることになりました。
今でも覚えているのは、アルバイト2日目に初めてプルリクを出したときのこと。 思い返すとタスクとしてはものすごく簡単で、今なら30分もあれば余裕で終わるようなものでしたが、当時は全然分からなくて先輩にほぼ半日つきっきりで一緒にやってもらいました…… でも、コードを書いて、それが動いて、人が使ってくれる、という実感がわいてとても嬉しかったです。
そういう嬉しさの反面、やはり大変なこともありました。 まずは、個人で開発するのとは全くスケールの違うコード量に圧倒されました。既存のコードのどこに何が書いてあるのか紐解くのに必死でした。 しかも周りにいるエンジニア達と自分のレベルの差があまりにも大きいことを勝手に感じすぎて、精神的にも縮こまってしまいました。 今思えば、そんなの分かりきっているんだからもっと割り切って過ごしても良かったですね。
また、今は入社時の研修でカメラのことやサービスのこと、使うツールのことなどを知る機会があり仕様書もたくさんまとまっているのですが、当時はそこまで整備されておらず、私はただコードとしか向き合っていなかったのも良くなかったなと思います。木を見て森を見ず、ってやつです。 はじめにもっと会社全体のサービス概要や自分が開発しているものの目的を把握していれば……!と思うことがよくありました。なので今は教訓として 新しいことを始めるときはまず全体感を把握するようにしています。
ある時ふと、スクールで学習したこと何も使ってなくない……?と思いましたが、Slackでのコミュニケーションの取り方やGitHubの使い方などに慣れていたことなど、プログラミング以外の部分でも多いに役立っていました。 それに一番大きかったのは「未知のことに立ち向かうことが楽しいと思えるマインド」が育っていたことかもしれません。 当時Twitterで「未経験からエンジニアになった人のうち一定数は数ヶ月で消える」というのをよく目にしていて、消える人の気持ちもちょっぴりわかる……と思ってしまった時期もありました。 でも前職で培ったメンタルと、スクール時代に培ったマインドのおかげで、生き抜くことができました。
3ヶ月目
独り立ち!?
3ヶ月目に、Safie Entranceのお客様向け管理ツールのフロントエンド担当にアサインされました。今も継続して担当しています。
フロントエンドの担当は私だけだと知って、えっ!?不安……と思いましたが、Agency Tool・Management Toolと同じVue.js+TypeScriptでの開発で共通のコンポーネント使うこともできたので、それまでの経験を生かすことができました。
一方で、自分の理解が曖昧なまま進めてしまうと、何度もPMに仕様を確認したり、サーバーサイドに何度もAPIを改修してもらったり、と手戻りが発生してしまうということに気づき、これまでは先輩にタスクを振ってもらっている受け身にすぎなかったんだ……ということを痛感しました。
でも、他のチームの人とコミュニケーションを取りながら開発していくのは楽しく、私エンジニアになったんだな〜としみじみ感じることもできました。
辛い時期もあった
このあたりの時期にはオペレーションシステム部の一員らしく、業務フロー全体を見直すようなミーティングにも参加するようになりました。 それは私にとって興味深くもあったけど辛い時間でもありました。 IT用語もカメラのことも分からない、ビジネス用語も分からない、業務フローも全然知らない……ただひたすら聞くだけで自分は何もできない時間がほとんどだったからです。
今はエンジニア含め他業界・他職種からの転職組も増えてきましたが、当時は会社全体を見てもそういう人は少なく、私からするとみんながスペシャリストに見えました。 ビジネスのことも知らない、エンジニアとしてもまだまだ、そんな私の存在価値って何なんだろう……と考えて無能感に苛まれたこともあります。
当時の私に言葉をかけることができるなら、「そんなこと分かり切ってるんだからうじうじ考えてる暇があれば勉強でも何でもして少しでも早くできるようになれ!」と言いたいです。
5ヶ月目
サーバーサイド
年明けあたりから数ヶ月、サーバーサイドにも携わり、Agency Tool・Management Toolで使っているAPIの作成や改修を行った時期がありました。
言語はPython、フレームワークはTornadoです。これらの私の経験値はほぼ0でした(2回目)。 PythonはProgateをやったことがあるだけで、Tornadoは存在すら知りませんでした。 既存のコードの見よう見まねでなんとか実装し、先輩方のレビューで無数の指摘をもらい、自分の知識の足りなさや考慮の浅さに向き合いながらもがいていました。 でも入社してVue.jsとにらめっこしている時よりは既存のコードの理解が早くできるようになっていて、言語が違っても一度できるようになったことは活かせるんだなーと思って嬉しかったです。
また、それまでのフロントエンド開発ではデータベース構成を意識することなくAPIのレスポンスだけを見ていたので、データベース構成について知ることができたのも良かったです。むしろもっと早く知るべきでした…… それに、自分がフロントから呼んでいるAPIのサーバーサイドの構成が把握できたことで、フロントの開発もしやすくなりました。 たとえサーバーサイドの開発にがっつり携わるわけでなくても、構成を把握してコードを読めるようになったり、簡単なタスクをやってみたりするのは非常に役立つことだなと思いました。
6ヶ月目
レンタルシステム化PJ
2月からの約半年間は、レンタル管理のシステム化プロジェクトがメインの業務となりました。 セーフィーではカメラのレンタルも行っているのですが、その管理はスプレッドシートで行われており、受注から請求に至るまで手作業が非常に多く、これからレンタル件数が増えるにあたりシステム化は急務でした。
最初は現在の業務のヒアリングから始まったのですが、またも同じ苦しみを味わうことになりました。 私、セーフィーの業務・カメラについて全然知らないじゃん……注文があって、カメラ・サービスをセットしてお客様に提供して、そして売上計上して請求する、という一連の流れについて何も分かってない…… このままで大丈夫なのかという不安でいっぱいでしたが、オペレーションシステム部からは頼れる先輩(前述の先輩とは別)との2名体制だったのでなんとか食らいついていくことができました。
ヒアリングと並行して複数のシステムを比較検討した結果、販売で既に利用しているSalesforceに機能を追加することに決定。 開発は外部へ委託し、紆余曲折ありましたが、計画通り7月にリリースすることができました。
開発委託会社や社内の業務サイドとのコミュニケーションが大切なのはもちろんのこと、特に業務サイドとは、業務フローにおける例外はないのか・今後可変にできるように考慮しておくべき事項はないかなどを丁寧にやりとりし、システム化の範囲と機能についてのコンセンサスをきちんと取っておく必要があるんだと学びました。
このプロジェクトにおいて、現場へのヒアリングから始まり、スケジュール立てや要件定義、開発委託会社との調整や進捗確認、そして受入テスト&運用テストを経てリリース&データ移行、という一連の流れを経験でき、私の中で大きな経験となりました。
Salesforceとの出会い
レンタルシステム化においてSalesforceを採用することになりましたが、私の経験値はほぼ0でした(3回目)。 それまで名前は知っていたけど、顧客管理をするものだよね?程度の認識でした。 いざ触ってみると、機能もめちゃくちゃたくさんあるしすごい便利!と思うのと同時に、裏側の設定とか処理とかどこをどういじれば……?というブラックボックス感も感じて不安になったのを覚えています。
3月から4月にかけてオンライン研修を計9日間受講したり、テスト環境でいろいろ試したり、既存の販売管理での簡単な改修タスクを行ったりする中でだんだんとできることが増えてきました。知らないことが分かってできるようになるというのは本当にいつでも楽しいです。 今もスキマ時間にTrailheadでの学習をしていて、そこでのTrailblazerランクを今期の自分の評価項目に加えています。 研修を受けたり学習を行ったりすることを支援してくれて評価にもつながる環境はありがたいなぁと思います。
またSalesforceはユーザーコミュニティが充実していることにも驚きました。 先月には全国の活用事例チャンピオン大会がオンライン開催され、Salesforceをフル活用している企業の事例を聞くことができたり、五反田の利用企業の方々ともオンラインで懇親会をしたりと、自社の事例以外をいろいろ知ることができてとても興味深かったです。
そして今
そんなこんなでフロント〜サーバー、サービス寄り〜社内向け、と広く浅くいろいろとやってきた一年間でした。 今は、Salesforceに関わる新たなシステム化に取り組みつつ、レンタル管理の対応やSafie Entrance管理ツールのエンハンスを行っているという状況です。
正直なところ、エンジニアになる前に想像していた仕事とは違う部分もあります。
今の自分が何者かと聞かれると、おそらく答えは「業務系エンジニア」です。 が、エンジニアになるまでは「エンジニア=サービスを作る人」というイメージが強く、Web系・組み込み系しか知りませんでした(というか、このブログを書く過程で先輩に教えてもらうまで、自分は何者なんだ?と思っていました)。 それに、コードを書きまくってフルスタックになるんや!と思っていた時期もありましたが、今の仕事でコードを書いている時間は半分もありません。
でも、オペレーションシステム部での今の仕事は自分の性にすごく合っていると自信を持って言えます。 意識的に選択してきた道ではなく、流れに身を任せていたらいつの間にか走っていた道ではあるけれど、結果的に楽しく働けていて、今後も進んでいきたい道だなと思っています。
↑みんなありがとう!これからもよろしくね!
さいごに
アクセンチュアで提唱された「シックスバブルズ」という考え方があります。
内容を簡単にまとめると、
- 戦略策定・ビジネスプロセス改善・組織改革・人材育成はすべてBehavior(ふるまい)を変えるためである
- ITはBehaviorを直接変えることはできない。あくまでもビジネスプロセスや組織を通じてBehaviorを変える
というものです。
オペレーションシステム部の部長からこのシックスバブルズの考え方を聞いたのですが、部の役割・ミッションについて「ITでビジネスの戦闘力をあげること」と言っていました。 その考えにとても納得して、いつも心に留めて仕事をしています。
セーフィーのサービスに興味がある方はもちろん、一緒にビジネスの戦闘力をあげてくださる方からのご連絡、お待ちしております!