新卒研修として開発した「はてなピアスター」がSlack活用アワードで優勝しました

こんにちは、id:arthur-1 です。Mackerel 開発チームでアプリケーションエンジニアをしています。2022年4月に新卒入社しました。

入社時のエンジニア研修の一環で、2022年の新卒エンジニア4人で「はてなピアスター」という社内向け Slack アプリを5日間で企画・開発しました。

現在でもこの Slack アプリが社内で利用されており、スタッフ同士が気軽に感謝や称賛を贈り合うオンライン上の新たなコミュニケーション機会を創出しています。

はてなピアスター=ピアボーナス+はてなスター

はてなピアスターは、従業員同士で報酬を送り合う「ピアボーナス」という仕組みと、記事やコメントにスターをつけて気持ちを表現できる自社サービスの「はてなスター」を掛け合わせて生まれました。Slack アプリから、他のはてなスタッフに対して感謝のコメントを添えてスターを贈ることができます。

はてなピアスターの送信画面。スターを送る相手・スターの種類・感謝の言葉を入力する
Slack アプリからピアスターを贈る様子
贈ったピアスターの内容が Slack の公開チャンネルに投稿されている
贈ったスターは公開チャンネルにポストされ、感謝のやり取りが可視化されます

はてなではフレキシブルワークスタイル制度が恒久化され、多くのコミュニケーションがオンラインで行われています。スタッフ同士の拠点が違ったりリモートワークだったりしても、インターネット上のオフィスになるような場所は必要不可欠です。

はてなピアスターというサービスを Slack アプリとして作ることで、多くのスタッフに気軽に使ってもらうこと・感謝のやりとりが目に止まる機会を増やすことを目指しました。

TypeScript+サーバレスアーキテクチャで実現

Slack API とのやりとりを行う Slack アプリサーバは TypeScript で実装しました。これは、Slack アプリを作るのに便利な公式ライブラリである Bolt が JavaScript 向けに提供されていたからです。

slack.dev

インフラは AWS 上に構築しました。Slack アプリサーバは API Gateway・Lambda で構成されています。集計やデータのクリーンアップなどを行うバッチ処理は EventBridge Scheduler と Lambda の組み合わせで実現しています。データの永続化には DynamoDB を利用しました。また、これらリソースの構成管理(IaC)には AWS CDK を利用しています。

はてなピアスターのシステム構成図
はてなピアスターのシステム構成図

開発の様子は Hatena Engineer Seminar で発表

はてなピアスターの開発にあたって、まずは手を動かして動くものを作り、自分たちで使ったり他のスタッフにフィードバックをもらったりして、少しずつ機能拡張や改善をしていきました。そのサイクルの中でサービスもチームもだんだん良くなっていき、小さなイテレーションの重要性を実感しました。

開発の様子や研修によって学んだことについては、Hatena Engineer Seminar #23 で id:SlashNephy が「新卒研修で気軽に『ありがとう』を伝え合える Slack アプリを開発した話」というタイトルで発表しています。資料や配信アーカイブは Hatena Developer Blog の次の記事を参照してください。

Hatena Engineer Seminar #23 をオンラインで開催しました #hatenatech

第2回 Slack 活用アワードで優勝!

このはてなピアスターの取り組みで、株式会社セールスフォース・ジャパン様が主催する第2回 Slack 活用アワードに応募したところ、書類選考に通過し決勝プレゼン大会に進出することとなりました。プレゼン大会には私が登壇し発表しました。

その結果、見事優勝することができました! 2023年5月に開催された決勝大会のプレゼン動画が、公式のWebサイトに掲載されています。

Slack User Awards 2023 / 第2回 Slack 活用アワード

Slack 活用アワード2023 優勝トロフィーと、ノベルティのマグカップ・靴下・タオル・ノート・ステッカー
いただいた優勝トロフィーとノベルティ

まとめ

株式会社はてなでは、エンジニア新卒研修で社内向けのサービスを企画・開発しています。Web 技術はもちろん、プロダクトへの向き合い方やチーム開発についても学ぶことができます。自分の作ったサービスが社内で広く使われているのもとても良い体験です。