Cha道

Chatworkの「人」「組織」を
伝えるメディア

業務プロセスの根幹を支えるエンジニアリングの醍醐味。

f:id:cw-recruit:20210929152938j:plain

Chatworkにおける、ユーザーの契約情報や料金プランなどのシステムを担当するのが、料金プランエンジニアリング部。サブスクリプションモデルの根幹である“課金”を支える、重要な役割を担っています。
今回のCha道では、料金プランエンジニアリング部で活躍するPHPエンジニアの新井崇司と中田圭亮にインタビュー。Chatworkで働き始めた理由や経緯、2021年7月13日にリリースされた料金改定プロジェクトの詳細、そして今後のビジョンについて聞きました。

■プロフィール

プロフィール写真:新井 崇

プロダクト本部 料金プランエンジニアリング部
新井 崇司

SIerにてエンジニアのキャリアをスタート。同社で電車の切符を予約販売するシステムの開発や銀行のデータ移行プロジェクト、グルメサイトの予約システム開発などに携わった後、2017年にChatworkへ転職。料金プランエンジニアリング部にて、契約や料金関連のシステム開発に従事する。

プロフィール写真:中田 圭亮

プロダクト本部 料金プランエンジニアリング部
中田 圭亮

不動産関連のシステムを開発するWeb系企業にてキャリアをスタートし、システムの設計から開発、運用まで広域な業務を担当。2020年にChatworkへ転職。料金プランエンジニアリング部にて、契約や料金関連のシステム開発に従事する。北海道に在住しており、入社以来リモート勤務を続けている。

自社サービスを開発できPHPのスキルも活かせる会社だった

f:id:cw-recruit:20210921093719j:plain

――新井さんがエンジニアを目指したきっかけを教えてください。

新井:もともとパソコンが好きだったため、情報系の大学に入学しました。でも、自分の学科で扱っていた内容は情報設計や情報と社会との関わりなどを学ぶことがメインで、プログラミングとはほとんど関係がなくて。就活の際には、プログラミングができないと自分でわかっていたので、まずは経験を積もうと考えて、入社のハードルが低いだろうとSIerを目指しました。
そのSIerはプログラミング未経験でも客先で仕事ができるよう、研修が非常に充実している会社でした。3か月くらい講師に教えてもらい、基礎固めをした後に現場に配属されました。

――SIerではどのような仕事に携わりましたか?

新井:最初の現場は、電車の切符を予約販売するシステムでしたね。すごく歴史があって、大規模なオンラインシステムでした。この現場で働いた約2年間で、基礎的な仕事のやり方を身につけられました。UNIXコマンドの基本操作から分散システムとは何かまで、たくさんのことを勉強できましたね。
分散システムは複数のコンピューターが協調してシステムを構築するので、自分が担当しているシステムが全体のどこに位置しており、どういった役割をしているかなど、俯瞰して考える必要があります。このように、全体像を捉えて仕事をするスキルは、現在の料金プランエンジニアリング部の業務にも非常に役立っています。
次に配属されたのは銀行のデータ移行プロジェクトです。4つくらいの古いメインフレームで構成されているシステムを、新しい1つのシステムに統合する業務を担当しました。この現場で身についたのは、「今、手元にあるものでなんとかする」という姿勢ですね。このプロジェクトでは規則が設けられており、エンジニアが自由にソフトウェアをインストールできず、工夫が必要でした。

中田:確かに新井さんはシェルスクリプトなどを扱うのに強いですけど、そういった背景があったんですね。

新井:そうそう、この現場で鍛えられました(笑)。前職で最後に携わったプロジェクトは、グルメサイトの予約システム開発です。電車の予約販売システムの経験を買われてアサインしてもらえました。
それまではCOBOLなど比較的古い言語を使用していたのですが、このプロジェクトで初めてPHPでの開発に携わりました。また、Gitの使い方もこの現場で覚えました。現在の業務にダイレクトにつながる技術を学べたのは幸運でした。前職には本当に感謝しています。

――その後、転職を考えた理由を教えてください。

