Sunday, April 10, 2005

Reason #2, Why Java is written in Data Processing style?

Ideas don't thrive unless they fulfill a need. That's simple meme propagation theory.

So even Object Oriented enthusiasts like myself, have to admit that something in the use of Java Data-Processing designs works well, for someone, somewhere.

Objects have been shown to be easier to test, and adapt, and extend. What is it about separating Data and Processing that seems to trump, those good things???

Just because Objects are the best thing for Application development, AND just because the agility Object provide is the best thing for businesses, does not mean that Objects are the best thing for organizational structures. Departments are often separated by concerns not strictly focused on the delivery of Value.

Separating the Database and Application programming into different management hierarchies puts enormous pressure on the organization to produce Data Processing architectures. This is an instance of Conway's Law which states that the shape of the architecture will resemble the shape of the organization.

Is is any wonder that the best flexible, agile software is produced by smaller companies that have not grown so big as to split their people into departments tuned for something other than pure, full-out, software delivery?

Reason #2: the organizational structure encourages the separation of Data and Processing, which results in Data Processing designs.