システムリプレイスがなんで難しくなっちゃうのかひろTechメモ技術ブログです。2024年4月15日システム開発のプロジェクトにはいろんな規模がありますよね。0->1での新規プロダクト開発だったり、既に動いてるシステムに機能追加を行うものだったり...今回はその中でも、「システム基盤のリプレイス」についての記事となります。何かしらの目的を持ってシステムのリプレイスをするとき、気をつけたほうが良いことを、自戒含めて記載します。プロダクトを「リプレースしながら」一部分だけリリースしていくの、結構難しい。開発側は本当は黙ってリプレースだけに集中したいが、リリース後の対応とかで作業量が膨大になりがち。2023年12月21日お前は誰?事業会社エンジニア/歴5年目/29歳10人弱の開発チームリーダーをやり始めて半年~1年な人です。「大規模なプロジェクトとかはまだ任せてもらえてないけど、ちょっとずつマネジメントの階段登りつつある人」です。何が難しいのかユーザから見た機能面はリプレイス前後で変わらない、(諸々の理由から)アーキテクチャのみを変えるリプレースには2~3年かかるその間にも新規顧客導入は進めないといけないそれゆえ新旧含めたシステムを顧客導入することもあるリプレイス作業と並行で、リプレイス前のシステムにも仕様追加が入り続けるといったビジネス状況を想定しつつ、具体的に何が難しいねん、というのを書いていきます。1計画したスケジュールに対して、開発スコープが発散しがち「リプレイス前のシステムにも仕様追加が入り続ける」影響で、開発スコープが発散しがちです。具体的にはリプレイス作業のスコープは決めたリプレイス作業開始!リプレイス前のシステムに新機能が追加され、顧客提供されたユーザから見たら新旧同じ機能提供しないといけないから、リプレイス後のシステムにも新機能入れるべき。仕様決める人「リプレイス作業のスコープ増やすけど良い?」みたいな感じです。スコープが増えること自体は悪くないのですが、「当初決めたスケジュールとは別のスケジュールで」追いつき対応を入れるのがセオリーかなぁと思います。【自戒】リプレイスだけに留まらない話ですが、ビジネスサイドから「これも追加で入れられない?」と言われた時に仕様追加をホイホイ受けちゃわないようにしたいですね。新旧の依存関係が密結合になった保守しづらいシステムになる気がします。結論出せてないのですが、具体的に発生しそうな課題は以下。新旧のシステムでコード管理リポジトリを分けるのか分けないのか分けるとしたら...CICD方式は同じにするのが良いか?「新旧で同じロジックを書いてしまって、ビジネスロジックが散らばる->一時的に保守性が下がる」事態を避けたい。したら良いか?自戒ここら辺、山根の勉強が足りず、しっかり言語化できていない部分です。誰かケーススタディとして教えて欲しい。そもそもアーキテクチャのセオリーというか、知識がない。CICDとかコード基盤レベルの話だと「小さく失敗する」がしづらいので、王道を知った上で判断できるようになりたい。デグレだと思われるのが悲しい!!リプレイスやる時って、主にユーザ目線よりは開発側目線(コストとか保守性とか)が理由になってくると思うのですが、そんなもんユーザは知らん、ってことの方が多いと思います。以下はお気持ち表明でしかないのですが、ユーザ目線で「リプレイスだかなんだか知らないけど、使いづらくなった気がするよ?」って言われるのを一番避けたいですね。まとめ「システムリプレイスが難しくなる理由」について解説してきました。エンジニア5年目の解像度だとまだまだ全然分析だったり振り返りが足りてないので、今回挙げたものが全てではないです。要因はいっぱいあります。一度リプレースを行った身としては、今回書いたようなアンチパターンを再度踏まないように日々精進していきたいところです。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。「リファクタリングをしたい」となったときに、リーダーとして「これってGoサイン出していいんか...??」と迷った時の思考についてメモります。Q&Aベースで思考を深めていく形をとります。【書評】コミュニケーション力改善したいので「エンジニアがビジネスリーダーを目指すための10の法則」を読んだこの度「エンジニアがビジネスリーダーをめざすための10の法則」という本を読みました。書評ちっちゃいチーム体制考える時「育成」も込みで考えよう最近、「ちっちゃいチーム編成を考える」経験をしました。この記事では、「エンジニアのチーム編成する時ってこういうことも考えないといけないのか〜」という学びについて記載します。雑記エンジニアの評価とは何か評価面談を終えて、改めて上司と「会社における評価って何だろうね」な会話をしました。当たり前のことだけど、気づきが多く肝に銘じておかないとなと思うので記事にします。経験5年目のWebエンジニアです。SIerからの転職経験1回あり。技術とリーダー経験の両取り目指して邁進中。ひろTechメモ技術ブログです。