SmartHR Tech Blog

SmartHR 開発者ブログ

年末調整機能と過ごした7年間の軌跡

普段着用している年末調整Tシャツ。マル扶Tシャツは着すぎて文字がかすれている

こんにちは。SmartHR プロダクトエンジニアの宮國(@gongoZ)です。

私は去る5月に誕生日を迎え、ついに40歳となりました。おめでとうございます!
SmartHR に入社したのは2017年9月、つまり33歳でした。時が過ぎるのは早いものです。

良い節目なので、今回は SmartHR で過ごした約7年間を振り返っていきたいと思います。

社内経歴

入社から現在までの、社内で携わってきた業務経歴を一枚絵に起こしてみました。

宮國の社内経歴。これまで3プロダクトに携わってきたが、在籍期間の4分の3が年末調整機能

入社してしばらくは基本機能のタスクに着手していましたが、入社一ヶ月後に声をかけられました。

「年末調整機能、やってみない?」

そこから私と年末調整の関係が始まりました。途中、文書配付機能*1チームに配属されていたこともありましたが、気づけば年末調整機能に戻ってきていました。ただいま。
今では在籍期間の4分の3を年末調整機能と過ごしています。

ここからは、そんな付き合いの長い年末調整機能との思い出に焦点を当てていきます。

年末調整機能チームの年間スケジュール(ざっくり版)

年末調整は名前のとおり、一番動きのある時期は年末です。しかし、年末以外にもやるべきことはたくさんあります。

  • 10月〜12月
    • 年末調整機能リリース
    • 問い合わせ対応や不具合修正対応
    • 翌年の年末調整 で対応予定タスクの詳細化
  • 翌年1月〜9月
    • この年10月リリース予定の年末調整機能の開発
      • 新機能開発、機能改修、不具合修正、etc
    • 翌年の年末調整 で対応予定タスクの洗い出し

ざっくりとしたものですが、早い時期から翌年に備えて動き出していることがわかると思います。

「翌年何をやるべきかって年中決められるものなの?」と思われるかもしれません。私もそう思っていました。 実際には下記のタイミングで随時アップデートされていくため、やることは尽きません。

  • ユーザーからの問い合わせ(要望、不具合報告、etc)
  • 企業戦略からのタスク化
  • 税制改正大綱の公開(毎年11、12月)
    • 翌年以降に予定されている法改正内容

これらのタスク化、特に要件定義はドメインエキスパートの力を日々借りております。

200万人が利用した年末調整プロダクトを支える、ドメインエキスパートの仕事とは - SmartHR Tech Blog

いつもお世話になっております。本当に助かっています。

年末調整機能の歴史と思い出

私が年末調整機能に携わるようになってから、毎年これだけのアップデートが行なわれてきました。

読み返してみると「こういうの作ったな〜」「これはすごい大変だったな〜」といった思い出が溢れ出してきました。

そこで、本項では 毎年の思い出 をリリース内容からピックアップしてご紹介していきます。

2017年

年末調整機能と過ごす初めての年末 だったこともあり、特定の機能というよりも全てが懐しい思い出です。ここから始まったんだなって。

2018年

2018年は 配偶者控除改正(国税庁) 対応がありました。 わかりやすい変化としては 年末調整で提出する書類が一部変更された ことでしょう。

  • 改正前
    • 給与所得者の保険料控除申告書 兼 給与所得者の配偶者特別控除申告書 という書類があった
  • 改正後
    • 給与所得者の保険料控除申告書 が誕生した
    • 給与所得者の配偶者控除等申告書 が誕生した

そう、分離 したのです。「書類が増える」ということはあるんだろうなと考えてはいたのですが、まさか分離までするとは予想できませんでした。

平成30年付近の書類の歴史。「扶」「保・配特」「保」「配」は、それぞれの書類に印字されているロゴマーク

2019年

2019年は2つピックアップします。

  • [給与所得者の(特定増改築等)住宅借入金等特別控除申告書]作成サポート機能
  • [団体扱い保険インポート]機能

[給与所得者の(特定増改築等)住宅借入金等特別控除申告書]作成サポート機能

住宅借入金等特別控除、いわゆる「住宅ローン控除」を年末調整で受けるために提出が必要な書類が作れるようになりました。

