株式会社リンクス / バックエンドエンジニア
パイプラインアーキテクチャでの利用者約3000万人のクレジットカードシステムの機能改修
## プロジェクト概要 クレジットカードのリプレイスにおいて、以前炎上で中断していたシステムを今回再構築するプロジェクトでした。 基本的に機能ごとに、Javaでビジネスロジックをcsvに吐き出し、ETLツールでcsvをインターフェースに変換することで、各機能の責務範囲を細分化する、パイプラインアーキテクチャでの開発でした。 ### 担当した役割 もともとJavaでの開発・テストを担っていましたが、炎上していたので、設計の見直しを行うことも多々ありました。 詳細は以下の通りです。 ・Javaでの1機能分のビジネスロジックの開発および機能改修(5000行ほど) ・DJunitを用いたテストコードの作成・実行 ・単体テストでの、コマンドプロンプトのログ解析を通じた障害対応 ・ETLツールを使用したテスト及びETLツールの改修 ・Tera Term(Shell Script)を用いた資産のリリース ### 使用技術や開発環境等 バックエンド:Java DB:Oracle OS:windows ### 取り組んだ課題 1. やる気のない他社の社員を、どうやって巻き込んで、期限内に仕事を終わらせるか 3ヶ月間という短い期間の参画でしたが、業務で評価され、炎上も相まって仕事をたくさん振られました。その中で自分以外の社員に、仕事を振り分けていくタスクが発生しました。 工数が厳しいなかで、あまりやる気のない他社の社員をどうやって巻き込むか、課題を突きつけられました。 取り組んだことは以下の2つです。 ①あやふやだった責務範囲を明確にする。 →これによりお互いやることが明確になりました。と同時に、言い逃れのできない状況を作り出すことで、プレッシャーをかけることができました。 ②放置せずに、厳しかったら早めにアラートをあげてもらう。 →元々無理な工数でやっていたので、アラートをあげてもらい、本当に難しかったら早めに上長に報告することにしました。 それにより、上長から手が空いた別の社員を増員してもらいました。 結果として、ぎりぎり仕事を終わらせることができました。 2.他社の社員のその場しのぎの対応を、根回しをしたうえで上長を巻き込んで解決 クレジットカードの紛失に関する機能の単体テストを任された時、あまりにも設計と実装を乖離していました。 実装担当者は、40代で私よりも経験があり、かつPJでの立場が上でした。 私がなぜこのような実装をしたかと伺うと、時間がなかったからとのご回答をいただきました。 ただ、このままでは、明らかにこの後の工程で皺寄せが来ることは目に見えていたので、 要件定義・設計担当者に相談しました。その方も、このままではまずいと私に同意してくださいました。 この根回しを挟んで、上長に、〇〇さんもこう言っています、と相談しにいきました。 結果として、上長は私の相談に乗ってくださって、結局実装をもう一度設計に合わせることで、合意を取ることができました。 3. メソッドの共通化によるリファクタリング 一度中断されていたPJを、もう一度要件定義から見直して再開したため、 開発も、すでに記述されたソースコードをもう一度イチから見直して、開発をおこなっておりました。 私の担当した機能は、カードの新規発行でしたが、機能のなかに、クレジットカードの信用情報取得が含まれてました。 その際、信用情報の取得は一回で完結するものではなく、本人確認情報や家族付帯情報など、さまざま情報を参照する複雑な作りになっていました。 ただ、複数回処理が行われるうち、メソッドを共通化できる部分があったため、共通化して全体の見通しをしやすくしました。 結果としてソースコードを500行ほど減らすことができました。 4. マニュアル作成による作業効率化 炎上案件で、かつ人の入れ替わりの激しいPJだったため、新しく入ってくる人にどう対応するかが非常に大きな課題になっていました。 私が参画するまでは、周りの方は人に聞くことで対応していたようですが、私は、マニュアルを作成しました。その結果、一から入ってきた方にも、マニュアルをまず読んでもらうことで、お互いの時間を短縮し作業効率が向上しました。