工数入力を促すための挑戦
はじめに
株式会社イノベーションで事務担当してますichiです。
普段は事務員として、請求書処理や工数集計などを担当しています。
今回は私が日々の業務で直面した「工数入力」に関する課題と、その解決のために奮闘した道のりについてお話しします。
1. 業務課題といざプログラミングの世界へ!
私の仕事と悩み
さて、私の業務の1つに、エンジニアの皆様の工数を月次確定前に集計するというものがあります。
この業務をスムーズに進めるためには、エンジニアの方々に毎日TeamSpirit(弊社で使用している勤怠管理システムです。)で工数を入力していただく必要がありました。
しかし、実際には入力漏れが発生してしまうこともあり、集計業務に影響が出てしまうことも。。。
そこで、社内で工数未入力者への通知の仕組みを作成することを提案いただき、挑戦することになりました。
いざプログラミングの世界へ!
ここで少しだけ私のプログラミング?歴をお伝えしておくと、前職で利用していたKintoneをなるべくお金をかけずにカスタマイズしたい!
との思いから独学したKintoneJavaScriptのみ。。。いわゆるほぼ初心者です…😅
まずは、今流行り?の生成AIに相談だ!ということで生成AIに相談することにしました。
- TeamSpiritを使っていること
- 工数入力をしていただき、工数集計を行うこと
- 工数入力されていない人にアラートを出したいこと
以上を伝えて案を出してもらいました。
まず生成AIが提案してきたのはTeamSpiritの標準機能を使った方法でした。
標準機能でできたら一番簡単!と思ったのですが、世の中そんなに甘くない…
弊社の環境だと標準機能で実現は出来なさそうで、断念しました😔
標準機能でできないとなれば、実現できる方法としてはTeamSpiritのレポートから工数未入力日をピックアップして、該当者にアラートを出す方法か…と思い、ここで一旦情報を整理しました。
必要なこと↓
- TeamSpiritから工数レポートを出力
- 当月のカレンダーを取得
- 会社の休日を取得
- 各個人の休暇情報を取得
- 1~4を基に、工数未入力者をピックアップする
- ピックアップした人にアラートを出す(Slackへのメンション通知)
現在、工程を書き出すと上記のようになりますが、実際やったときはこんなに最初からきれいには出せなくて、やっている間に「あの情報も必要」「この情報も必要」、という風に増えていきました。
この行き当たりばったり感は初心者あるあるだと信じてます😅
ここからはまた各データをどのように取得するかを生成AIに相談してトライ&エラーで進めていきました。
2.工数入力促進Bot「工数ポリスメン」爆誕👮
目指せ!工数入力率100%!
私が目指したのは、「なるべく人の手を使わずに、未入力の方へ工数入力を促す」仕組みです。
そこで、試行錯誤の末に完成したのが、工数入力促進Slack Bot「工数ポリスメン」です!
「工数ポリスメン」の仕組みを大公開!
「工数ポリスメン」は、以下の3つのステップで動いています。
-
必要なデータを収集
- まず、TeamSpiritから工数と休暇に関するレポートデータを取得します。
- 次に当月のカレンダーを取得します。
- 会社の休日(厳密にいうと土日祝日…祝日はどうしても取得漏れがあるので別で管理してます。)と各個人の休暇情報を取得します。
-
スプレッドシートでデータ処理
- 取得したデータをスプレッドシートに読み込み、GAS(Google Apps Script)で工数入力が必要な日を自動で判断します。
- 具体的には、祝日や休暇日を除外し、平日かつ、まだ工数入力がされていない方を特定します。
-
Slackへ自動通知
- 工数未入力の方がいる場合、Slack APIを使って、Slack Bot「工数ポリスメン」から対象者へ個別に通知を送信します。
プログラミングに悪戦苦闘💦
この仕組みを作るにあたり、プログラミング経験がほぼ初心者だった私は、まさに手探り状態。
インターネットで検索したり、生成AIに質問したりしながら、必要な情報を少しずつ集めて実装していきました。
生成AI先生には、
👩💻「GASでTeamSpiritのレポートデータを取得するにはどうすればいいですか?」
👩💻「スプレッドシートで特定の日付を判定する関数を教えてください」
👩💻「Slack APIを使ってBotからメッセージを送るコードを書いてください」
などなど、 文字通りすべてを教えてもらいました。
正直、コードの意味も完全に理解できていませんでしたが、なんとか「工数ポリスメン」を動かすことに成功!
しかし、動いたはいいものの、正直なところ、私は自分が何を作ったのか完全には理解できていませんでした。
3. Udemyで学びの道へ!知識ほぼなし!ゼロからのスタート
Udemy先生、助けてください!
「工数ポリスメン」は動くようになったものの、コードはコピペの寄せ集め状態。
これでは、自信を持って運用することも、改善していくことも難しい。。。
そこで、社内で利用されているUdemyの門を叩くことにしました。🚪
Udemyには、まさに私のようなIT知識ゼロの事務員でも理解できる、優しい講座がたくさんあります。
Udemyで得た学び:目指せ脱コピペ!
私がUdemyで重点的に学んだのは、以下の2点です。
3.1. APIとは何か?
「工数ポリスメン」の心臓部であるSlack API。
APIについては全くの無知だった私に、Udemy先生は優しく教えてくれました。
- APIは、ソフトウェア同士がおしゃべりするための共通言語 🗣️
- APIを使うと、色々なサービスと連携できる 🤝
- APIを使って、自分で作ったツールからSlackを操れる! 🤖
APIの基礎を学んだことで、「工数ポリスメン」がSlack APIと どのように通信しているのか、裏側でどんな処理が行われているのか理解できるようになりました。
でも自分の言葉で説明して、と言われたら説明できないくらいなので、まだまだですね🙅🏻♀️
3.2. JavaScriptの基礎
スプレッドシートでGASを書くために、避けては通れないJavaScript。
UdemyでJavaScriptの基礎を学んでいます。
具体的には、
- プログラミングの基本的な考え方 🧠
- コードの文法や構造 📝
- 自分でコードを書くための第一歩 🪜
です。
今までコーディングと聞くと、何やら複雑な文字がズラリと並んだものを想像していましたが、Udemyで学んでみると、意外とシンプルで論理的なものだと気づきました。
Udemyのおかげで、コーディングへの苦手意識が薄れ、むしろ
「もっと色々コーディングで自動化できるんじゃないか?🤔」
と、前向きな気持ちに変化しました。
自由に使いこなせるまで、もっともっといろいろなことに挑戦していきたいと思います!
4. まとめ:Udemy学習の成果と今後の展望
「工数ポリスメン」運用開始!
現在「工数ポリスメン」は毎週欠かさず工数入力状況を監視し、対象者の方にSlackで通知を送ってくれています。(初めての祝日で誤って通知が飛んでしまったのはご愛嬌💦)
そのおかげで、以前よりもスムーズに工数が集まるようになり、集計業務の効率も大幅に向上しました!
事務員だってITで業務改善できる!
今回の「工数ポリスメン」開発を通して、
「プログラミング未経験の事務員でも、ITの力で業務改善ができる」
ということを実感しました。
Udemyとインターネット、そして生成AIがあれば、誰でもプログラミングに挑戦できる時代です!
これからも、Udemyでより学びを深め、コーディングのスキルを磨いて、業務効率化に貢献していきたいと思います🫡
Discussion