Building software solutions is a complex task, the management of this software becomes an even harder issue. Comparisons to town planning are often made and provide a back drop to explain the differences between an enterprise and solution architect. If all an application needed as services were gas, electricity and water then management of these things would be simple and become commoditised as it has in the real world.
In software ‘utilities’ are varied; you may want Customer Information, a Service to Create an Order or a Service to ensure the user is authenticated. Then add on this I can deliver this service via a queue, tcp/ip or file. Being able to plan all this is hard enough but having a ‘permit process’ that ensures compliance is even harder.
In most projects where there is an integration point, there is a need to create, modify or transform an interface. Who owns this interface is it the project that has asked for it or is it the system that originates the information. If I ask my electricity company to change the voltage to say 12 volt to they manage the transformer or does the residence?
Enterprise Architects are a valuable part of any organisation but until ‘utilities’ rationalise down to a more manageable subset their work is going to be a lot more chaotic than that of a town planner. As the plumbing is abstracted away with things this WCF and tools become available for the enterprise plan to be integrated into the solution design process this job will become simpler.