見出し画像

「小さくつくる」開発方針。失敗と成功を繰り返しプロダクトを成長させたい。テックリードが語る開発チームのカルチャー

チャットボット事業を展開するりらいあデジタルではいま、次世代プロダクトの開発に着手しています。既存プロダクトを進化させ、新しいプロダクトに生まれ変わっていく過程に、エンジニアとしてどう携わっていくか。「プロダクトの成長とともに、自分自身も成長したい」。そんな思いを胸に開発に取り組むエンジニアの金城充(かなしろみつる)に、りらいあデジタルの開発チームの働き方ややりがい、カルチャーについて聞きました。

プロダクトの成長にかかわることで未知の経験がしてみたかった

——金城さんがりらいあデジタルに入社するまでのキャリアについて教えてください。

小さな頃に見た映画の影響でコンピュータを使う仕事に憧れて、高校時代には自分でC言語を学んでいました。エンジニアのキャリアの始まりは、受託案件を扱うWeb開発の会社です。ちょうど、WebプログラミングやWeb開発の分野が伸びてきた時期で、当時はJavaがとてもはやっていました。

就職したWeb開発の会社でも、JavaのServletなどの技術を使って開発をしていました。その後、PHPやRubyなどを扱ったり、iOSのアプリケーション開発を経験したりしながら、10年ほどその会社に勤務していました。

——その後、どんなきっかけがあってりらいあデジタルに入社したのでしょう。

現在りらいあデジタルのメインプロダクトであるチャットボット「バーチャルエージェント」には前身となるプロダクトがありました。その開発を受託で請け負っていたのが前職のWeb開発会社だったんです。

当時、チャットボット事業はアルティウスリンク(旧:りらいあコミュニケーションズ)のいち事業だったのですが、2018年にりらいあデジタルとして子会社化されることになりました。この事業はまだまだこれから成長するフェーズにあると思っていましたし、開発の初期から携わってきたプロダクトにこの先もかかわっていきたいと考えたのが、入社のきっかけですね。

プロダクト成長の過程に携わることで新しいことを学んで、自分自身も一緒に成長できるのではないかという期待もありました。前職では受託開発が中心だったので、自社サービスに携われるのも魅力でしたね。

開発方針は「小さくつくる」。チーム力を最大限に引き出し成果を残すため、コミュニケーションを重視するカルチャー

——金城さんは現在、どんな業務に携わっていますか?

現在は主に、主力製品であるバーチャルエージェントのサーバーサイドの開発を行っています。ほかに、開発チームのメンバーが開発に専念できるよう開発環境の整備をしたり、開発に必要な情報を事前に調査して準備したりといったことをしています。

——開発チームでは普段、どういった開発方針を持って、どんな開発プロセスを採っているのでしょうか。 

開発チームの主な業務としては、既存サービスを運用する中で出た課題点を改修したり、次世代版プロダクトの開発をしたりといったことが挙げられます。開発手法としては、スクラム開発を取り入れています。2週間を1スプリントとして区切って、その期間内に行うタスクを決めます。1スプリント内で必ず1つタスクを設定して、完結させる。それを繰り返し行っていきます。

りらいあデジタルの開発チームが大切にしている開発方針は、「小さくつくる」です。1スプリント内で完了条件を決めてタスクにとりかかり、小さくてもいいので必ず目に見える成果を残す。そこに改良を加えながらプロダクトを育てていくというスタイルを目指しています。大きなゴールに向かって長いスパンで突き進んでいくというよりは、「小さくつくる」を繰り返す。スクラム開発の主旨にも合っているといえるでしょう。

——開発環境を整えるのも金城さんの仕事の一つと言われましたが、具体的に、開発メンバーにはどういった開発環境を提供していますか? 

コロナ禍でリモートワークになり、開発チームはSlackでコミュニケーションを取りながら在宅で仕事をしています。

