仕事のことを自分の言葉で綴る「仕事のバトン」今回、ご登場いただくのは、クラウド事業部 第4プロダクト開発Gのマネージャーである齊藤匠さんです!マネージャーの視点から仕事について語っていただきました。
▼前回の佐藤淳さんの記事はこちら
https://www.wantedly.com/companies/synergy-marketing/post_articles/536732
How to Work|保全性を高め、ユーザー体験を向上していく
私の役割は、Synergy!のメール機能に使われているAngularフレームワークをモダンフレームワークのReactにリライトし、開発のメンテナビリティを向上することです。また、今後の新機能を提供する上で、ユーザー体験(UI/UX)を良くするために何ができるか?を考えることも役割の一つです。お客様の要望を実現することやチームにある課題を改善し、解決しやすい環境を整えることも役割です。直近ではスクラム開発の体制を導入しました。
React化の開発をしている一週間のスケジュールをお伝えすると、
月曜~火曜 デイリースクラム
水曜 デイリースクラム・振り返り・プランニング
木曜~金曜 デイリースクラム
というようになっております。
デイリースクラムは、アイスブレイクから始まり、進捗確認、今日のタスク、タスクで困っている事などを共有する場です。
タスクのアサインは自分がやりたい、やったほうが良さそうと思うタスクをメンバーが主体的にキャッチアップしていきます。
水曜日に行う振り返りでは、スプリントレビューやタスクの消化具合の確認を行います。そこからKPTという手法を用い、その一週間の良かった(Keep)こと、課題(Problem)になったことを上げて、課題に関しては次回どう取り組むのか?(Try)を決めて行きます。そして、次から取り組むPBI※1を決定します。
※1 開発や改善が必要な機能に優先順位をつけたリストのこと
Schedule|振り返りとプランニングが仕事の向上につながる
■ある一日のスケジュール
09:00 - 10:30 : 前日分コードレビュー、タスク確認、開発
10:30 - 11:00:デイリースクラム (10分~15分で終わることがほとんど)
11:00 - 12:00 : 振り返り準備(デモ環境にデプロイやスプリントレビューをする準備)
13:00 - 14:00 : 振り返り(スプリントレビュー、KPT)
14:00 - 15:00 : プランニング
15:00 - 18:00 : 開発
Abilities & Skills|過去の経験が新しいチャレンジにつながる
仕事を通じて、下記3つのスキルが身についたと感じてます。
1. Angularフレームワークのアプリケーション開発
前職ではVue.jsフレームワークを使ったアプリケーション開発をしていましたが、Angularの開発経験はありませんでした。私が入社した頃、シナジーマーケティングのフロントエンドではAngularによる開発がメインで、一部Reactがあるといった状況でした。Vue.jsの開発経験があったおかげか、Angularの開発はそこまで困ることはなく、チュートリアルを少し行うことでスムーズに開発することができました。
2.React/Next.js フレームワークのアプリケーション開発
直近の開発ではReact/Next.jsフレームワークといったモダンなスタックで行っています。Angularをやめた理由としては、メジャーリリースが6か月ごとに行われ、そのたびに破壊的変更があり、アップデートの対応がチームの負担になっていました。またSPA未経験者には学習コストが高く、新人には負担になりやすいフレームワークだったことも理由のひとつです。
この課題を解決すべく、Reactへの移行計画が始まりました。Reactを採用したのは、メジャーリリースの周期が特に決まっておらず、今までの流れだと1〜3年単位でメジャーリリースされているため、アップデートする頻度は下がります。また、Reactはコンポーネントの構成上他のSPAフレームワークとは異なり、身につけやすいと感じました。React化がスムーズに進められたのは、チームメンバーにReact経験者がいたことも採用された大きな理由があります。
3.CI/CD
シナジーマーケティングではGitLabを使っており、GitLabのCI/CDで test / lint-check / build / deploy を行っています。マージリクエスト(以下、MR)行う際には、対応した成果物に静的コードの問題がないか、自動化を行うようにしています。
Motivation|課題解決を通じて豊かな開発環境を実現する
チームの課題を解決したときのお話です。私が入社したての頃、チームはフロントエンドメンバーばかりでした。そこでは実装したコードのレビュー文化はあるものの、MRの内容が未記入のまま依頼を出されることが多い状況でした。そのため、レビュアーに、「どういうタスク・機能なのかが伝わらない」という課題がありました。そこで、私からのMRではタイトルを明確に記載し、どういう実装を行ったかについて説明を書くようにしました。この方法を続けることで、他のチームメンバーも同様の取り組みをしてくれるようになり、日が経つにつれて、記載内容がブラッシュアップされていきました。
もう1点、課題と感じていたことは開発フローです。以前は、1名が開発タスクを洗い出してRedmine※2に登録を行い、各自でタスクをキャッチアップしていくという流れでした。この開発フローの課題として出てきたのは、以下の内容です。
※2 プロジェクト管理ソフトウェア
・MRのタイトルから察するしかなく、どの機能までの範囲を対応すればよいのかが分からない
・MRの依頼内容が曖昧なため、タスク作成者への質問が増える
この課題を改善するためにスクラム開発を提案し、プランニングの手法を取り入れることにしました。プランニングでメンバーと共有・相談を行いながらタスクを洗い出すことで、タスクの共通認識を持つことができるようにすることが狙いです。タスクの管理方法は GitLab Issue board を使ったカンバン運用を行い、タスク管理をしやすくしました。
最初は1チームで行っていた事ですが、のちにチームを分けることになり、分けたチーム先でもそのままスクラム開発が行われるようになりました。
▼齊藤さんからご紹介いただいたのは...
経営推進部コーポレートクリエイティブチーム 板野さん
板野さんは、シナジーマーケティングの様々なプロジェクトでイラストやロゴなどを中心にデザインし、全社を横断して活躍している方です。私と入社が同じタイミングで、部署は異なりますが、各方面から活躍の声を聞いています。
また、業務上での関わりは少ないのですが、フロントエンドとデザイナーがざっくばらんにお話をする会が定期的にあり、そのたびに板野さんのデザイントークの質の高さに驚かされています。
お楽しみに……!
▶シナジーマーケティングの事業やカルチャーについてもっと知りたい方は、企業サイトのオウンドメディアをご覧ください。
https://corp.synergy-marketing.co.jp/story