新井:前職のSIerでは基本的に外部の人間としてプロジェクトに参画するので、プロジェクトの方向性や開発しているWEBサービスの仕様などの方針策定には携われません。「この仕様は絶対によくない」と思っても、アドバイスくらいしかできないんです。
それを歯がゆく感じて、自分の意見がプロダクトに反映される自社サービス開発などの仕事をしたいと考えていました。Chatworkへの転職を考えたきっかけは、当時聴いていた「PHPの現場」というPodcastです。
Chatworkの社員がゲストの放送回があり、番組の最後にPHPエンジニア募集の告知をしていました。「自分のスキルを活かせるな」と思って、Chatworkに興味を持ちました。選考を受けたのは2~3社くらいありましたが、最終的にはChatworkが一番やりたいことができそうだと思って、入社を決めました。

――Chatworkに決めた理由は何でしょうか?

新井:私は、人の役に立つツールを作って、その対価として利用料を受け取るビジネスモデルに携わりたいと思っていました。ちゃんと、世の中に価値を提供できていることが感じられるので。そのため、Chatworkが非常にしっくりきました。

Chatwork社員の「プロダクトが好き」という想いに感化された

f:id:cw-recruit:20210921093833j:plain

――次は中田さんのキャリアについて聞かせてください。プログラミングを始めたのは、学生時代だと伺っています。

中田:工業系の高校に通っていて、授業で初めてプログラミングをしました。でも、うるう年を計算するなど基礎的なことしか学ばなかったので、当時は「本当にプログラミングによって、自分たちが普段使っているようなシステムを生み出せるのかな?」と疑問に思っていましたね。
気持ちが変化したのは大学時代です。校内のシラバスや履修システムを作るプロジェクトにアルバイトとして参加して、初めて本格的なシステム開発をしました。それをきっかけに「こうやってシステムを作るのか」とイメージでき、プログラミングが楽しくなってきて、将来はエンジニアになろうと決意しました。
新卒の就活では、不動産関連のシステムを開発する北海道のWeb系企業に入社しました。ITの本場は東京だという認識が当時からあって、いずれは東京の会社で働きたいと思っていたんですが、当時の自分のスキルではそうした会社に入るのは難しくて。そこで、まずは北海道の会社できちんとスキルを磨こうと考えました。
その企業ではPHPを採用していて、システムの設計から開発、運用まで広域な業務を担当しました。入社して最初に任された業務は、不動産業者向けの資料請求フォームの新規開発です。大まかな要望をもとにして、システムの要件を決め、開発してリリース・運用するところまで一通り経験できました。最初はエンジニアとして右も左もわからない状態で大変でしたが、この経験を積んだことでシステム開発の流れをイメージできるようになって、とても勉強になりましたね。

――そこから、Chatworkへ転職したのはどのような理由でしょうか?

中田:その会社では、役員が自社のプロダクトをあまり大事にしていないような振る舞いをしていたんです。この雰囲気では、会社がいつかダメになってしまうんじゃないかと感じて、もっと経営陣や社員がプロダクトに愛情を持っている会社で働きたいと思うようになりました。
それから、技術的な成長が頭打ちになってきたからですね。その会社では、何かの要望がエンジニアに伝えられた後、エンジニアが自力で技術的な調査をしてシステムを開発する流れになっていました。スキルの高いエンジニアから何かを教えてもらえるわけではないので、徐々に会社の中で新しく得られる知識がなくなってきたんですよ。そろそろ、転職するタイミングなのかなと考えるようになりました。
いくつかの企業の採用面接を受けましたが、Chatworkでは面接官の方々が、自社のプロダクトを本当に好きなことが、すごく伝わってきました。この会社なら自分の理想とするシステム開発ができると思いましたね。
余談ですが、私はChatwork入社時にコーディングの実技試験を2回提出しているんですよ。アルゴリズムの試験とシステム構築の試験がありましたが、もともとアルゴリズムがあまり得意ではなかったので、全くできなくてボロボロで。めちゃくちゃ悔しかったです。
わからないことをそのままにしておくのが嫌なので、自分のために勉強をし直そうと思い、調べてコーディングをしたら、良いものができました。せっかくなので、メールで面接官に提出し直したところ、選考に通過しました。自己研鑽のための行動でしたが、それが結果的に入社に結びついたので嬉しかったです。

業務の属人性をなくし、チームとして動ける体制に

f:id:cw-recruit:20210921094538j:plain

――料金プランエンジニアリング部の業務内容について教えてください。

