見出し画像

大幅に品質が向上した年末調整機能の開発裏話を公開します!

こんにちは、株式会社マネーフォワードにてマネーフォワード クラウド給与(以下『クラウド給与』)のプロダクトマネージャーを務める有働と申します。

『クラウド給与』における2020年分の年末調整機能は、これまでと違い非常にチャレンジングな環境で開発しました。その中で直面した困難や、品質向上のために行った工夫などについて紹介したいと思います。

年末調整2020年版、開発の裏側👀

まずは担当者の皆様、2020年の年末調整対応お疲れ様でした。マネーフォワードも1月末をもって毎年のビッグイベントである年末調整の開発、サポートが終了しました。

2020年度分の年末調整の開発は、例年とは異なりかなり困難な状況でした。例年はシニアエンジニアが少人数で開発していましたが、今年度はシニアエンジニアが不在、かつマネーフォワードベトナムと共同でプロジェクトを進めていました。
年末調整は業務の性質上、システムが複雑かつ高度な業務知識が求められる領域です。また、税額計算を行うシステムなので絶対に不具合を出すことはできません

限られた環境の中で品質は担保しなければならない、という胃が痛くなるような開発プロジェクトでしたが、様々な工夫のおかげでスケジュール通りにリリース、しかも各種品質管理スコアが大幅に改善できました。その背景について、詳しくご紹介します。

2020年度分でリリースした年末調整の機能についてはこちらのnoteをご覧ください。

困難①:シニアなエンジニア不在

■なぜ品質担保が困難なのか
今年度は、『クラウド給与』の年末調整対応を本格的に経験したエンジニアが不在でした。一般的に品質担保のためにはレビューとテストを行いますが、レビューが特に品質に直結します。しかしシニアエンジニアが不在ではレビューを効果的にできないので、やり方を変えていく必要がありました。


■どんな工夫をしたか
そこで、レビューに代えて徹底的にテストを行うことで品質担保を補うという形をとりました。私たちのチームにはQAはいないのですが、幸いなことに大規模開発のテストの全体設計の経験があるメンバーや、年末調整の業務に詳しくテストケース作成経験があるメンバーがいました。

それらのメンバーを中心に、特に年末調整の金額に影響するような絶対に不具合を出せない部分について、構造化された網羅的なテストを作成し対応しました。

これにより、シニアエンジニアが揃っていない状況でも品質を担保することができました。

困難②:言語も違い距離も離れているベトナムチームとの共同開発

■なぜ品質担保が困難なのか
年末調整は日本人でも理解が難しい制度のため、当然ベトナムチームのメンバーが完全に制度を理解するのは非常に難しいことです。優秀な方々なので、例えば他のプロダクト開発の場合は制度について解説するなどの機会を設けることもありますが、今回は全て解説し理解してもらう余裕がありませんでした。

制度について理解しないと「誰が、なぜ、どのような文脈で使う機能なのか」を理解しないまま、言われたとおりの仕様に作る、という状態になってしまいます。そうなると、ある変更に伴って考慮する他の箇所が把握できなくなり、仕様の不整合が生まれる可能性が高まり、また考慮漏れによるテスト漏れも起こりやすくなってしまいます。

■どんな工夫をしたか
「仕様を明確に伝える」というのが難しい状況のため発想を転換し、ベトナムチームに仕様をつくってもらい、それをレビューしながら一緒に作り上げていく方式にしました。これにより考慮すべきポイントをベトナムチームの方で把握してもらえるため、理解度を高めながら開発を進めるができました。

また、テスト自体をベトナムチームに行ってもらいながら、テスト内容のレビューを日本チームで行っていました。これによって、テストの品質担保を行うことができました。

社労士監修による品質担保、ユーザー向けコンテンツもカバー

仕様通りに動く、正しく計算する、といった部分は社内のメンバーで品質担保できますが、「これが法令に則って動いているのか」を確認するのは難しいため、ここの部分は協力いただいている社会保険労務士の方にフィードバックいただくことで完成度を高めることができました。

また、ユーザーが正しく利用するためには、年末調整機能に関するセミナーやガイド、カスタマーサポートなど、機能以外のコンテンツの面でも高水準であることが望ましいです。

そのため、他部署のメンバーにも余裕を持って対応してもらえるよう、8月上旬というかなり早い段階で社内リリースを行い、しっかりと事前準備を進めてきました。その結果、関係各所より「今年の年末調整は準備がスムーズに進んだ」という声をいただけました。早い段階で多くの関係者に触れてもらえることで、UXの改善にもつなげられたと思います。

 工夫の結果、様々な効果がありました!

1)ユーザー様からのお問い合わせ数の減少
年末調整に関するカスタマーサポートへのお問い合わせ件数が、例年よりも減少しました(前年比約10%減!)。機能を利用しているユーザー数(企業数)は前年の1.5倍に増加したにも関わらず、問い合わせ数が減少したということは、スムーズに年末調整を終わらせることができたユーザーが増えたということになります。大幅な法令改正があったにも関わらずスムーズにご利用いただけたのは本当に嬉しかったです。

2)カスタマーサポートチームから開発チームへの問い合わせ数の減少
通常のお問い合わせ内容はほとんどカスタマーサポート側で解決することができますが、一部カスタマーサポートが解決できない内容については、開発チームにエスカレーションする運用になっています。

2020年は、エスカレーションの件数も大幅に減少しました(前年比約30%減!)。早い段階で社内リリースをしたことで、カスタマーサポート側で事前準備を進められサポート品質の向上につながったと考えています。

3)リリース後に発見される不具合の減少
年末調整の手続きや金額に関わる部分は当たり前なのですが、誤字脱字やレイアウト崩れのような細かな不具合も大幅に減少しました(前年比60%減!)。質の良いテストや仕様の認識合わせ、専門家の方のご協力によって実現できたと考えています。

さいごに

年末調整の開発には何度もかかわったことがありますが、これほど多くの困難を抱えながら進めたのは初めてでした。部署も超えて国境も超えてたくさんの方々にご協力いただきながら総力戦で挑み、最終的にはスケジュール通りでリリースしながら品質も大幅に改善させることができました。

大量のレビューをこなしながら自分の開発も進めてくれたエンジニアの方、猛スピードで開発してくれるベトナムチーム、フィードバックをくれた方々など、挙げればキリがありませんが、かかわってくださった方々全員のおかげだと思っています。ありがとうございました。

もちろん、うまくいったことばかりではありません。レビューやテストの作成では特定の人に頼ってしまい、大きな負荷がかかるなど、反省点も多くあります。今回の反省を活かして今後も高品質なサービスを作っていきたいと思っています。

この記事が気に入ったらサポートをしてみませんか?