見出し画像

若手エンジニアと進めた新規プロジェクト、プレイングマネージャーはどう動く?【Engineer's voice#13】

スマレジ CTO室のわたりです。

今回は、今年3月にリリースされた券売機の開発プロジェクトについてのお話です。エンジニア経験もバックグラウンドも多様な当社のSES事業テックファームのメンバーとともに、券売機アプリ開発を成功に導いた経験を共有します。


〜まずは簡単に自己紹介〜

■エンジニア歴:9年
27歳の時にエンジニアに転向。その後、大規模プロジェクトの開発から小規模プロジェクトの立ち上げまでを経験。Laravelを中心としたバックエンド開発からインフラやフロントエンドまで幅広く取り組む。

■スマレジ入社:2022年12月
CTO室の配属となり、プロダクトを横断した技術課題の解決に従事。DevOps周りの改善等にも取り組み、現在は大規模データ対応を行いながら開発効率化や生成AI利用促進も担当。

本題の前に・・・

今回のプロジェクトをご紹介する前に、そもそも「券売機」とは何かをお伝えしておきます。券売機とは、ファストフード店やラーメン屋などでよく見る「事前精算機」のことです。

その中でも今回当社がリリースしたのは、従来のアナログなものではなく、タッチディスプレイのAndroid端末や、決済を行うための自動釣銭機等がハードウェアが組み込まれたものを指しています。管理画面で簡単に設定ができ、POS連携で在庫連動や売上分析までできる点が特徴です。

▼券売機アプリについて

自社開発メンバーとSESメンバーの
共同プロジェクト

今回のプロジェクトでは、当社のテックファームメンバーの社内アサインという目的もありました。テックファームはエンジニアの育成×SES事業を目的とした事業です。

SES事業を通じてスキルを身に着けたメンバーや、自社プロダクト開発に興味があるメンバーを社内のプロジェクトにもアサインしており、今回は3名のメンバーがチームに加入しました。

▼テックファームについて

券売機プロジェクトは週次ミーティングに役員も参加しており、期待値の高さが感じられました。そんなプロジェクトにテックファームメンバーが参加するのは初の試み。挑戦的なマインドと、若手にもチャンスを与えるスマレジらしい社風が現れているなと個人的に感じました。

また、券売機は元々外部に委託して開発していたものの、問題が多くリリースに至らなかったプロダクトです。その際は、Laravelとバージョン2系の古いVue、クライアント側はswiftで作られていたのですが、今回のプロジェクトでハードウェアのパッケージなどもしっかりと固め直して、社内開発で再起動する運びとなった背景がありました。

①開発体制

私を含めたCTO室メンバー2名のもと、エンジニア歴の短いメンバーに挑戦を促す開発体制が敷かれました。

■プレイングマネージャー
・Uさん:私と同系統のプロジェクトにも携わっていました。
・私:当時転職してきて数か月程度

■メンバー
テックファーム課 3名
・Tさん:React開発メイン、エンジニア歴約3年
・Wさん:python開発メイン、エンジニア歴約1年
・Yさん:実務での経験は少ないながらも自己学習力やブログに定評

②技術選定

技術選定は、当社の開発バリューでもある「技術は手段」に則り、当時の課題感と長期的な視点を照らし合わせながら、エンジニア自身が行いました。

当社では、フレームワークやライブラリの選定は比較的柔軟に行われます。今回の場合は、最終的にテックファームメンバーが主導していくこともあり、なるべくテックファームメンバーの要望を取り入れるようにしていました。もちろん無条件で承認するわけでなく、提案された技術がサービスの長期的な成功に寄与するかどうかについては、同じCTO室所属のUさんと私で徹底的に調査し、慎重に検討を重ねました。

プロジェクトを進行しながら、手を動かす

プレイングマネージャーを務めることになったUさんと私は、技術選定の完了後、チームメンバーのスキルセットを踏まえ、タスクを分解してガントチャートを引き、スケジュール策定に移行しました。

同時に、UさんはReactでのスタイルの適用方法や必要なライブラリの選定を担当し、私はFlutterを使用した初期の機器接続テストの実装を進め、自分たちも実際に手を動かしていました。その際特に気を付けていたのは、将来の引き継ぎをスムーズに行うため、可読性が高く理解しやすいコードを書くことです。

また、今回のプロジェクトを成功させるには「コードの品質保証」が非常に重要でした。自分たちがチームから抜けても安定した品質を保持するために、静的解析ツール、自動化されたテスト、それらのCIでの自動実行、そしてコードレビューを徹底して行いました。

チームメンバーとは週次でミーティングを設けていましたが、元々Slackでのコミュニケーションが活発なこともあり、Slack上で積極的に質問をしてくれるメンバーが多く、ほとんどの問題はミーティングを待たずして迅速に解決されていました。

このように、全体のプロジェクト進行やメンバーのフォローをしつつ、自ら手を動かす、まさに「プレイングマネージャー」の動きができていたかと思います。

徐々に権限委譲をしながら、本番リリースへ

プロジェクトが安定期に入った頃、Uさんは他プロジェクトの責務が増えてきたため、券売機は私が中心でみるような形にシフトしていました。しばらく私は券売機のバックエンドの開発とレビュー作業に深く関与していましたが、私も別のプロジェクトのタスクを始めることとなり、徐々に券売機プロジェクトから手を引くようにしていきました。

テックファームメンバーの活躍もあり、一部の顧客への先行開放を行うβリリースとそのフィードバックを受けての改善も滞りなく終わりました。最終的にUさんと私は週次ミーティングのみに出席し、積極的に意見を出すことがなくなった段階で、私たちのタスクは実質的に完了。そのまま2024年3月に無事本番リリースを迎えることができました。

任せることでメンバーの成長を実感、
マネージャーとしての醍醐味も

今回ご紹介したように、当社は基本的にマネージャー専属のエンジニアはおらず、マネージャーとしての役割を担う場合も、必ず実装まで行うプレイングマネージャーになります。技術から遠ざかることなく、マネジメント経験を積める環境が整っています。

実際に複数名のメンバーをマネジメントする中で、技術を使う以前のコミュニケーション能力や、自ら考える力の重要性を改めて感じました。同時に、こうしたスキルはマイクロマネジメントを避け、なるべく任せてみることで、想像以上にメンバーの成長につながることを知りました。実際にプロジェクト終了後、メンバーの1人が社内表彰をされていたことも嬉しかったです。プロジェクトを通じて、自身の経験の幅も広げることができたと思います。

スマレジの開発組織にはジュニアからシニアまで幅広い層のエンジニアが在籍し、プロダクトも長年開発が進んでいる巨大なものから、モダンなものまであります。社内のどこかには必ずやりたい・活躍できるポジションがあると思うので、少しでも興味を持った方がいれば、ぜひ一度お話しましょう!


〜おすすめの参考記事〜
▼券売機プロジェクトについて、SESメンバーの視点での記事はこちら!

\「めちゃくちゃ良い!」を作るエンジニアを募集しています/