Avatar of D_wathi
D_wathi
Flag for India asked on

Reversibility in software development

Dear Experts

In software development what does reversibility means, if we have to develop application what are the measures on reversibility,  please help us to understand this and best practices.

Thanks in advance
SoftwareProgrammingAgileWeb Development Software

Avatar of undefined
Last Comment
dpearson

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
dpearson

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
D_wathi

ASKER
Thanks for the details, really helpful, can we a tool like github or bitbucket and push the changes to production post UAT and still any issues found in the production after the new release we can revert if we use github or bitbucket please suggest.
SOLUTION
Arana (G.P.)

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
dpearson

Yes if you're looking to be able to reverse back to an earlier version in your release pipeline - doing those releases through a source control system (like github) is an excellent first step.

However, that's usually not sufficient to get reversibility, if you have some form of state - a database or use of the file system to store data.

For those, you will also need some formal process to ensure you know how to either revert them (which may be impossible for a database, as reverting would generally mean deleting data that you had collected) or ensuring that your software is backwards compatible with database changes.  For that, you just need to test it explicitly.  i.e. Run a test where you update the database schema, run the new software against it and then revert the software back one revision and see that it still works with the updated database schema.

If you include tests like those together with a source control based release pipeline, you should be fine.

Doug
D_wathi

ASKER
We have been asked by customer detailed possible use cases of reversible can you please list few,
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes
Arana (G.P.)

so you are offering your customer reversibility without Knowing what it was, how to implement,  or where to use?
D_wathi

ASKER
I know to some extent but would be helpful if i get more inputs,
SOLUTION
dpearson

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.