2020年11月、シナジーマーケティングが提供する CRM サービス Synergy! の新機能として giftee for Business 連携機能をリリースしました。この記事では機能の説明と開発時の苦労した点や工夫した点、初めて開発に参加した私自身の感想についてお話しします。
猫が好きで趣味は料理。最近は激辛料理にはまっています。
好きな唐辛子はキャロライナ・リーパーです。
giftee for Business 連携機能とは
giftee for Business とは株式会社ギフティが提供するeギフトを活用した法人向けソリューションです。eギフトとはコンビニや有名ブランドの商品を URL 化したもので、URLを送るだけで簡単にプレゼントキャンペーンが実施できるため、配送費や人件費を大幅に削減することが可能です。
今回の機能連携で Synergy! の Web フォーム機能にeギフトを埋め込むことが可能になりました。
フォームの他にもメールや LINE で手軽にeギフトを送ることができるので、Web アンケートの回答率向上などに活用できます。これまでの Synergy! でも実現可能でしたが、フォームの回答者数を予測し、その数に応じたギフトを事前に購入しておく必要がありました。今回実装した giftee for Business 連携機能では、フォーム回答完了時に必要になった分だけ自動的にギフト URL を発行することができるため、無駄がなく費用の削減が可能となります。
開発の進め方
開発期間は9月から11月の約3ヶ月間で、チーム構成はプロジェクトマネージャー、開発リーダー、開発メンバー1名の計3名でした。 基本的に全員在宅勤務をしていますが、開発の2人は週2回出社して開発を進めました(出社の理由は後述します)。オンラインでの全体定例は週1回30分ほど実施し、進捗や今後の進め方等についてお話ししました。
開発は主に Java を使用して実装しました。 私にとって初めてのプロダクトでの機能開発であり、また本格的に Java を使って開発するのも初めての経験でした。 (それまで Java に関しては技術研修の際に2ヶ月程勉強した程度でした。) 担当箇所は主に連携を設定する画面で、フロントエンドからバックエンドまで全般を担当しました。
今回の機能追加では既存部分への影響範囲が広く、その影響調査やテスト等に多くの時間を要しました。そのため当初の想定よりかなり長い開発となりました。
苦労したところ、工夫したところ
前述の通り、今回は影響範囲が大きく、プロダクトの幅広い知識も必要でした。
入社前から Synergy! にユーザーとして触れる機会があったものの、すべての機能を知っているわけではない上に、プログラムや DB の構成などもわからず、開発当初は「何がわからないのかがわからない状態」に陥ってしまいました。
また、在宅勤務が多かったので開発者間のコミュニケーションはテキストベースになります。 「何が分からないのかわからない状態」なので質問内容をテキストで説明するのがとても難しく苦労しました。 開発開始から2、3週間ほどした時期に、開発リーダーのすすめで、週に2時間ほど実際に会って質問する時間を設けました。 テキストベースではまず最初にこちらの状況を説明すること自体が難しかったのですが、口頭では雰囲気や言い淀みなどから相手に状況を察してもらうことができるためか、コミュニケーションの速度が上がるためか、「何がわからないかわからない」まま質問を続けることができました。 質問等を繰り返しているうちに自分の状況を自覚することができ、Slack などのテキストベースで気軽に質問することができるようになりました。 また、実際にコードを一緒に読みながら質問したため、合わせて知っておいたほうが良い知識を学ぶことができ、効率よく理解を深めることができました。
開発終盤では内部仕様の変更、例えば DB 項目の型が変わる、ということもありました。この修正でバグが発生したり、少しハプニングもありましたが、生の開発現場の空気感を実感し、とても良い経験になったかと思います。 また、かなり細かくレビューをしてもらったため、修正必要箇所が的確に分かり、効率よく開発が進められたと感じています。
さいごに
本記事では、11月にリリースした giftee for Business 連携機能について、開発者の立場から振り返り、苦労したところや工夫できたと思うところを紹介しました。
右も左もわからない状態で新規機能の開発に参加し、あらゆる場面で苦労しました。苦労した分だけ学びの機会があり、貴重な経験になったと感じています。 開発当初は「何がわからないのかがわからない状態」で、何から始めればよいかすらわかりませんでした。 質問をしようにも、相手に迷惑をかけてしまうんじゃないかという恐れから、なかなか質問もできませんでした。 開発を進めるにつれ、少しづつ状況や立場が理解できるようになり、積極的に質問ができるようになりました。 質問を重ねることで知識が増え、開発チーム内での考えの差異を埋めることができました。
今回の開発を通して、当社には成長を後押ししてくれる環境が整っていることを改めて実感しました。これからもどんどん経験を積み早く一人前のエンジニアになっていきたいと思います。