By definition, SOA is about bringing people together to build systems that serve across the enterprise. That results in another issue: the effect of personality differences on the group dynamic. This is only made worse by all those meetings with many representatives, since the reason they're all invited to participate is their differing needs. It is common for someone in the group (who generally is very persuasive or respected) to gain undue influence over the design decisions that come out of such sessions. To defuse this effect, I like to mix large and small group sessions, as well as one-on-one follow-ups (or pre-meetings, but be careful there). That helps sift through the plethora of information and divergent views that emerge throughout the process. This group dynamic effect is even more pronounced in a multinational enterprise.
The final issue is one that is common even in traditional software analysis: the communication gap. A question's answer can be very different depending upon how the question is asked. This can be the result of both basic communication skills and the context in which the question is asked (to me, context is part of communication, so maybe I'm restating here). Often when discussing the details of an existing process asking an abstract question generates an answer that's too specific. That is, the answer may be too implementation-specific, and does not help the enterprise architect to understand the scope of the problem as well as the specific variations of this use case.
For instance, the discussion might involve eliciting from the SME, "We need to receive orders in the formats A, B and C from partners X, Y and Z." It is important to not get too lost in the specifics of the moment. This can lead you off the important trail of an abstract understanding, disconnected from implementation details. The subtle and damaging problem is that it may be difficult to get back to abstracts after being so specific. Yet, you still need the specifics. Oddly enough, the difficulty can be either with the SME or the business analyst; or it can apply to the group as a whole. Sometimes, you can't help this. Just do your best to take notes; but be sure to be aware that the capability or service, is really receiving orders. There may be customer-specific implementation differences, but that is farther down the chain in the analysis process.
One trick I used a lot was to ask the SME the same question in three different ways, usually not in the same meeting. Often this exchange may follow a pattern like this:
"So what are the possible workflows (state changes) than an order can follow?"
"Are there any times an order can follow a path other than... (list from above)?"
"What do you do if there is an exception and an order needs to make an unspecified state change?"
Using parts of information from the answer, restated in another way, really can cause SMEs to think beyond their immediate or current implementation. They'll reveal more of the true requirement rather than the current capability. This is even more important when discussing business capabilities needed by a SOA.
To make this all run smoothly, establish a vision early on. Communicate it effectively with the SMEs and other members taking part in the SOA analysis. At first, your vision will just be what a SOA can do for the enterprise and how the process will begin. Over time, the vision evolves from the generic initial statements to a specific vision for the particular enterprise under analysis. This vision acts as a tool that allows you to convey the introductory and abstract concepts of SOA to the SMEs (who increasingly are aware of SOA) in a clear and non-technical manner. You may start communicating this vision, perhaps with senior IT management supporting you, but the enterprise will come to own it quickly and drive its evolution. This is where the pieces come together.
Dan Rosanova is principal consultant at Nova Enterprise Systems, a consultancy that specializes in Enterprise Applications and Microsoft BizTalk Server solutions. He has ten years experience delivering enterprise solutions in financial, insurance, telecommunications, and medical industries on Windows, Solaris and Linux platforms.
Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.