Interesting lunch with Dave Clarke, a pre-sales manager at HP yesterday. We were talking about designing systems for manageability - I think that Dave's POV was that you used a subset of the team that was good at such things to build a (J2EE, say) framework using ITIL good practice as the basis for a "software factory".
This turns out business applications rapidly, which satisfy the "non functional" requirements for management etc automatically - and faster than separate ad-hoc developments could. So, you can produce quick fixes for short-term opportunities without compromising manageability. Of course, there must be a feedback loop, so developers can feedback new "non-functional" requirements to the framework team.
Dave sees ITIL Software Release Management as the link between Development and Operations (it's all about using HP Openview Radia for automatic, policy-driven application deployment and maintainance).
And HP publishes Design Patterns for building manageable applications using JMX (Java Management Extensions) - such as SeparateMBean Pattern, which implements separation of management objects from business objects.
Although I'm not sure that Anti-patterns (which document management failure "opportunities" - and routes back to where you want to be, when you find yourself in them) wouldn't be more useful. IME, most systems are unmanageable most of the time and you only get the resources to address this after Something Has Gone Horribly Wrong... The trick is making sure management buy-in continues after memory of the disaster fades.
Sponsored: Customer Identity and Access Management