私は住宅ローンを組んだことが無いため、この書類とはこの年初めて出会いました。 記入すべき内容が複雑で、従業員だけでなく労務担当者にも負荷がかかる書類であることは一目見てわかりました。

本機能をリリースすることができ、従業員や労務担当者が少しでもハッピーになっていれば幸いです。

[団体扱い保険インポート]機能

みなさんが普段保険料控除申告書に記入しているもの(本項では個人契約保険と呼称)と違う、また別の保険形態となります(本記事では説明は省きます)。 団体扱い保険も年末調整の保険料控除が適用できるのですが、契約情報が記されている媒体が個人契約保険と異なります。

  • 個人契約保険
  • 団体扱い保険
    • DATファイル(固定長のテキストファイル)
    • 生命保険共同センター(LINC)や日本損害保険協会から発行される

特に力を入れたのは、このDATファイルのパーサーの実装です。固定長ファイルを扱うのは本当に久しぶりで、楽しかったです。

2020年

冒頭の社内経歴でも紹介しましたが、2020年は別プロダクトを担当していたため、この年の機能開発にはほとんど関わっていません*2。 そんなわけで2021年になって全体的に触れてみましたが、ものすごく大きな、そして大量の変化が起きていたことを知りました。これらを実装した2020年担当のメンバー本当にすごい。

本当に多くあるので、項目名だけ紹介致します。

  • 給与所得控除の引き下げ
  • 基礎控除の引き上げ
  • 扶養親族等の合計所得金額の要件等の見直し
  • 寡婦・ひとり親控除
  • 所得金額調整控除への対応

各項目の詳細は 令和2年度 税制改正への「ペーパーレス年末調整2020年版」の対応について|お知らせ|SmartHR をご覧ください。

2021年

2021年は 年末調整の申告前後の差分を抽出する機能(通称、差分リスト機能) の改修が目玉でした。 どの項目に変化があったかを一目で確認できることで、書類の目視確認にかかる作業時間を大幅に減らせました。嬉しい。

2022年

2022年からは、保険料控除情報の登録に 電子的控除証明書 を使用できるようになりました。

【年末調整機能】電子的控除証明書に対応!保険料控除証明書のペーパーレス化を実現 - SmartHR Mag.

これまでは自宅に届く紙の控除証明書を目視確認して、記載されている金額を申告書の正しい位置に記載する必要がありました。 しかしこの年からは電子的控除証明書(XMLファイル)をインポートするだけで必要な情報が自動的に登録できるようになったので、記入ミスが少なくなり、従業員・担当者双方に幸せが訪れたと聞きました。嬉しい。

2023年

2023年は機能そのものよりも、税制に関する知識の習得に苦労した記憶が強く残っています。

  • 所得金額調整控除
    • 子ども・特別障害者等を有する者等の所得金額調整控除
      • 通称:所得金額調整控除(子ども等)
    • 給与所得と年金所得の双方を有する者に対する所得金額調整控除
      • 通称:所得金額調整控除(年金等)
  • 退職所得を有する配偶者・扶養親族
    • 所得要件を満たしていない配偶者や家族は扶養控除対象外になる(所得税の控除対象外)
    • ただし 退職所得を差し引いたら所得要件を満たす場合住民税の控除対象 になる

他のプロダクトエンジニアはもちろん、ドメインエキスパートも一緒に「あーでもない、こーでもない」と要件や実装方針を固めていったことも懐しい思い出です。

年末調整機能の開発中に遭遇する困難とその対策

これまでの年末調整機能を振り返ってきましたが、毎年「いいリリースだった!」と「それはそれとして大変だった」が同居していたなとあらためて思いました。 それと同時に、7年間携わっていると「このパターン は難しかったな」というように、難しさの傾向がありそうだなということも気づきました。

そこで、本項では 年末調整機能開発において遭遇しやすい困難な事象 をリストアップしていきます。 併せて、その事象に どうやって立ち向かっているのか もご紹介します。

毎年の法改正に備える

毎年の法改正への追従は、年末調整に限らず様々なプロダクトが対応しています。 年末調整機能は特に 税制(所得税) に関する改正を注意深くチェックする必要があります。

