Why do you start with data?



When building an agile architecture, such as SOA, the focus should be on the data first. Or so says me. However, other believe that such architecture should be done from the services down to the data. What do you think is the best approach? Data up to services up to processes, or processes to services to data?

Why do you start with data?

I have a related question - is there room for both depending on the purpose of the service? As an example, if the service is primarily transactionally (process) based, might you start with the end-to-end process and then understand what info each particiapnt in the process requires (ex, placing an order). Alternately, if the service required is primailry information based, might you start with the information and then define the process (ex, harmoinization of changes to Customer profile information).

I would not disagree if

I would not disagree if somebody wanted to start with the process first, it depends on the requirements of the problem domain. However, starting with the data is typically much easier to do from an architectural perspective.

How easy is easy?

So, how is it easier? I think I know the answer, but I'm always interested in other opinions.

I would not disagree if...

Agreed, it does depend on the business problem, but do you agree with the suggestion that some business problems are primarily process-oriented while others may be primarily data oriented? I am trying to see if categorizing the problem in one of those two ways makes the solution for each easier (ie, follows a pattern) or if maybe I am not thinking about the problems correctly.