法改正対応って何してるの？

# はじめに

こちらの記事に触発されて書いてみました。

https://zenn.dev/leaner_tech/articles/20211104-dencho-inside-story

私の所属している税チームで取り扱った年末調整の案件にもいくつか触れながら、
法改正対応の流れや難しさなどについてお伝えしようと思います。
業務システムにおける法改正対応の何たるかについて、少しでも知っていただければ。

## 自己紹介
年末調整など、人事システムの所得税周りの機能の開発をしています。

大学の出身学科はSCMやら数理モデルやら金融やらソフトウェア工学やら何でもやるところ。
一応非情報系ですが、研究室でコードを書いた経験は多少あるくらいです。

理系のくせして3つ掛け持ちとかも当たり前のハードアルバイターでした。
なので確定申告は毎年していて、学生時代から国税庁のWebサイトは友達。
果ては、公共交通機関の運送約款や各種サービスの利用規約など、
気になったことがあったらすぐ規則を読み込む、ある意味の規則・制度オタク。
法定業務系の開発に配属されたのはある意味必然かもしれません。

# どんな法改正対応があるの？
当社の製品で扱っている人事業務の中でも、法律が関わるものは下記のように数多くあります。

- 社会保険 (年金、健康保険、共済など)
- 税 (源泉徴収、年末調整など)
- 勤怠管理 (働き方改革関連法でおなじみ)
- 公務員等の給与 (給与規定自体が法令)

# 法改正対応の流れ

当社では法解釈・制度理解から実装まで、**開発が主体となって**法改正対応を行っています。
もちろん、必要に応じて社内の専門家の力を借りることはありますが、
あくまでエンジニアが主体となり、専門家を巻き込んでいくようなスタイルです。

このスタイルは当社独特で(あると勝手に思っていて)、それが面白いところだと感じています。
調べると、業務知識はエンジニアではなくドメインエキスパートが中心に担う会社も多そう。
こういう体制だと、法改正対応もおそらくドメインエキスパート主体なのかな？

https://tech.smarthr.jp/entry/2021/03/19/120128

そんな体制ゆえ、社内からの**法制度関連の問い合わせに開発が答える**こともしばしばです。
また、先輩の有難いお言葉として、こんなことを社内で聞いたことがあります。

> 「法改正対応をする開発者は、社内一その改正について詳しくないといけない」

仮に有識者に入ってもらったとて、レビューで法改正内容の説明をするところも開発者の責務。
それくらい、「開発が業務を知る」ことを大事にしているということですね。

ちなみに、社内での年末調整の勉強会では、年末調整の開発者(年末調整に詳しいはず)なのに、
面積で**住宅ローン控除の対象外となる家を買った**先輩が延々ネタにされています。

実装・評価〜リリースのフェーズは普通の開発案件とあまり変わらないと思います。
ここでは、その前段階の法改正対応に独特なところについてご紹介します。

## 法改正のキャッチ

案件に取り掛かることとなるトリガーが普通の案件とは違って、まず当然「法改正があること」。

法改正キャッチ担当や開発の各チームリーダーを中心に、ミーティングを定期的に実施しています。
また、チーム独自でも適宜法改正の確認をしています。

税関連で見るのは財務省のWebサイト、税制調査会など様々。
最近は住宅ローン控除の逆ザヤ是正がニュースにも出てますね。どうなるのでしょう。

https://www.mof.go.jp/tax_policy/tax_reform/outline/index.html

法改正が掲載されるサイトをクロールし、差分を検出するスクリプトを組んでいたりもします。

## 法解釈〜設計

「法律というルールで決まってるんだからその通り作るだけで簡単では？」と思いますよね。
ところがどっこい全然そんなことはありません。
当社の場合、大きく分けて以下で述べる2つの障壁があると考えます。

### 当社製品ならではの障壁

当社製品の売りらしい**「網羅性の高さ」なるものが難しさを押し上げています**。
それぞれの機能がどのように業務に寄与していて、それが法改正によりどう変わるか。
その影響を想定し、機能対応の要否・スコープを慎重に判断する必要があります。