PCはMacを提供しており、エディターはそれぞれ好きなものを使っています。クラウドサービスはAWSを使用していて、プログラム言語としては、主にNode.jsやRubyを使うことが多いですね。また、Dockerで仮想環境をつくってローカルマシンで開発ができる環境を整え、プログラムの修正などを行っています。

タスクの管理は、GitHubで行っています。カンバンボードにタスクを登録して、順次「進行中」「レビュー待ち」「完了」というようにステータスを更新しています。こうした進捗管理を1スプリントごとに行っています。

——りらいあデジタルの開発チームにはどんなカルチャーがあると思いますか?

開発を円滑に進めるにあたっては、コミュニケーションを重視しています。メンバー同士で話をするときは提案型の物言いをするように気をつけていますね。たとえば、プログラムの書き方ひとつにしてもいろんな書き方がありますが、自分のやり方を他者に押しつけないようにするのもその1つです。

せっかく技術と知識と経験がある人がそれを活かし切れないということがないように、お互い前向きに、相手を尊重することを重要視しています。

チームで仕事をするうえで人間関係はとても大切だと考えているのですが、りらいあデジタルの開発チームには、お互いに相手を尊重できるメンバーがそろっています。

——そうしたカルチャーがある中で、コミュニケーションを円滑にする仕組みや制度はありますか? 

Slackに「timesチャンネル」というチャンネルを設けています。timesチャンネルは、いわば自分専用のつぶやきスペースです。メンバーそれぞれが自分専用のチャンネルを1つ持っていて、作業状況や技術的な困りごとを自由につぶやきます。それぞれのチャンネルにはチームメンバーが全員入っているので、つぶやきを見た誰かがアドバイスを送ったり、知識を提供したりしてくれるんです。

いま、誰が何をしているか周りから見ることができますし、お互いに交流を深めたり、質問しやすい場をつくったりする効果がありますね。

開発チームは4名いますが、メンバーのスキルはバラバラです。フロントエンジニアもいればバックエンドもいる。応募職種が別々で入社してきたので、お互いに知らない領域があって当然の状況です。片方にとっては当たり前でも、片方にとっては当たり前ではないことはたくさんあるので、チーム内での「質問のしやすさ」には心がけるようにしています。「誰かに聞きたいけど聞きにくい」といった理由で作業が進まない事態は排除したい思いがあります。

チーム内の相互フォロー体制で、専門分野以外にもチャレンジジ。チームの総合力で問題を乗り越える

——金城さんや開発チームのみなさんが、業務内で課題を見つけ、ともに解決してきたエピソードがあれば教えてください。 
 
最近、社内でプロダクトのコンポーネントを入れ替える作業がありました。プロジェクトの当初に起こりうるだろう問題はすべて洗い出したつもりで臨んだのですが、進めていくうちに新たな問題が発生してしまったんです。次々と課題が見つかり、日々着地点が変わってしまう。その中で、何に対応して何に対応しないか、取捨選択の意思決定が難しかったですね。

苦労を重ねる中で軸になったのは、「小さくつくる」という開発方針でした。いきなり大きなゴールを目指すのではなく、「一旦ここで区切って機能を確かめる」「次はここまで」というふうに、小さくつくって検証する。そういったことを繰り返しながら問題を発見し、その都度解決策を講じていく。うまく方向転換しながら柔軟性を持ってやり切ることで、リプレイスを完了することができました。

このプロジェクトではほかに、リプレイスのための検証ツールをつくったんですが、メイン担当として取り組んでくれたのがフロントエンドエンジニアのメンバーです。彼はフロントエンドだけでなく「新しい領域にチャレンジしたい」と考えていて、バックエンド側の業務にも意欲的に取り組んでくれました。

その中で、開発ツールの一部に想定していなかった仕様が見つかって、開発につまづきそうになったことがありました。このとき、メイン担当者の知見だけでは解決できない問題に対して、チーム内のメンバーが自分の専門領域を超えてアドバイスや意見を出し合うことで解決に行き着くことができたんです。チームの総合力で問題を乗り越えた事例でしたね。