以下はこれまでの税制改正の一例です。

  • 2020年(令和2年)から[源泉控除対象配偶者]および[控除対象扶養親族]の所得条件が変わった

    2019年(令和元年)まで 2020年(令和2年)から
    源泉控除対象配偶者 85万円以下 95万円以下
    控除対象扶養親族 38万円以下 48万円以下
  • 2023年(令和5年)から住民税のために[退職手当等を有する配偶者・扶養親族]を判定する必要が出てきた

    配偶者の扶養控除適用パターン絵。「年間合計所得」が133万円以下であれば所得税・住民税ともに扶養対象。「退職所得以外の合計所得」が133万円以下であれば住民税だけ対象。「退職所得以外の所得」だけでも133万円を超えてしまう場合は、扶養控除の対象外となる

上記で挙げたもの以外にも、年末調整では「年間の合計所得額」を起点として様々な控除適用判定を行なう機会が多いです。*3

もし仮に

  • 計算ミスにより合計所得額が1円足りず、所得条件を満たせなくなった
  • 所得条件の誤判定により、控除適用外と見なされてしまった

なんて事態になってしまえば、最終的に 数万円の控除額の差 が生まれてしまいます。避けなければなりません。

本項の対策としては、以下の動きを心掛けるようにしています。

  • 発端となる法改正のキャッチアップを早めに行ない、実装前にチームへの共有をしっかり行なう
    • キャッチアップはドメインエキスパートの力を借りている。毎年感謝
    • 共有で終わらず、不確実性を減らしていく作業も進める
  • 金額計算や所得条件判定ロジックのテストを厚めに行なう
    • テストケースをドメインエキスパートやQAエンジニアと協力しながら構築
    • それらを自動テストに落し込む

早めのキャッチアップと厚めのテスト、基本にして奥義です。

過去の申告データにも気を配る

SmartHRの年末調整機能では過去年の年末調整書類の閲覧*4だけではなく、 過去の年末調整書類の作成 も可能です。

  • お客様が年末調整機能のリリース前に 前年の年末調整機能 を使って書類の作成を試してみる
  • 提出済みの書類に不備があった時、修正のために前年分の情報を修正する

過去の年末調整書類を作成・修正するということは、つまり 過去の税制に従って書類を作成する 必要があるということです。

前項でも挙げたとおり、税制改正は「令和○年から所得条件が変わるよ」パターンが多く存在します。 これに合わせて「よし、今から判定ロジックを令和○年用に全て切り替えよう!」としてしまうと、過去の年末調整書類を作成する時に 誤った判定が反映された書類 になってしまうのです。

本項の対策としては、以下の動きを心掛けるようにしています。

  • 着手前にチームで「この変更は 過去年の制度に影響があるものかどうか 」の把握を行なう
    • 「今年から収集し始めた情報が無くても、過去の書類は正常に作成できるかどうか」など
  • 税制改正に伴う実装の自動テストを作成する時は、 年毎に期待結果を設定 し、検証できるようにする
    • 「今年の限度額は95万円だけど、去年の限度額は85万円だよな」など

副産物として、自然と「202X年にこういう法改正あったよね」「あったあった。あれはすごい改正だったよね」と昔話で盛り上がれるようになります。

ユーザーが機能に触れる時期が限られている

年末調整機能は文字どおり年末調整時期に利用数がピークを迎えます。逆にいえば、それ以外の時期はほとんどアクセスがありません。 アクセスが少ないということは機能に触ってもらうことが少ない、つまり フィードバックを得る機会が少ない ことに繋がります。

年末調整機能チームの年間スケジュール(ざっくり版)でも紹介したとおり、 年末調整時期以外(1月〜9月)はその年に出す機能開発に集中しています。つまり3月に開発した機能も、7月に開発した機能も、ユーザーに届くのは同じく10月になります *5

そんな機能たちも、いざ蓋を開けてみると

  • 「これは……なにか思っていたものと違うな?」
  • 「わかりづらい!難しい!」

となるかもしれません。しかも 年末調整シーズン真っ只中 に。これはリスクが高い上、開発のモチベーションにも響いてきます。なんとかしたい!!

本項の対策としては、以下の動きを心掛けるようにしています。

  • 弊社の労務担当者に機能のレビューをしてもらう
    • 今年の年末調整業務を乗り越えられそうか、という観点で
  • 前年のフィードバック を基に、その年の機能開発に適用させる
    • 少なくとも前年までは ユーザーが欲しいもの がそこにあった
    • 実際に2023年までに戴いた要望をいくつかご紹介
      • 👤 < 「『令和4年以降の住宅ローン控除』に対応してほしい!」
      • 👤 < 「従業員がアンケートに回答後、自身の手で修正→再提出できるようにしてほしい!」
        • 「間違っていたから直したい!」となっても、一度 担当者の方に差し戻してもらう 必要があり、その連絡がお互いに手間となっていた

