Upgrade to Pro — share decks privately, control downloads, hide ads and more …

システム開発とかプログラミングとかやったことない素人が勤怠管理システムを作って悩んで挫折して後...

akira
September 11, 2020

 システム開発とかプログラミングとかやったことない素人が勤怠管理システムを作って悩んで挫折して後悔して成長した話

JPAUGで登壇した内容です。
このアプリどっかで公開しようと思ってまっせー

akira

September 11, 2020
Tweet

More Decks by akira

Other Decks in Technology

Transcript

  1. 勤 怠 管 理 に 殺 さ れ そ う

    に な っ た 話 プログラマでも 何でもない鼻糞が 勤怠管理システムを 0から作ってみた話。 陽 (akira) ☑Power Apps ☑Power Automate ☑Teams ☑SharePoint
  2. cymbal chime base oboe harp cajon 銅鑼 theremin Home 365

    Office365 Twitterで演奏公開中 Office365 日報アプリ 勤怠管理 W/F お歳暮アプリ 在庫管理 機器管理 • プロジェクト管理アプリ • 図番検索アプリ • 社内図書アプリ • 社内行事アルバムアプリ • ビンゴアプリ • おみくじアプリ • 改善提案アプリ • 評価シートアプリ • ヘルプデスクアプリ • 社内流行語投票アプリ • 掃除当番表 ・・・など現在33個作成(うち運用は7個)
  3. ①背景、目的 ②問題点、方法 ③実行 ④確認、②に戻る ⑤完了 真理 今回の場合 ①Windows10で既存システムが動かない →Power Platformで作成できるか検討

    ②凄まじく細かく要件定義 (※今回はココの話中心) ③テストデータ、アプリ作成 ④デバッグ(罵倒 ご意見回収) ⑤完成
  4. 背景、現状確認 こういうことかな? できること(前できたんだから出来るでしょ?って項目) ・事務所での打刻 ・時間帯別の計算 ・管理者による打刻修正 ・inputは『カードをかざす』のみ ・csvとpdfでの月締めoutput できないこと(折角作るんだからこれもよろしく項目) ・事務所外でのGPS打刻(社用携帯で打刻)

    ・日付超えた場合の打刻での計算 ・年休申請などの紐づけ ・年休残などの自身でのリアルタイム確認 ・年休取得義務や36協定のリマインド ・会社calendarの反映(第五土曜日は出勤) ・事務所の人はタブでピッてやりたい(社用スマホもってないから) ・イレギュラーの自動対応(休みだったけど急に夕方に客先修理等) え?これゼロから 一人ぼっちでつくるの?
  5. 勤怠申請(※4) 申請承認後、勤怠リスト(※3)に新規作成 ・名前、部署(User().fullnameで取得) ・日付、年休とかの種別(dropdownで選択) ・曜日、休日か平日か(日付から※1でlookup) ・社員種別、定時、メール(名前から※2でlookup) 会社カレンダーリスト(※1) (総務が勝手に作ってたExcelを連携) 社員リスト(※2) (総務が勝手に作ってたExcelを連携)

    勤怠リスト作成(※3) 朝五時(勤怠の日付変更時間)に 今日の勤怠のベースを※2(ID使ってDo until)をもとに作成 ※4で先に該当日付の名前があればスキップ 計算フェーズへ ユーザー打刻 ※3で作った行編集(日付、名前でfilter) 出勤がblankなら出勤ボタンのみ表示 そうでないなら退勤ボタンのみ表示 ユーザーはアプリ起動→ボタン押すだけの2工程
  6. 変数定義 計算したいoutputデータ ・定時内時間(AM) ・定時内時間(PM) ・通常残業時間 ・深夜残業時間 ・早出残業時間 ・遅刻時間 ・早退時間 ・休日出勤時間

    打刻時に取得できるデータ ・出勤時刻 ・退勤時刻 ・休憩入時刻 ・休憩出時刻 ・定時出勤時刻 ・定時退勤時刻 と定義 と定義 ※30分単位の丸めはPowerAppsで行うものとする それぞれの時刻を, , , , , とおいたとき , , , , , , をあらわせ。 ただし、 , , , , , は社員によって様々とし、 残業時間は17時から、深夜残業は22時から、 日付の区切りはAM5時とする
  7. 会社カレンダーリスト メンバーリスト 勤怠リスト(打刻列、承認列) ベース登録 事務所用アプリ GPS打刻アプリ 申請アプリ htmlテーブル excel生成 勤怠リスト(各時間数計算列)

    会計士と共有しているフォルダに生成 create filesトリガーで勝手にメール送る 月次残業、年休残など通知 36協定アラート 年休取得義務アラート スケジューラーに登録 個人と上司に 『打刻ないよー』と通知 管理者アプリ 月ごとのバックアップリスト 会議資料 提出フォーマットに変換 時間計算 PowerAutomate他 全体概要 User Admin Manager Accountant DB処理 毎日5:00 出退勤時間が 登録されたら 締日に テーブル作成 されたら テーブル作成 されたら 計算が終わったら 出退勤時間が 登録されたら 締め作業 終わったら
  8. 最終確認(ここまで1か月) どれだけ改善したかな? できること(前できたんだから出来るでしょ?って項目) ・事務所での打刻 ・時間帯別の計算 ・管理者による打刻修正 ・inputは『カードをかざす』のみ ・csvとpdfでの月締めoutput できないこと(折角作るんだからこれもよろしく項目) ・事務所外でのGPS打刻(社用携帯で打刻)

    ・日付超えた場合の打刻での計算 ・年休申請などの紐づけ ・年休残などの自身でのリアルタイム確認 ・年休取得義務や36協定のリマインド ・会社calendarの反映(第五土曜日は出勤) ・事務所の人はタブでピッてやりたい(社用スマホもってないから) ・イレギュラーの自動対応(休みだったけど急に夕方に客先修理等) 全部改善した!!!!