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

39adbc0cddb8c0ea8470c80248e9e71b?s=47 akira
September 11, 2020

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

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

39adbc0cddb8c0ea8470c80248e9e71b?s=128

akira

September 11, 2020
Tweet

Transcript

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

    に な っ た 話 プログラマでも 何でもない鼻糞が 勤怠管理システムを 0から作ってみた話。 陽 (akira) ☑Power Apps ☑Power Automate ☑Teams ☑SharePoint
  2. 第壱話 礼讚の代償

  3. 3月末某弊社にて この間つくってもらった 日報アプリよかったよ! 書くのサボってるやつが 一目でわかるのはいいね! 某弊社社長 (実際はフサフサ)

  4. 3月末某弊社にて 某弊社社長 (実際はフサフサ) ありがとうございます。 でも私なんかでもアプリが 作れたのは… のおかげなんですよ! わい (実際は強面)

  5. 3月末某弊社にて 今使ってる勤怠システムが Windows7まで対応だから 変えなきゃいけないけど で作れるかな? 某弊社社長 (実際はフサフサ) わい (実際はテンパ)

  6. 某弊社社長 (実際はフサフサ) わい (実際はテンパ) 3月末某弊社にて 他社事例探して 可否検討してみます! (出来るとは言ってない)

  7. 『PowerApps 勤怠 作り方』 で検索検索ぅー 3月末某弊社にて

  8. なるほどね完全に理解した! (変数ってなんだろう…?) 3月末某弊社にて 第壱話 礼讚の代償 -完-

  9. 最近の推しはPower BIです! Power Platform歴(9か月) 自社にoffice365導入(2019.8) Power Appsを見つける(2019.12) Power Automateを見つける(2020.01) JPPUG758(名古屋)に参加(2020.02)

    個人的Power Apps流行(~2020.05) ハマりすぎて彼女に振られる 個人的Power Automate流行(~2020.07) 誤家庭に憧れ
  10. cymbal chime base oboe harp cajon 銅鑼 theremin Home 365

    Office365 Twitterで演奏公開中 Office365 日報アプリ 勤怠管理 W/F お歳暮アプリ 在庫管理 機器管理 • プロジェクト管理アプリ • 図番検索アプリ • 社内図書アプリ • 社内行事アルバムアプリ • ビンゴアプリ • おみくじアプリ • 改善提案アプリ • 評価シートアプリ • ヘルプデスクアプリ • 社内流行語投票アプリ • 掃除当番表 ・・・など現在33個作成(うち運用は7個)
  11. Power Appsで楽器アプリ作成し、不定期に演奏会をする変態的楽団 Japan Power Apps Orchestra https://www.facebook.com/groups/powerappsorchestra 是非ご参加ください!(私は運営ではありませんが・・・)

  12. 第弐話 才気煥発の予感

  13. モノづくり業の進め方は 車や建築と同じだろう! 男ならドンとやれだ! 4月頭某弊社にて

  14. 建築設計の場合 目的、ビジョン、予算の確認 プランニングや現状把握 インスペクション、是非の判定 テストモデル作成 問題点提起、改善提案 次工程へ ①背景、目的 ②問題点、方法 ③実行

    ④確認、②に戻る ⑤完了 真理
  15. ①背景、目的 ②問題点、方法 ③実行 ④確認、②に戻る ⑤完了 真理 今回の場合 ①Windows10で既存システムが動かない →Power Platformで作成できるか検討

    ②凄まじく細かく要件定義 (※今回はココの話中心) ③テストデータ、アプリ作成 ④デバッグ(罵倒 ご意見回収) ⑤完成
  16. とりあえず今の勤怠管理の 流れを総務に聞こう! 背景、目的確認

  17. よくわかんないんですけど、最終的にデータはcsvとpdfにして 給与計算してくれてる会計士さんにちゃんとzipにして パスワードかけてメールで送ってます! csvとpdf送ってる理由?よくわかんないです! ヒアリング よくわかんないんですけど入口のカードをピッてやると このPCのここをクリックして〇〇して△△して皆の勤怠が みれるんですよーよくわかんないですけど! よくわかんないんですけど、遅刻と早退は勝手にでるんですけど、 年休とか半休とかは打ち込まないといけなくて、

    出張先から打刻できないので一人ひとり 退勤時間チャットで聞いてます! よくわかんないんですけど! 残年休?しりません! 個人で管理してるんじゃないですか?
  18. よくわかんないんですけど、最終的にデータはcsvとpdfにして 給与計算してくれてる会計士さんにちゃんとzipにして パスワードかけてメールで送ってます! csvとpdf送ってる理由?よくわかんないです! 背景、現状確認 よくわかんないんですけど入口のカードをピッてやると このPCのここをクリックして〇〇して△△して皆の勤怠が みれるんですよーよくわかんないですけど! よくわかんないんですけど、遅刻と早退は勝手にでるんですけど、 年休とか半休とかは打ち込まないといけなくて、

    出張先から打刻できないので一人ひとり 退勤時間チャットで聞いてます! よくわかんないんですけど! 残年休?しりません! 個人で管理してるんじゃないですか? よくわかんないけど!
  19. 背景、現状確認 こういうことかな? できること(前できたんだから出来るでしょ?って項目) ・事務所での打刻 ・時間帯別の計算 ・管理者による打刻修正 ・inputは『カードをかざす』のみ ・csvとpdfでの月締めoutput できないこと(折角作るんだからこれもよろしく項目) ・事務所外でのGPS打刻(社用携帯で打刻)

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

    勤怠リスト作成(※3) 朝五時(勤怠の日付変更時間)に 今日の勤怠のベースを※2(ID使ってDo until)をもとに作成 ※4で先に該当日付の名前があればスキップ 計算フェーズへ ユーザー打刻 ※3で作った行編集(日付、名前でfilter) 出勤がblankなら出勤ボタンのみ表示 そうでないなら退勤ボタンのみ表示 ユーザーはアプリ起動→ボタン押すだけの2工程
  21. あとは自動で計算させて エクスポートの機能つくるだけだ! 第弐話 才気煥発の予感 -完-

  22. もしかして変動する値全部定義してあげれば あとは条件分岐で計算できるんじゃね? 変数って、数学の変数か? x,yとか・・・

  23. 第参話 変数 の襲撃

  24. 変数定義 計算したいoutputデータ ・定時内時間(AM) ・定時内時間(PM) ・通常残業時間 ・深夜残業時間 ・早出残業時間 ・遅刻時間 ・早退時間 ・休日出勤時間

    打刻時に取得できるデータ ・出勤時刻 ・退勤時刻 ・休憩入時刻 ・休憩出時刻 ・定時出勤時刻 ・定時退勤時刻 と定義 と定義 ※30分単位の丸めはPowerAppsで行うものとする それぞれの時刻を, , , , , とおいたとき , , , , , , をあらわせ。 ただし、 , , , , , は社員によって様々とし、 残業時間は17時から、深夜残業は22時から、 日付の区切りはAM5時とする
  25. 変数定義 結構、定義が重複してるからこれも変数にしちまおう!

  26. これ全部『変数の初期化』action 変数定義 「うわああああああああああ!!!」

  27. 変数定義

  28. 「うわああああああああああああああああああああああああ!!!」 変数定義 変数決定ゾーン 条件分岐ゾーン 変数リセットゾーン 第参話 変数 の襲撃 -完- とりあえず全パターン正常に動くことを確認(一晩かかった)

    ※今はもうちょっとコンパクトなflowにしてます
  29. 最終話 不安と決断

  30. 拠点用iPadアプリ 個人用iPhoneアプリ 勤怠申請アプリ 管理者用打刻 メンバー情報登録変更アプリ(PC) PowerAppsビジュアル

  31. 会社カレンダーリスト メンバーリスト 勤怠リスト(打刻列、承認列) ベース登録 事務所用アプリ GPS打刻アプリ 申請アプリ htmlテーブル excel生成 勤怠リスト(各時間数計算列)

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

    ・日付超えた場合の打刻での計算 ・年休申請などの紐づけ ・年休残などの自身でのリアルタイム確認 ・年休取得義務や36協定のリマインド ・会社calendarの反映(第五土曜日は出勤) ・事務所の人はタブでピッてやりたい(社用スマホもってないから) ・イレギュラーの自動対応(休みだったけど急に夕方に客先修理等) 全部改善した!!!!
  33. これ、自分が死んでも誰か引き継げるのかな・・・? 法律変わった時に一人でメンテできるのかな・・・? そもそもメンテ引くほど大変じゃね・・・? なんかあったとき給料に影響でるけど大丈夫か? ざわ・・・ ざわ・・・ ざわ・・・ ざわ・・・ ざわ・・・

  34. 6月頭某弊社にて ・法律対応 ・メンテの難化 ・属人化 ・システムに伴う責任 の観点からSaaS導入を勧めます 期待させてしまって申し訳ありません そんなことより顔色悪いから少し休みなさい。 よく頑張ったね。 ちゃんと経験になってよかったよ。

    これからもおもしろいアプリお願いね。
  35. どこのSaaSにしよっかなー

  36. 最終話 不安と決断 -ジョブ完-

  37. • ご利用は計画的に • 突き進むのは勝手だが、『出来るかもしれない!』 で突き進んでいいのは、プライベートだけにしよう(そして誤家庭へ…) • 失敗は糧になる • 幸か不幸か、Power Platform関連の理解が異常に深まった

    • ひとりで悩まない • ユーザーグループや勉強会を活用しよう あとがき 駄文を読んでいただき有難うございます。