見出し画像

アジャイル開発組織への変革 – Vol.3 アプリケーション編 -

はじめに

前回の「アジャイル開発組織への変革 – Vol2. モダナイゼーション編 -」に続きまして、最終回の今回は「アプリケーション」を主題に、アマゾン ウェブ サービス ジャパン合同会社様(以下、AWSJ)とパイオニア株式会社(以下、パイオニア)で対談しました。

パイオニアが、Amazon Web Services(以下、AWS)を活用し、アジャイル開発に挑戦した話をご紹介いたします!

以前の記事にも記載がありますが、パイオニアはSaaSカンパニーとして変革し、"モノxコト"への加速をするため、昨年8月にSaaS Technology Center(以下、STC) を立ち上げました。STCのミッションの 1つが「アジャイル開発組織への変革」です。 

これからパイオニアを支える開発チームになるために、新しく標準アーキテクチャ、開発手法を確立し、組織変革、カルチャーチェンジをより進めていく必要があります。

今回AWSが提供する、体験型ワークショップ (Experience-Based Acceleration (以下、EBA) に参加し、AWSの伴走を受けながらパイロットプロジェクトを進めて、移行手法、組織変革、カルチャーチェンジを体験しました。(※対談用衝立あり、写真撮影時にマスクを外しています)


対談者紹介

柴尾(パイオニア):
2008年に中途でパイオニアに入社してから、カーナビゲーションなどの組み込みやモバイルアプリケーションの開発などを行ってきています。

最近、バックエンドの開発も行うようになりました。また、あわせてスクラムマスターとしてスクラムにも取り組んでいます。

パイオニア株式会社 柴尾徹練

倉元(AWSJ):
私は国内SIerにて様々な分野のプロジェクトに参画し、アーキテクチャ策定やフレームワークの整備に携わってきました。

その後、AWSJに入社し、マイグレーションスペシャリストSAとしてお客様のマイグレーション・ジャーニーやモダナイゼーション・ジャーニーをサポートさせて頂いています。

アマゾン ウェブ サービス ジャパン合同会社 倉元


Rustを使った開発へのチャレンジ

倉元(AWSJ):
 本日は、ソフトウェアにフォーカスしてお話を伺わせてください。 今後のパイオニアさんのアプリケーションにおける新しいキーワードはRustだと思っています。

今回、Rustを使ったアプリケーション開発にチャレンジしました。Rust への想いは相田さんの記事でもありましたが、社内勉強会、ハンズオンを開催したりと若手育成にパワーを注いでいる印象を持っています。EBAの期間でRust初心者メンバーの立ち上がりはどうでしたか?期待通りでしたか?

柴尾(パイオニア):
思った以上でびっくりした位です。(笑) メンバーのほとんどが若手でバックエンド開発の経験もなく、Rustも触った事がないといったこともあり、もしかしたら全く形にならないということも覚悟していました。笑

ただ、いざ始めてみるとEBAパーティーでは、メンバーそれぞれが自分の役割を見つけていました。そして、ものすごい勢いで実装していけるような状態になり、最終的には動作できるものを作り上げることができ大変驚きました。

先程仰って頂いたように、事前の勉強会やプロジェクトの雛形を用意しておくなど、事前の準備がしっかりできたことも大きかったと思います。

倉元(AWSJ):
盤石な準備をされて、進まれた点は流石ですね。また、相田さん(パイオニア エンジニア)がポイントを押さえたからこそ出来たのでしょう。

若手メンバーが周囲から手厚いサポートを受けて進むのではなく、自分でやるぞっという意思が生まれたことも良かったと感じています。ただ、柴尾さんが正直何も出来ない事を覚悟していたというのは全く感じとれていませんでた。(笑)

柴尾(パイオニア):
そうですね。メンバーの手前「できるでしょ」しか言えなかったというのもありますね。笑

倉元(AWSJ):
そんな中でRustだけでなく、フロントはReactで、テストコードはTypeScript(ライブラリは Deno)なども使われていましたね。多種多様なツールを利用し、使い分けている事に驚きました。

他にもAWS LambdaではPythonを利用するなど、AWSも推奨している、適材適所かつトレードオフを考えたアーキテクチャを選定されていたと感じています。

こういったアーキテクチャ策定は、はじめての方には少し難易度が高い部分もあるかと思います。今回特に重視していたことなどありますか。

柴尾(パイオニア):
今回、EBAだけの部分最適ではなく、STCの基本アーキテクチャとなるように心がけました。

STCの規約では、可搬性が高いコンテナアーキテクチャを基本にしています。適材適所や要件に応じてトレードオフは必要なので、今後のPJでは、コンテナだけではなく、AWS Lambdaで実装を予定している部分もあります。

倉元(AWSJ):
私もよく悩むのですが、適材適所のアーキテクチャを自信を持って選定していくのは難しいです。その選定がしっかりできる人は貴重な人材であり、本当に重要なスキルとも感じています。

この部分をうまく進めていく工夫や、過去の経験から来るポリシーなどお持ちかなと感じております。可能な範囲でお伺いできますでしょうか?

柴尾(パイオニア):
平井も同じことを話していましたが、まずは技術のアップデートをしっかりと追っていくことだと思います。

外部事例なども取り入れ、パイオニアに適用することでノウハウを貯め続けていくことが重要だと思っています。これからは更に内製化を推進していくので、よりやりやすくなると思います。

また、蓄積するだけでなく、情報やノウハウを広く共有することで部署全体に広げて、全体のレベルアップを図っていくことも同様に必要だと思います。

倉元(AWSJ):
共有するという観点が重要なポイントだと感じました。外に出すぞと思うことで、クオリティを上げようと必死に努力します。

出したモノが多くの人によって評価されますし、人によってはとても魅力的に見えたり先進性やシンパシーを感じて、一緒にやりたいと思ってもらえることもあります。

内部で蓄積するだけではなく、よりオープンに情報を発信していく事が大切です。その好循環を進めて頂ければ幸いです。私どもでお手伝いできる所があれば何よりです。

柴尾(パイオニア):
今、パイオニアはカルチャーチェンジを進めています。よりOutcome(成果)を意識する動きに切り替わりつつあります。

どうすればよいOutcomeを出せるのかを意識し始めており、より自分たちの取り組みが正しいと感じました。


開発プロセスのUpdate

倉元(AWSJ):
EBAの中でもかなり時間を割いてお伝えさせて頂いたことの1つが、開発プロセスです。具体的には、Git/GitHub Flowの活用 や UnitTestの整備などです。ソフトウェアの実装技術だけでなく、どのように個々人の作業をうまく一つにまとめ上げるか、この点も非常に重要だと考えています。

しかしながら、意外にも放っておかれる部分で、例えばCI 環境の構築が後回しになるケースを度々見かけます。EBAを通じて重要性を認識頂けたと思っておりますが、その後、開発手法への影響はありましたか?

柴尾(パイオニア):
まさに今お話頂いた通りですが、EBAを通して短期間で動くものを作れたのは、そういったプロセスによる部分も大きかったと思います。

逆にEBAパーティではUnitTestの不足が原因で結合時にデバッグが困難になってしまうなど、プロセス部分の検討を欠かすと大きく速度を落とす原因となるということを、個人だけでなくチームとしても実感することができました。

今までは実装が最優先となることが多かったのですが、プロセスも含めた準備を整えることを実装と同様にチーム全体として力を注ぐようになりましたね。

また、プロセスではないですが、常にビデオ会議でカメラをONにしていたことでコミュニケーションしやすかった点も大きいです。

私たちはVisualStudioCodeのLiveShare機能を利用し、ほぼ全員でコーディングに取り組んでいたのですが、これが意外と効率性が高いことが分かって、それ以降も要所要所で取り入れる様になりました。

また個人的には、学生の様に皆でワイワイ取り組めて、なんだか楽しかったです。(笑)

倉元(AWSJ):
多人数の目が入るとなると真剣になりますよね。その結果ミスも減りますし、誰かがすぐ気づいてくれます。全員が同じ時間に同じものを見ているのは一見非効率と思いきや、そうでもないと感じています。

アプリケーションでは、CI/CDなどのテストを準備し、技術的負債を抱えず、安心して進められる仕組みを作ることが大切ですね。定期的に仕組みの振り返りを行い、機能しているのか?問題ないか?を見直して行くと、スピードを保ちながら、前に進んでいけると思います。

まさにそこを体験いただき、嬉しい限りです。

ソフトウェアアーキテクチャやAWSのようなクラウド環境、フロントエンドにバックエンドなど、アプリケーションを作り上げるには様々な要素が必要になります。

これらを扱えるメンバーを増やすことが使命の1つだと思っています。日々取り組まれていることや大事にしている事はありますか?

柴尾(パイオニア):
STC全体としての取り組みですが、興味のある分野でスキルアップできる環境を用意しています。例えば、オンライン講座を受講できる仕組みや、勉強会、読書会などスキルアップのための機会を作るようにしています。

また、スキルを持った方が外部からどんどん入ってきてくれていますので、一緒に検討を行ったりレビューを行ってもらったりなど、その方々となるべく関わりあえるようにして、学びを得るとともに常に刺激を受けられるように努めています。

倉元(AWSJ):
先輩の技を教えてもらうことや、先輩が積極的にあるべき姿を示していく事は大切ですよね。実際に若手の方々に色々な経験をさせたいという思いがとてもよく伝わってきました。

積極的に機会を与えたり、場を作っていらっしゃいますが、皆さん前向きに取り組めているでしょうか?

柴尾(パイオニア):
見て取れるほどに前向きに取り組んでもらえるようになりましたね。


EBA全体を通して感じたこと

倉元(AWSJ):
新しいことへ果敢にチャレンジしつつ、メンバーをどんどん育成していく姿勢が、組織全体に上手く伝わっているのだと思います。

 私もEBAに参加しながら、皆さんが積極的に良くしていこうとする姿勢を強く感じ、非常に魅力的なチームに思えました。今回はEBAという機会でご一緒させて頂きありがとうございました。また別の機会でもご一緒できればと思います。

柴尾(パイオニア):
EBAはとても良い機会だったと実感しています。私は、こうやりたい、ああしたい、という意思から行動が生まれることが重要だと思っており、その意思は様々な経験を通じて、生まれていくものだと思います。

EBAは色々な経験を積める最適な場だと思いました。また、EBAの期間を通して、個人的に1つ取り組んでいたことがありました。

普段の業務では、どうしてもメンバーに指示しがちになるのですが、EBAの間だけは決して指示せず提案のみを行うことにしました。そうするとメンバーから”こうしたい”という発言も増え、”ほめる” / “称える”と相まって、より積極的な発言が増えていくことを体感できました。

メンバーが目に見えて成長しましたし、私自身も一緒に成長させてもらいました。

倉元(AWSJ):
今回の経験を更に広げて頂ければ嬉しいです。今日はありがとうございました。

柴尾(パイオニア):
こちらこそ、ありがとうございました。


最後に

本日お話しているEBAに関しては、Amazon Web Services ブログで詳細を確認することができます。

ご興味ある方は是非ご覧ください。また、パイオニアでは変革に向けて一緒に働く仲間を募集中です!老舗メーカーの変革に少しでも共感、チャレンジしてみたいと思われた方は、こちらの採用ページをご覧ください。