労務担当者目線だけではなく従業員目線としても、つまり 私自身が一人のエンドユーザーとして欲しいもの も反映できるチャンスです。

年末調整機能に携わっているからこそ得られるモノ

年末調整機能の歴史や、開発の難しさについて書いてきましたが、「やれてよかった」と思うことも勿論あります。本当です。最後に一挙紹介していきます。

ユーザーの反応が多く得られる

年末調整機能はSmartHRプロダクトの中でも、特に 従業員 が触れる機会が多いプロダクトです。 年末調整そのものも毎年恒例イベントとして定着しているため、年末調整時期には SNS で言及されることが非常に多くなります。

  • 「SmartHRで年末調整やるのすごい楽!!」
  • 「5分で終わった!もう紙には戻れない」
  • 「転職先もSmartHRで年末調整できる会社がいいな」

といった投稿も良く見かけるので、開発チームとしても励みになっています。 もちろんポジティブ以外のコメントも戴きますが、それもまた次の年の糧となれば!

毎年の税制改正を見越した設計・実装の楽しさ

以前から変更容易性や後方互換性といった観点は大事であることは理解していました。 しかし年末調整機能に携わるようになり、観点を持つだけでなく実際にそれらが効果を発揮する瞬間に喜びを感じるようになりました。

  • 複雑な税制対応に小コストで実現できそうな土台が既に出来上がっていた \ヤッター/
  • 過去・現在・未来とあらゆる控除条件パターンを網羅した実装が完成した \スゴイ!/

年末調整機能以外の開発でもおそらく得られるものでしょう。しかし年末調整機能だからこそ違う "何か" がある。そんな気がしてなりません。

年末調整に愛着が湧く

あらゆる書類の変更、税制改正、実装の複雑さ、それを達成する喜び。すべてを通ってきて、気づけば年末調整が好きになりました。 好きすぎて、現在は SUZURI でアイテムを作成・販売*6しています。

オススメ商品は身に付けるだけで年末調整のことを思い出せて、かつ知識が得られる以下のアイテムです。

みなさんも、オススメの年末調整ポイントを具現化していきましょう。

「マル扶」ロゴ入りのクッション。寝室に配置しています。

最後に

気づけば7年間、年末調整と過ごしてきました。笑いあり涙ありの日々でしたが、楽しく過ごしております。 この記事を見ている皆様のほとんどは毎年年末調整をやられていると思うので、その時期になったら少しでもいいので年末調整に優しくしてあげてください。

そんなSmartHRの年末調整機能ですが、もちろん今年も絶賛開発中です。 そして、ここまで読んでいただいたあなたにだけ、こっそり 2024年の目玉機能 をいくつかご紹介します!

  • 定額減税(年調減税)に対応します
  • 「令和4年以降の住宅ローン控除」申告書作成に対応します
    • 最近住宅ローンを組んだ方は、是非ご利用ください!
  • アンケート回答後、従業員が自身の手で回答内容の修正→再提出できるようになります
    • 「一度回答してしまったら修正に時間がかかってしまう」という不安から解放されます!

他にも様々な改修を進めているので、ご期待ください。

We Are Hiring!

SmartHR では一緒に SmartHR を作りあげていく仲間を募集中です! 年末調整機能に少しでも興味を持っていただけたら、カジュアル面談でざっくばらんにお話ししましょう! もちろんそれ以外のプロダクトでも構いません。是非!

hello-world.smarthr.co.jp

*1:当時は雇用契約機能と呼ばれていた https://smarthr.jp/release/20651

*2:1ヶ月だけ在籍していましたが、主にパフォーマンス改善に集中しており、機能実装の関わりはありませんでした

*3:もちろん、所得額以外の情報も用いる複合的な条件判定も存在します

*4:年末調整書類は7年間保存する必要がある https://www.nta.go.jp/taxes/shiraberu/taxanswer/gensen/2503.htm

*5:一部機能は先行してデプロイされるものの、正式なリリースの案内は10月前に行なわれる

*6:私への売り上げは入らない金額設定になっています