Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

We currently have 3 similar, but slightly different applications that use the same data. We load the (same) data into each application that uses it. The applications are similar and use the same technology (Ruby on Rails) but were developed by different programmers.

In consolidating this data, our management seem the benefit to using the same tools (gems, modules, etc) but does not seem aware of many other reasons why we should consolidate things centrally.

I've worked in several different organizations including one position in Data Warehousing so the centralization of data seems like a no-brainer to me.

The life-cycle of the data is the following year for the current paying customer, but then also longer term as we get the data from the various organizations that have it, over the years, and we'll want to compare one org and one year to others.

However I want to put together a list of all the reasons to centralize (or not) this set of data. So far I have:

  • reduce duplication of effort. When we implement a function we currently may have to do it in two places, increasing both the effort to implement the function in two places and also the cost of writing it twice.

  • Quality of data. Creating two data set that have similar but different contents will lead to discrepencies between the two that will grow over time, reducing the value of the data.

I am looking for a list of other reasons, particularly those that relate to the overall cost.

share|improve this question
    
You say "similar" data. Do you mean "similar" or "the same"? –  lunchmeat317 Feb 26 '13 at 21:28
1  
Actually, the best strategy depends very much on the "life cycle" of your data. Who creates is, how often is it changed, who changes it, is the data somehow "optimized" to the way it is used in any of the 3 applications? In the current form, however, I think your question is far too broad to give you a useful answer. –  Doc Brown Feb 26 '13 at 22:28
    
Updates with info on same/similar (it's the same) and also info on life-cycle. –  Michael Durrant Feb 26 '13 at 22:46
    
Do you have any insight into how/why the data become duplicated in the first place? By accident or design? –  mike30 Feb 27 '13 at 16:17
    
Initially it was thought that not much data would be shared. After some development and usage it became more apparent that the uch of the data woud be shared but unfortunatelu at that point there wrer two apps - one maintained inernaly and the other externaly by consultants and the two groups work separately. Clearly they need to work closer but that is not the main question right now. –  Michael Durrant Feb 27 '13 at 18:45
show 1 more comment

1 Answer

up vote 3 down vote accepted

Ok, you said you are looking for pros and cons for centralizing the data, and gave yourself some pros. Here are some things when not to centralize may be the better option:

  • the data in place does change so seldom that the it simply does not pay to change your existing applications. Say, changing your applications needs 1 month development effort altogether for those three applications. But the data just changes once a year, is provided from outside, and the effort to provide it or enter it in all those 3 applications is one day. So your "return-of-invest" point is ~30 years in the future.

  • you can create an easy way to maintain the data just in one place and transform it automatically from that place to the place where the 3 applications access that data

  • the three applications must be kept strictly decoupled, so each of them can run without the other, without using data which belongs to one of the other (or belongs to a fourth one). This may have technical reasons (for example, fail safety) or legal reasons (for example, licensing issues).

  • the three applications need the data in different versions / in a different state of up-to-dateness

If none of those things applies, centralizing the data is probably the better option, especially when the data is changed often, can be changed directly through your 3 applications, and the 3 applications need the data in the same state.

share|improve this answer
    
+1 for the 'cons' which the OP could use as additional arguments 'pro' ;-) –  Jan Doggen Mar 1 '13 at 10:34
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.