このプロジェクトでのできごとを通して、メンバーの動きを限定し過ぎないことの重要性に気づきました。各々のタスクを完了させるのは大前提ですが、必要ならば自分のタスクの境界を越えてチームのために手を動かすことも必要だと。誰かひとりだけに任せていては気づけないことでも、メンバー全員で境界を越えて取り組むことで、気づけることがあるんだと学びました。

——りらいあデジタルでどんなやりがいを感じながら働いていますか?

現在のチーム規模では、フロントエンド、バックエンド、クラウドなど特定の分野に限らず、空いているタスクをどんどん巻きとっていくことが必要です。これは大変なことですが、今持っている専門知識以外に自分の経験を広げたいと思っている方は、チャレンジがしやすい環境だと思っています。

今後は次世代版プロダクトの開発がスタートします。現行のプロダクトは、お客様のもとにサービスを導入したあと弊社側で運用する部分が多く、柔軟性を欠いていたため、利用できるお客様が限られてしまうという課題がありました。新しく生まれ変わるプロダクトでは、運用も含めてお客様側でできるようにして、多くの方に柔軟にフィットする製品を目指しています。

このように、既存プロダクトが生まれ変わる過程にかかわっていく中で、自分自身も一緒に成長ができる楽しみがありますね。

——入社してこれまで、自分自身の成長を実感したできごとがあれば教えてください。

失敗を繰り返しながら経験値を貯めてきたと思っています。

たとえば、プロダクトの設計時には想定していなかった使い方をされたいというお客様がいたり、思いもよらなかったトラブルが発生したり、サービスインして初めてプロダクトの形が見えてくる部分もあります。また、ユーザーが増えるに従って取り扱うデータ量も増え、それによって初めて仕組みの欠陥が見つかり、設計から見直さなければならないこともあります。

発生した問題を解決して乗り越えるごとに新しい気づきが生まれて、大事なことが見えてくる。壁にぶち当たって、夢中で解決策を見つけて進んできたというのが実感です。

自分の専門領域を超えて、プロダクトコミットで幅広く活躍できる環境がある

——金城さん自身、今後についてどんなキャリアビジョンを持っていますか?

私はモノづくりをすることに楽しみを感じていて、自分でも向いていると思っています。そうした「つくる」ことは引き続きやっていきたいと思う一方で、今後はマネジメント力を身につけていきたいと考えています。

今期からマネージャーのポジションに着くことになり、チームのメンバーが働きやすくなるよう支援する立場になりました。どうすればよりよい環境で働いてもらえるのか、メンバー間にどんな形で議論を促すのか、メンバーの成長をどのようにサポートしていくか。今後はそういったことを考え、実践していきたいですね。

——りらいあデジタルのカルチャーにはどんな方がフィットすると思いますか? 

現在りらいあデジタルでは、次世代プロダクトの新規開発に着手しています。一方で、既存のプロダクトについても、稼働している以上は不具合が発生する可能性は拭えません。ですので、新規のプロダクトも既存のプロダクトも含め、問題が発生した際に粘り強く取り組めるかどうかは大切な要素だと考えています。

今後は新規開発に多くのリソースを割く方針でいるので、新しく入社される方には全体の業務のうち7割ほどが新規開発に携わることになると考えています。ただ、新規開発は始まったばかりなので、はじめは既存プロダクトの改修なども担当していただくことになるでしょう。

その中で、自分で課題を見つけたり、問題を抱えて困っている誰かにアドバイスをしたりといったように、自分の専門領域に限定されず、フレキシブルな働き方ができる方は、幅広く活躍していただけるのではないでしょうか。

最後に、私たちはチームで開発をしたいと考えています。チームのメンバー同士、お互いに尊敬し合えるといいですね。チーム開発を通じて成長したいと思える方を歓迎します。


この記事が気に入ったらサポートをしてみませんか?