Serverless Operations, inc

>_cd /blog/id_duwx_2k2qk

title

内製化支援は時に強引に引っ張ることも必要――ある開発チーム立ち上げのケース

summary

私たちサーバーレスオペレーションズ(SLO)では、ITシステムの内製化、特にクラウドベースのウェブアプリケーション開発ノウハウの獲得を目指す事業会社様へのご支援を数多く手がけています。そうした取り組みの一端は、導入事例のページでご紹介していますが今回は、そうした事例の中から、私たちの支援が具体的にどのような効果をもたらすのか、少し踏み込んでご紹介します。

ご紹介するのは、ある産業機械を取り扱う会社様のケースです。新規事業としてICTソリューション事業を立ち上げるにあたり、クラウドを活用したモダンなウェブアプリケーション開発チームの構築をご支援しました。ウェブアプリケーション開発経験者が少なく、アジャイル開発の経験もなかったため、私どもにご相談をいただきました。

いかにしてメンバーに成功体験を積ませ、負のループを断ち切るか

新たに組成された内製化チームのメンバーは、開発経験が少ない方や、C言語やアセンブラなどFA向けの組み込み開発を主に行ってきたエンジニアが中心でした。これまでは個人での開発や協力会社との連携が中心でしたが、今回の新規事業では、開発スピードと品質向上のため、チームによるアジャイル開発に取り組むことになりました。

しかし、チーム開発の進め方は従来とは全く異なり、メンバー間のスキルギャップも課題となっていました。スキル向上のための施策を実施しても、特に組み込み系ソフトウェア開発経験の長いメンバーのモチベーションが上がらず、チーム全体のアジャイル開発が停滞する状況に陥っていました。

そこで、お客様はAWSの担当営業にご相談され、AWS経由で私たちをご紹介いただきました。初回の打ち合わせで感じたのは、「うまくいかないからモチベーションが下がり、スキルの差が埋まらない」という負のループに陥っており、そこから脱却する必要があるということでした。お客様も試行錯誤を重ね、万策尽きたご様子でした。そこで、私たちは、「メンバーをプロジェクトに積極的に投入し、時には強引にでもタスクをこなさせ、成功体験を積ませるべき」と提案しました。

エンジニアリングに限らず、人の成長には成功体験が不可欠です。お客様もこの点にご賛同いただき、あるAIを活用したプロダクトの新規開発を、サーバーレスオペレーションズの支援のもとで実施することが決定しました。

経験があるからこそのストレスケアとモチベーション向上

支援体制としては、フロントエンドとバックエンドのエキスパート各1名、計2名体制で開始しました。この2名は、お客様のスクラムチームにはメンバーとして参加せず、SlackやWeb会議などを通じて、随時質問を受け付けたり、ペアプログラミングやモブプログラミングといった形でメンバーにアドバイスを提供しました。

最初のころは、サーバーレスオペレーションズのバックエンド・エキスパートが、週1回アジャイルのミーティングに出席し、アジャイル開発の進め方について質問に答えたり、AWSのサービスやアーキテクチャについて適宜支援しました。フロントエンド側は、Zoomで「フロントエンド開発の進め方」や「セキュリティの注意点」といった座学研修を実施。質問があればサンプルコードを作成して共有し、初期段階では不安を抱えるメンバーとペアプログラミングも行いました。

プロジェクト開始当初、チームメンバーはプログラミング経験はあったものの、クラウドベースのウェブアプリケーション開発経験はほとんどなく、特にフロントエンドのJavaScriptによるUI開発は全くの初心者でした。そのため、基礎から丁寧に指導する必要がありました。しかし、チーム内の若手メンバーはモチベーションが高く、JavaScript未経験でも積極的に知識を吸収し、急速に成長していきました。

一方で、年齢的にシニアのメンバーの中には、従来の組み込み系開発との違いに戸惑う方もいました。考え方のパラダイムシフトができず、今までの経験が生かせないことにストレスを感じ、モチベーションが低下している様子でした。この点については、お客様の責任者とも情報を共有し、丁寧に接しながら技術指導を継続しました。

その結果、最終的にはそのメンバーもクラウド開発のスキルとアジャイルマインドセットを獲得し、現在では大きな戦力として活躍しています。弊社担当が初心者向けプログラミング講師の経験があり、初学者がつまずきやすいポイントや、質問の意図を汲み取ることに慣れていたことも、効果的だったと考えています。

(余談ですが、「今までの経験が活かせないことによるモチベーション低下」は、様々な場面で起こりえます。AIの台頭により、システム開発に必要なスキルセットは大きく変化していくでしょう。これからは、コーディングにおけるAI活用も積極的に教える必要がありますし、私たち自身も学び続けなければ取り残される危険があると感じています)

「プロダクトを良くする」という共通目標と、フラットなチーム文化

このプロジェクトが成功した大きな要因の一つは、お客様の担当者がプロジェクトマネジメントに積極的に取り組まれたことです。タスクの停滞を防ぎ、エンドユーザーからのフィードバックをチーム内で共有し、「プロダクトを良くする」という共通目標に向かって全員で取り組むことを重視されていました。

チーム内の雰囲気もフラットで、メンバー間のコミュニケーションが取りやすかったことも、内製化の環境としては非常に良好でした。企業によっては、上下関係を重視する人や、声の大きい人がいることで、メンバーが自由に発言できず、目上のメンバーに意見を言えない状況も見られますが、今回はそういったことはありませんでした。

私たち支援側も、Slack上でチーム全体のやり取りを把握し、必要に応じて、直接アドバイスを求められていなくても積極的にコミュニケーションを取りました。質問に答える際も、単に聞かれたことに回答するだけでなく、「なぜその疑問を持ったのか?」「問題の本質は何か?」「それを解決することがプロダクトにとって最善か?」という点を踏まえ、より本質的なアドバイスを心がけました。

先人の知恵を借り、最短で結果を出すための支援

支援開始から半年足らずで、メンバー全員のモチベーションが向上し、アジャイルマインドとモダンなウェブアプリケーション開発スタイルが浸透。チームとして自走できる状態になりました。そこからは、コードレビュー、AWSやJavaScriptに関する技術的な質問、アーキテクチャへのアドバイスといった、より高度な技術支援が中心となっています。短期間で自走できるまでにチームが成長できたのは、

  1. リリース時期が明確で、ファーストユーザーも決まっている本番向けの開発に取り組んだこと
  2. 内製化支援により、チームとメンバーに不足しているスキルやノウハウを最短で補ったこと

が大きな理由だと考えられます。「絶対に作らなくてはいけない」という状況は、プレッシャーであると同時に、大きなモチベーションになります。また、ソフトウェア業界では、多くの課題は先人によって解決されており、ベストプラクティスが存在します。それを知らずに自分で考え、回り道をすることは、必ずしも無駄ではありませんが、時間という貴重なリソースを消費してしまいます。ビジネスにおける開発では、これは避けるべきです。

一時的にでもスペシャリストがいて、わからないことをすぐに聞ける状態は、パズルに例えるなら、どんなピースがあるのかわからない状態から、必要なピースを渡してもらえるようなものです。受け取ったピースがはまっていくことで、最短で学び、結果を出すことができます。

内製化や新しい技術への挑戦など、新たな取り組みを行う際に専門家の支援を受けることは、大きなメリットをもたらします。クラウド開発で支援が必要な場合は、ぜひ私たちにご相談ください。

Written by
編集部

Serverless Operations編集部

Editing Department

Share

Facebook->X->
Back
to list
<-