こんにちは。バンキングフロントチームのY.A.です。
当ブログでは度々、若手エンジニアメンバーが登場していますが、私もその一人です。前職では、運用作業で少しインフラに触れる機会はありましたが、webのシステムを作ったことはありませんでした。
OJT研修に参加すると最後的にフリーテーマで"最終成果物"なるものに取り組むことになります。私も"最終成果物"を作成しました。しかも未経験のwebのシステムを作ることにチャレンジしました!
今回つくったもの
当社には人事が運営する「サンクスアワード」という独自の社内制度があります。社内でお世話になった方に感謝のメッセージを送り、パートナー同士で褒め合い、働くモチベーションをアップする施策です。功績によっては表彰されることもあります。これまでは、MicrosoftのFormsで投稿する、というものでした。
今回はこの「サンクスアワード」専用のシステム(感謝の投稿が掲示板形式で見られるシステム)をつくってみた!というお話になります。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/a/ay-gmoa/20240703/20240703154220.png)
サンクスカードシステムの使い方
ありがとうを伝えたい相手と感謝の内容を選ぶだけで、相手に通知されます。利用促進のため、簡単に送ることができます。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/g/gmo-aozora/20240709/20240709113157.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/a/ay-gmoa/20240702/20240702233959.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/a/ay-gmoa/20240703/20240703103947.png)
なぜつくったのか?
私自身、前の職場でもサンクスカードシステムを活用した社内文化があり、とても気に入っていました。
最終成果物のテーマ決めの際に、既製のフォームではなく、自分自身でサンクスアワードのシステムを作ってしまおうと考えたのがきっかけでした。
やったこと
今回は企画して、つくって、リリースするまでが目標だったため、周辺タスクもいろいろとありました。
要件まとめ
どんなものをつくればよいか、運営元の人事と話したところ、色々と課題が見えました。
■運用面の課題
- 投稿を受け取った人へのお知らせメールを担当者が手動で送っている
- 入社者が発生すると、「都度人事システムから全パートナーをエクスポート ⇒ 昇順にソート ⇒ Formsに取り込み」という作業が発生する
■利便性の課題
- メッセージをおくりたい相手は、Formsのドロップダウンで選ぶ必要がある(数百人のリストから探す、、)
これらを踏まえ、基本方針をふたつ設定しました。
- 運用を自動化する
- 使いやすくて楽しい仕組みを取り入れる
アプリのこだわりポイント
アプリのフレームワークは、SpringBoot(java)を使用し、設計/実装は生成AIを活用しながら作りました。環境の再構築なども考慮し、なるべく手元にあるものだけで作る、を意識しました。
こだわりポイントその1
グッドボタンを押すと、紙吹雪がでます。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/a/ay-gmoa/20240703/20240703121913.png)
こだわりポイントその2
webの画面とは別にアカウントの入退社管理を自動化するため、Microsoft Graph API と連携したバッチ機能もつくりました。
定期的にバッチ実行して、当社Microsoft Entra IDのアカウント情報を照会し、システムのアカウントテーブルを更新する仕様です。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/g/gmo-aozora/20240709/20240709102446.png)
インフラ構築を通じて、当社の強みを感じる
サーバーはセキュリティ要件を鑑み、既存のオンプレ上に立てることを検討しました。ただ、当社は”銀行”なので、セキュリティの担保は重要です。社内にサーバー建てたい!といきなり言ってもすぐには難しいだろうなと半ば諦めていました。
ダメ元で「実はOJTで~」と相談してみたところ、セキュリティを担保できる環境に、仮想マシンを1台用意してもらえることに!
決まってからはものの数日で構築いただき、事前の予想に反しすんなりサーバーが手に入りました(情報システムチーム、インフラチームに感謝しています)
また今回、アカウント管理の自動化やメール送信を実現するにあたり、Microsoft Entra ID(旧Azure AD)のMicrosoft Graph APIが利用できれば諸々解決できそうだと分かりました。
しかし、APIの利用には新たにNWの疎通許可をしてもらう必要があります。私自身、社内NWの構成は詳しくなく、そもそもできるかわからないまま関連チームに相談しました。
その結果、さすがのテクノロジーバンク、私のフワっとした要望を整理するところからご助力いただき、これも数日で設定いただけました!(情報システムチーム、システムリスクチームに感謝しています)
インフラ部分が一番の課題でしたが、強力なサポートのおかげで無事解決!
この時、改めて当社の柔軟性とスピード感、エンジニアの強さを実感しました。
出来上がった構成はこちら下図になります。
実は純粋なサーバーではなく、既存の基盤を活用するためWindows10を中継する構成になっています。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/a/ay-gmoa/20240703/20240703175423.png)
リリースと発表会
できるだけ多くの人に周知したほうがいいよね!ということで、システム完成後にチーム長以上の方や社長、会長が参加される会議でリリース前に発表する機会を得ました。
当初はこんな大掛かりな話にはなるとは思ってもいなかったので、盛り上げていただいて嬉しい反面、緊張でドキドキでした。発表会もなんとか無事に終了し、システムのリリースにこぎつけました。
社内の反響に感動
システムの仕様上、パスワード初期化メールは現状私のメールアドレスから送付される仕組みにしています。そのためたくさんのパスワード初期化メールが私のメールアドレスから飛び立っていくのを見たときは感動しました。なんと1日で数10件のサンクスカードが投稿されていました!
システムが完成したらOJTやこの企画でお世話になった方々に自分で作ったシステムからメッセージを送りたいと思っていましたが、もちろん実現できました!
まとめ
実際に「企画・要件定義~導入」までをひと通り経験できてよかったです。
前述した課題についても概ね解決することができ、当初の目標は達成できたと思います。そして何より、自分が作ったものをたくさんの人に使ってもらえたことがとにかく嬉しかったです!
アプリの実装には生成AIを活用しましたが、フレームワークや言語についての理解が乏しい状態からだったため、かなり苦労しました。。
しかし、実際に手を動かして作ったことで、実務で役立つスキルをいろいろと習得できたのは、願ったり叶ったりでした!
最後になりますが、OJTの中で「当社は内製が特徴なので、作ることにスポットが当てられがちだが、実際は作った後(運用)のほうが大事!」という話を聞きました。
リリース直後にたくさんの方に使っていただいたのは嬉しかったですが、末永く使ってもらえるよう工夫をしていきたいなと思います。
ーーー
一緒にGMOあおぞらネット銀行で働いてくれる仲間を募集しています。
社内勉強会はもちろん、GMOグループの勉強会にも参加できます。ご興味のあるエンジニアの方は、当社採用ページをぜひ一度ご覧ください。