Blog

スクラムとAWSを駆使して、社員向けMac用勤怠アプリ「かぐきん」の開発記

はじめに

はじめまして、私はKDDIアジャイル開発センター(KAG)でスクラムマスター兼フルスタックエンジニアをしている笹子です。先日、社員向けのMacアプリの開発をする機会がありました。その開発体験について情報共有をしたいと思います。

自己紹介

私は2014年からインターネットプロバイダー会社でソフトウェアエンジニアとして働き始め、スマートホームのベンチャー会社を立ち上げの経験を経て、2019年にKDDIに転職しました。KDDIではauHOMEやオンライン教育サービスの開発を担当し、現在はKDDIアジャイル開発センターに兼務出向して、スクラムマスター兼フルスタックエンジニアとして働いています。普段は、「たのしく開発」を心がけ、チームでサービス開発をしています。2024 Japan AWS All Certifications Engineersと、AWS Community Buildersに選出されました。

背景

このプロジェクトの始まりは、コーポレート部からのお声がけでした。私たちの会社ではエンジニアが全体の約8割を占め、主にMacを使って業務を行っています。しかし、Macからは自動で勤怠が打刻されない課題がありました。この課題を解決するために、Mac利用時に自動で勤怠打刻が可能なアプリケーションの開発に着手することになりました。

開発体制

開発は、KAGの小坂さんと若林さんの3名で開発をしました。スクラム開発手法を採用し、積極的にコミュニケーションを取りながら効率的に作業を進めていきました。

アプリケーションの構成図

このプロジェクトでは、Mac用アプリをSwiftUIで実装しました。私にとってXcodeを使った開発は久しぶりで、以前はStoryboardを使用していましたが、今回初めてSwiftUIを使って開発しました。SwiftUIは全てコードで完結し、簡潔なコードで直感的に開発を進めることができ、楽しく開発することができました。

バックエンドはAWS Serverless Application Model (AWS SAM)を利用して、サーバーレスアプリケーションを構築しました。AWS SAMはCloudFormationやTerraformと比べて、API GatewayやLambdaといったサーバレスサービスの設定を容易に定義可能だったため、今回バックエンドの構築にAWS SAMを使ってとても良かった思います。

かぐきんアーキテクチャ

また、昨年のAWS re:invent 2023で発表されたAWS Application Composer in VSCode活用しながら、開発を進めました。このツールを使うことで、AWS SAMを使って構築したアプリケーションを可視化し、直感的にアプリケーションの構築することができるのでとても便利でした。 AWS Application Composer in VSCodeについての記事をQiitaに投稿しているので、お時間がありましたらぜひご覧ください。 Qiita→AWS Application Composer in VSCodeを使ってAPIを作ってみた

かぐきんAppComposer

完成したアプリ

今回開発したアプリは、KAG(かぐ)の社員が勤(きん)怠打刻できる機能から「かぐきん」という名前をつけました。かぐきんはMacから勤怠打刻ができ、出勤時刻と退勤時刻を確認することができます。また、起動中はMacのステータスバーにKAGのマスコットキャラクターのカグカグと勤怠情報が表示されます。

かぐきんスクショ

アプリアイコンはカグカグの生みの親である若林さんにデザインしていただきました。

かぐきん

苦労した点

今回のプロジェクトでは、3ヶ月という限られた期間内での開発が求められました。特にセキュリティ対応に1ヶ月を要するため、実質的な開発期間は2ヶ月となり、短いスケジュールで、開発が必要でした。この短期間での開発を効率的に進めるために、私たちはSlackでのハドルを活用し、常にオンラインでコミュニケーションを取ることを心がけました。また、SwiftUIやAWS SAMを初めて使うメンバーもいたため、GitHub Copilotを導入し、AI技術を駆使して開発を進めることで、効率よく開発を進めることができました。

おわりに

今回の社内アプリ開発は、短い開発期間の中でも、スクラム手法や生成AIを活用し、そしてコミュニケーションを大切にすることで、成功させることができました。アプリリリース後も、ユーザーインタビューやアンケートを実施し、継続的な改善を進めることができました。このプロジェクトにより、アプリの企画から開発、リリース、そして改善に至る全プロセスを経験し、非常に多くの学びを得ることができました。

現在、社員の声を反映させながらアプリの改善作業を続けており、引き続きユーザーの声に耳を傾け、より良いアプリケーションを開発していきたいと思います。