My belief is that how to divide systems into small pieces and have them communicate technically, be reused and composed, is masking the real problem.<p>The real problem is representing and implementing a complex business problem or system <i>within</i> the service or application.<p>Technical emphasis instead of one on the business solution - of modeling the problem domain into code - is a bad smell?