今は「業務をシステムに合わせていく」という考えが浸透しつつあり、
サービス側の考えるベストプラクティス一本でいくのも普通かと思います。
そのほうが保守性も維持しやすいと思うし、そこは当社の弱みなのかも。

現行の機能仕様の把握も、こんなこともあるので気を抜けません。

- 法律を鵜呑みにするとたまに仕様バグが眠っている
- 今まで法定要件に関係なかった箇所も、改正後の仕様は要検討になる

法定要件がただでさえ難解なところに、複雑な設定が効いてきたりする機能だとまあ悲惨。
法改正がなくても、問い合わせ回答のためだけに法解釈と仕様理解で2日使ったこともありました。

### 法改正対応ならではの障壁

当初出ている情報をきちんと読み込んでも**曖昧なところが残るのは当たり前**。
改正条文の原文を読んだり、果ては所轄省庁に質問までしないと解決しないことが大半です。

また、例えば法改正に伴い書類の様式に変更が入るとなっても、当然法律そのものより遅れて出ます。
仕方ないことですが、事前に問い合わせても「直近にならないと様式はわからない」で済まされがち。
などなど、**法改正後の業務がどうなるかは、想像で進めざるを得ない**ところも多々あります。

# 法改正対応のなにがつらいのか

繰り返しになるところもありますが、実際の案件の話も織り交ぜて大変なところを挙げていきます。

## 納期！！！

何よりもとにかくこれ。

リリースが間に合わないと、お客様の業務が法定要件を満たさなくなるのでアウト。
人がやめて工数が逼迫しようが、ベンダーの経営が傾こうが、法律の施行は待ってはくれません。

これは当社固有の事情ですが、オンプレ製品の保守もあってリリースサイクルが微妙。
そのため、かなり早くにその年の年末調整の機能を出し切る必要があり、まあキツいです。

和田卓人氏の「質とスピード」で、アジャイルサムライの荒ぶる四天王の話が出てきますね。
(先日社内で講演してくださいました。ありがとうございました。)
スコープを削るか納期を遅らせるのが正解らしいですが、いずれも法改正ゆえの限界があります。
~~結果、第5の選択肢「担当者が頑張って『なんとかする』」が浮上しがちなのです。~~

https://speakerdeck.com/twada/quality-and-speed-2020-autumn-edition?slide=6

## 仕様がなかなかわからない

2020年の年末調整からの、住宅借入金等特別控除(住宅ローン控除)の法改正対応の話です。
改正内容のメインは概ねこんな感じ。

- 消費増税に関連して控除の制度が追加された (特別特定取得)
- 証明書・申告書の様式変更
  - 書くことが減った (申告書)
  - 書かれていることが法律上明確になった (証明書)

https://warp.da.ndl.go.jp/info:ndljp/pid/11344177/www.mof.go.jp/tax_policy/tax_reform/outline/fy2019/31taikou_01.htm#01_01

