アルティウスリンク アップス

open
 

「スクラム開発を採用して着実にリリースへ繋げる」
リードエンジニア金城インタビュー

こんにちは!PR/広報の大柳です。

第2回目となる社員インタビューは、技術本部でリードエンジニアとして活躍している金城 充(かなしろ みつる)さんを紹介します。バックエンド開発の業務内容から、当社のエンジニアチームの今後について語ってもらいました。


プロフィール

− はじめに、金城さんのプロフィールを簡単に教えてもらえますか?

Java 、PHPや Ruby(Rails)などのWEBアプリケーションフレームワークを使用して、主にサーバーサイドの開発を行ってきました。スマートフォンアプリ開発ではiOSでSwift言語を使用して開発したこともあります。最近ではAWS上に構築したRailsでのWebアプリ開発や、node.jsを使用したAPI実装などがメインですね。

ちなみに、体を鍛えることが好きです。好きなプロテインはMYPROTEINのナチュラルチョコレート味です。

Ruby、Node.jsフレームワークを使用したバックエンド開発

− 金城さんはチャットボット事業の創業期から開発に携わってきたんですよね。まずは、現在のお仕事について教えてください。

バーチャルエージェントを動かすために必要なサーバーサイドのプログラミングや、AWSを使用した運用基盤の構築を担当しています。

また、新しく開発に加わったメンバーに向けて、現状のシステムの解説や開発の進め方をバックアップする役割を担っています。

バックエンド開発側で使用している具体的なプログラミング言語やフレームワークの話をしますと、主にRubyとNode.jsを採用しています。

まず、バーチャルエージェントの管理コンソールで使用しているのがRuby on Railsというフレームワークです。バーチャルエージェントのプラットフォーム開発当初は私を含めエンジニアが2名しかいなかった経緯があり、迅速に開発を進める為にRailsを採用しました。

管理コンソール以外のプロダクトでは、Node.jsを使用したものが多いです。バーチャルエージェントでユーザーからの質問に回答するAPIサーバーやLINEとの連携部分などはNode.jsで実装しています。他にもTypeScriptを用いたプロダクトもあります。

2週間スプリントのスクラム開発を採用

− 技術的にメンバーを率いる金城さんから見て、アルティウスリンク アップスの開発チームの特徴は何でしょうか?

 ひとことで言えば、意思疎通がしやすいストレスフリーなチーム体制でしょうか。

チームは現在5名で開発を進めています。メンバーは東京、北海道、福岡に分散しているので地理的な隔たりはありますが、こまめにコミュニケションをとって意思疎通を図っています。Slackを活用して日々の連絡を行い、必要なときはビデオ会議でコミュニケーションを図っています。タスク管理はJIRA、ドキュメントはConfluenceにまとめて、常にオープンな状態で情報や課題を共有しています。

また、開発体制はスクラムを導入しています。基本的に2週間単位でスプリントを実行して、スプリントプランニングやデイリースクラム、KPTなどの会議体の実施を徹底することで、新機能のリリースへ着実に繋げています。普通の組織では開発スケジュールがきっちり決められていて、途中での軌道修正が難しいんですよね。特に失敗がない前提でスケジュールが組まれることが多いので、当初の通りに動かなければいけない。一方スクラム開発は、短期間でアクションと軌道修正を繰り返すことで議論だけで終わらせず、きちんと成果物を出せる開発スタイルです。

このように、チームメンバーが滞りなくスムーズに開発に取り組めるよう、コミュニケーション的観点とマネジメント的観点の両面のバランスが上手く取れている開発チームだと思います。

前職ではフロントエンドの開発を経験

− 現在の仕事に関わる前はどんなことをされていましたか?

Webアプリケーションの開発に殆ど携わってきましたが、最近ではSwift言語を使用したiOSアプリケーション開発を経験しました。音声を録音して不特定多数の人へ発信する、ラジオアプリの開発です。しかし、ユーザーが録音したものを切り取って加工するというサービス機能の開発は全く経験がない分野でした。そのため事前調査に膨大な時間を要したり、Web開発で使用していたツールとは異なる手法でプロジェクトを進めたり、すべてが新鮮な領域だったので、非常に楽しかったです。

− 新しい分野にチャレンジしたきっかけは何でしょうか?

ラジオアプリのプロジェクトに携わる前は、ユーザーには直接見えないバックエンドの仕事ばかりでした。ユーザーが動かすプログラム、フロントエンドの開発を経験してみたいという気持ちがあり、ちょうど仕事が舞い込んできたので自ら手を上げてチャレンジしました。

結果的に、ユーザー視点を培う良い機会になったと思います。

例えば、「再生ボタン」のアイコンひとつでも色々デザインがあるのですが、このアイコンがどんなイメージを成しているのか、対象が老若男女問わず分かりやすく表現する必要があります。今まで自分がスタイリッシュと思っていたデザインでは、ユーザー側が使いやすいか否か全く考えていなかったので、実際は使いづらかったんですよね。フロントエンドの仕事に携わってみて、ユーザーインターフェースの作り込みから、ユーザー視点の重要性に改めて気付かされましたね。

アルティウスリンク アップスのエンジニアチームのこれから

− では、アルティウスリンク アップスで新たに挑戦したいこと、やりがいを感じていることを教えてください。

開発からリリースまでのプロセスの標準化を自身のミッションとしています。

2012年のチャットボット事業立ち上げ時に、中村現CTOと2名体制でバーチャルエージェントの開発がスタートしました。システムの中身を最も理解しているのは私と彼だけなので、現状「誰でも対応できる開発プロセス」とは言えません。機能追加や修正時のリリースまでの仕組みを標準化するべく、只今プロセスの改善を進めております。また、標準化を考えるにあたり、リリース手法とプラットフォームの見直しも視野に入れる必要があります。例えば、段階的に新機能の投入を行える「カナリアリリース」の実現や、Kubernetesを使用した本番環境のコンテナ化を進めています。リリースまでの改善を短期間で繰り返すことで、プロダクトの品質を維持したまま開発スピードを上げるための方向性が見えてくると思います。

このように、今まで複雑になってきたことがシンプルかつ最適化されて業務がスピードアップすることで、チーム全体の「時間価値創出」に繋がる点が改善業務の面白いところだと感じています。

− 最後に、当社のエンジニアチームのこれからについて、金城さんが考えていることを教えてください。

現在、改善業務などは新機能の開発と同時進行で進めており、ひとりひとりの裁量が大きい役割分担となっています。今後エンジニアの人数が増えた場合、スクラムにおいてのベストプラクティスと言われる1チームの最大人数を踏まえ、開発チーム・運用チーム・課題改善チームなど分割して、各チームの専任化を実現したいと考えています。役割分担を明確にすることで、お客様へ如何に問題なく迅速にリリース機能を使っていただくかを最優先としつつ、付加価値として新しい機能や仕組みを提案できる能動的な開発チームを目指しております。

技術本部の土台づくりは、現在道半ばです。今後の技術本部の進化に期待しながら、これから加わるメンバーとは「良いチームをスケールアップする」ことにぜひ一緒にチャレンジしていきたいと思っています。