Things to think when changing a existing system

Hey people, I am a junior software engineer, so to all the experienced folks out there. If you are going to change logic of a existing system (produces quite a lot of data) and is consumed by some teams. what steps/precautions would you take ?

Did you find this post useful? Show some love!

I'm going to be super generic.

I assume the system you are working on has extensive tests. I suggest you start from integration / functional level tests: write failing tests regarding the new behavior and then make them not failing :D

Since the system is part of a larger ecosystem you should probably also talk to the teams and agree on data formats and interfaces.

Last but not least, figure out if the new system has to be compatible with the old one. What happens if the system receives in input data created with the old format?

What happens if the consumer of this system has not been upgraded and it expects data in the old format?

Thank you @rhymes , I know this is a trivial question but I needed these affirmations.

It's actually not trivial. You would be surprised how many times integrations don't take into account old systems or retro compatibility. The same goes with APIs (internal or external), there is no standard on how to decide when it's time to break compatibility. Communication is key ✌🏾

Definitely writing test first, if there are already tests for old logic, base on that and write test for new logic, move slowly and as small steps as possible.
In my humble opinion.

Classic DEV Post from Aug 28

The Journey to AWS Certification

I'm on a journey towards the AWS Solutions Architect - Associate exam. Here are the resources I'm using to get there.

Follow @helenanders26 to see more of their posts in your feed.
raja sudhan
Member since Oct 20, 2017
Trending on
Live coding streams recommendations?
#discuss #livecoding #backend #devops
What Open-source Load Balancer Have You Used Before or Still Using Now?
#opensource #help #discuss
Saving time with a preset Tmux setup
#tmux #productivity #commandline #linux
​Linus Torvalds takes a break from Linux
#linux #opensource #foss #discuss
Golang, it was love at first sight.
#webdev #go #productivity #learning
Why I Turned Down a Job Opportunity
#career #perspective
Qlik ❀ D3
#d3 #javascript #qlik #data
Do tech companies care about your look?
#discuss #healthydebate #career