• From my experience it can be difficult to do continuous delivery if there are real big changes to back ends.

    For Enterprise Data Applications I have found that the key to continuous delivery for me is getting the structure of the data in your backend correct from the start (Good Normalisation adherence usually covers it for me). If you know the domain well you should be able to add in extra tables / fields in the knowledge that you might need them later. Large changes in backend almost negate continuous delivery as not only do you change the backend structure but sometimes you need to migrate the data in the backend. If that backend is being continuously updated it can be impossible to prevent loss of data without a downtime when you say to people "do not add or edit information the system between this time period".

    I generally practice continuous delivery but the times I have had to do say to people the system is going to be down its because I had to make biggish changes to the backend and data had to be transferred and manipulated, downtime could not be avoided.