As I was reading Martin Fowler’s post on ServiceCustodian I was struck by something that, in his words, didn’t smell right. After re-reading the article several times, I finally put my finger on it. He appears to assume that a service is no different than Java .class file or a .jar . Nothing could be further from the truth.
A true service should reflect a reusable business function, not merely some technical/programatic detail. As such, it should have a business owner who defines and controls what changes are appropriate to that function at a business level. Having coders making changes willy-nilly could prove disastrous to the business (but quite satisfying to the coders). It is unlikely that the business service owner will be able to understand the nature of a change from a patch (or even what a ‘patch’ was for that matter). There is no substitute for appropriate documentation and change control procedures to avoid errant changes.
This seems to be an increasingly frequent miss for coders: focusing on the code and what is convenient for the coder rather than on what makes sense for the business that they are supposed to be supporting.