このうち後者がまあ曲者でした。[様式](https://www.nta.go.jp/publication/pamph/gensen/nencho2020/pdf/109.pdf)がわかるのは例年9月頃。
様式を見ると、確かに法改正で要しないこととされた項目は消えているけど、
代わりに**法律からは読み取れなかった新規の項目がやたら増えている**。え？？？

一からシステム開発するなら、最低限の要件で作れば無視できる項目かもしれません。
しかし、既存機能の改修という意味では対応せざるを得ません。
(法には触れないが、**現行と同程度の業務補助が法改正後は提供できなくなってしまう**)

つらいポイントまとめ。

- サイレントに書類の項目が増えると対応が追いつかない
- 記載事項の変更が法律から読み取れても、様式そのものは想像するしかない

結局、完全な対応は今年(2021年)の年末調整までとするほかありませんでした。
他社でも去年間に合わせたところは多くないのでは。

https://smarthr.jp/news/21295

他にも、社会保険の最近の法改正で、ドギツい仕様変更を直前に決断した話とかもあったような。
確かe-Govの仕様とかに関わる話と記憶しています。
直前の仕様変更、できるできないの話ではなくて単純に心臓に悪いんですよね。

## 蓋を開けてみれば仕様が違う？

これは年末調整電子化にまつわる話。
当社製品では、保険料の[電子的控除証明書](https://www.nta.go.jp/taxes/shiraberu/shinkoku/kakutei/koujyo.htm)(XMLファイル)を利用した年末調整の申告に対応しました。
要するに、電子ファイルだから入力や確認がなくて従業員も人事も簡単だよ！というもの。
業務上必須ではないので、普通の法改正とは性質が違いプラスアルファの機能なところはありますが…

仕様書も読み込み、不明点は国税庁に確認し、なんとかリリース。
そして実際に利用され始めたらうまくできませんの問い合わせが来るわ来るわ。
確認すると、**国税庁に確認した内容と、保険会社の出してくる証明書の内容に齟齬があった**のです。

よくよく考えたら、仕様書だけで実装できないのはどうなんだというところではあるのですが。
XMLを人力よろしく「いい感じ」に見分ける技術が求められてます。なんのためのXML…

# 法定業務系のシステム開発の面白さ

法改正対応のつらいことばかり書いてますが、法定ならではの楽しさもちゃんとあります。
さすがにアレなので、ちゃんと宣伝もしておくこととします。

## 多くのお客様に使ってもらえる

パッケージソフトの性質上、新機能を出したところで使ってもらえるかどうかはわかりません。
というか、普通の新機能は最初はほとんど使われないことも多々あります。
そんな中でも**法定は非常に多くのお客様に利用していただけます**。ありがたや。
その分、法改正でやらかすとみんな困るので相当怒られますし、リカバリでしんどい思いもします。

裏を返せば、良いことも悪いことも**フィードバックをもらいやすい環境にある**ということです。
非常にありがたいことですが、やりたいことがなかなかできず歯痒い思いもたくさんします。
いつも案件の対応予定で「法改正があって…」とか先延ばしにしてすみません。でも本当なんです。

フィードバックが多くあった内容で、そもそもの法制度で対応したほうがいいこともあります。
それら意見を引っ提げて「これがユーザーの声です！」って行政へ届けることで、
**制度自体をより良く変える**というのも場合によっては体験することができます。
自社のシステムを使ってもらうことでお客様の業務が楽になることもいいことですが、
**自社のお客様以外にもメリットを届けられるってすごいこと**じゃないですか？

## 法律に興味を持つ自体にメリットがある

言い方は悪いですが、法律に限らず、世の中の仕組みは知っていた方が得です。
技術を学ぶことも同じですが、**何かを知ることは自分の選択肢を増やすこと**です。

例えば税で言えば、シンプルに確定申告などで金銭的な得があるかもしれません。

また、私は個人的興味で勉強しているのですが、労働法も知っておくべき。
企業勤めの労働者にとって、「何かの時に自分を守る武器」になるものだと思っているからです。

フレックスタイム等で働くエンジニアも多いと思いますが、制度をきちんと理解してますか？
制度のことを知らないがために、貰えるべきお金を貰えずに働いていませんか？
人事制度変わった！と眺めているだけのあなた、実はとんでもない不利益変更が紛れてないですか？
そういうことがあっても、知らないと主張できないことってありますよね。

### 労働法について余談

前述のような労働問題から、制度に詳しくないし興味もない従業員を守ってくれる、
セーフティネットとしての役割も持つのが労働組合ではないかと個人的には思っています。
組織率の低さが課題となる昨今、私が興味深く見ているのが三井物産労働組合さんです。
これからの労使関係のあり方みたいな形で発信できるの、いいなと思います。

https://www.works-i.com/project/10career/mutual/detail016.html

https://www.works-i.com/project/10career/mutual/detail017.html

# おわりに

法改正対応の何たるかを実際のエピソードも交えて述べました。
遅れられない納期の中で奮闘するエキサイティングな感じ、伝わりましたでしょうか。

大変な時は相当大変ですし、街を歩いていて税務署があると胸が苦しくなることも正直あります。
でも、なんだかんだで面白いので、丸2年以上この領域に携わり続けています。

少しでも法律に興味を持っていただけたなら、学び始めると面白いかもしれません。
そして、あわよくば法定領域に携わるエンジニアが増えることを願っています。