新井:ユーザーの新規契約や料金プランなどの処理に関わるシステム全般を担当しています。もともと、こうしたChatworkの料金周りの開発は、小野さんという社員が長く担当し続けていました。小野さんに業務知識が集中している状態だったんですね。そんな中、2019年9月に会社が上場しました。今後、契約や料金に関する開発が増えることが予想されました。
そこで、特定の個人がボトルネックにならないように、チームで仕事に取り組める体制へと移行したいと考え、マニュアルの整備や質問しやすい環境作りなどを進めました。中田さんが入社したころが、ちょうど切り替わりの時期でした。現在は小野さんを含めた3名の体制でシステム開発をしています。

中田:前職では入社直後からほとんど自分ひとりで作業していたので、Chatworkに入社してからは手厚く助けてもらえてびっくりしました。資料もたくさんあって、なんでも教えてもらえる環境でしたが、そういう背景があったんですね。
チームではよく、リモートで顔をつき合わせて3人で同じタスクをこなしていく、モブプログラミングをやっています。モブで作業するのは稼働時間8時間のうち、3~4時間くらいですね。それ以外の時間はひとりで開発に取り組みます。また、スクラム開発を導入して日々の業務を推進しています。

――2021年7月13日にリリースされた料金改定プロジェクトの詳細についても聞かせてください。

新井:このプロジェクトでは、Chatworkのビジネスプランおよびエンタープライズプランの利用料金改定を行いました。システムの改修は、なかなか大変な作業でしたね。
もともと、ビジネスプランとエンタープライズプランは2016年に開始しましたが、当時はエンタープライズプランの開発を急いだため、スケジュールの都合などで両プランのロジックを共通化できず、別々のロジックとして実装したという背景があります。
そのため、このプロジェクトにおいて料金プランのロジックを直そうとすると一か所の修正だけではダメで、プランごとに修正しなければならず2倍の手間がかかり苦労しました。今後は、より良い設計へと改善していきたいです。
また、エンタープライズプランは月区切りなのに対し、ビジネスプランは日数で区切っていて料金が変わるタイミングからして違います。その要件を適切に理解して移行プランに落とし込み、ユーザーにとって納得感のある仕様で設計をするのは大変でしたね。特にプロジェクト初期ではメンバー同士で「ビジネスプランはこの方法で直せるけれど、エンタープライズプランはここを考慮する必要があるね」といった話し合いをよくしていました。大変さはありましたが、無事に料金改定を実施できて感慨深かったです。メンバー全員で認識を合わせつつ作業を進められたからこそ、プロジェクトを成功させられたんだと思っています。

業務プロセスやステークホルダーの要望を理解し、システムに落とし込む

f:id:cw-recruit:20210929155338j:plain

――料金プランエンジニアリング部の業務で、特にやりがいを感じる点はありますか?

新井:料金プランエンジニアリング部は、業務知識やシステムの歴史的経緯、会計知識など理解すべき情報が複雑です。それらを理解してシステムに落とし込むのは本当に面白いと感じます。複雑な既存システムのコードを読み解きながら「なるほど。こういう仕組みを実現したかったのか」と理解していくのが楽しいですね。

中田:Chatworkの料金プランの開発では、会社の経営層やユーザーサポートを担当するメンバーなど、多くのステークホルダーが社内にいます。そうした人々のニーズや意見を汲み取って、うまくシステムに落としていくのは料金プランエンジニアリング部ならではの醍醐味だと思います。

――今後のキャリアでチャレンジしたいことを教えてください。

中田:長期的な使用に耐えうるシステム構築をしたいです。前職で携わった不動産関連のシステムはレガシーなフレームワークを使っていたり、プログラムの設計がいびつになっていたりしたので、とても苦しみながら開発をしていました。業務システムは長く使われるものが多いので、メンテナンスすることが容易なシステム構築の方法に興味があります。
また、スクラム開発やモブプログラミングなど、チーム運営の仕組みを改善することにも興味があります。良い手法をどんどん取り入れて、もっと良いチームにしていきたいですね。

新井:私の場合、これまでのキャリアを振り返ると、自分でチャンスをつかみにいったというよりもチャンスの方から転がり込んできたことの方が多いと感じます。電車の予約販売システムの経験を買われて、グルメサイトの予約システム開発にアサインされ、PHPを学ぶことができたのは、その好例ですね。チャンスが巡ってくるのは、自分を評価して任せてくれた人のおかげ。今後も、求められたことに全力投球して応えていきたいです。