Professional Documents
Culture Documents
Business Technology
• Transitioning an organization into a model that has solid, well- • Developers that implement services to leverage legacy system code
defined, decision-making processes (governance) is harder than need deep knowledge of both sides to ensure working, flexible
simply writing a few services. code.
• A clear strategy for implementation of a Service-Oriented • When applying iterative development, ensure short phases (cycles
Architecture (SOA) is needed; consider an iterative development of analysis, design, implementation, and test) and closed, workable
approach. packages.
• Communication about implementation of the SOA strategy and its • Keep away from implementing a framework for orchestrating
benefits is a major key to success. services yourself. Instead, consider using Business Process Execution
Language (BPEL).
16 • Business Integration Journal • September/October 2006 Business Integration Journal • September/October 2006 • 16
worked on the last SOA-like project this case, the people from outside will abstraction, implementing only a sub-
were moved into different parts of the lead the project to ensure success. set of the necessary methods, resulting
organization, and all the external staff • Time is no pressure, and manage- in the need for multiple services to
members were gone. ment is willing to make a long-term completely implement the abstraction.
But this was “just” a proof of con- investment: When time isn’t a con- The result is that clients have to utilize
cept, and luckily there were still several straint, it’s a great chance to start with several services to implement a signifi-
weeks to go before the actual kickoff. two or three small projects, almost cant business process, and need to
Brandon decided that once the team prototypes, and let the whole team implement the sequencing and work-
was formed, he would send them for learn from scratch. Just a few experts flow.”
training on the latest and greatest tech- from outside are needed for guiding
nologies (assumption 4). This was a and mentoring. Greg’s whole design consisted of
good idea, but it didn’t work out that abstract definitions of Web Services
way: Design and implementation with plans for their reuse in the next
“We just lack skilled resources,” (See assumptions 2, 7, and 8) phase of the project. But after another
Brandon said. “And management isn’t After some analysis, the first ideas week of painful code generation and
willing to do anything to make the situ- on how the new system could look, regeneration, some of the developers
ation better. Today, when I was assigned from a technical perspective, were con- discussed the impact of Greg’s design
to this project, I brought up this issue sidered. Some possible services had during a coffee session late at night:
and the only answer I got was, been identified, and now everything “I fear all the overhead of SOAP and
‘Education, for an SOA project? Sorry, came down to the newly appointed the abstraction will immediately break
but the guys already have plenty of architect. Greg, a seasoned developer, the system,” one developer said.
development experience.’ ” was thought to be the perfect match, as “I had to change my code three times
What Brandon described in his com- he had considerable experience design- last week, thanks to this inferior design,”
ment is a deep fear—not just about the ing software systems. The only problem: another developer said. “Everyone start-
lack of skilled resources he needed to He had no experience designing sys- ed changing the interfaces because they
succeed in a critical project, but also tems with new technologies. Luckily for lacked the information needed to get
about his own lack of expertise in SOA. the team, he was interested in learning the operations done.”
Despite his seniority, the only method- about them and had read one book after From these quotes, two points can
ology he’d ever worked with was the another on new emerging technologies. be inferred:
waterfall model (assumption 5). (For He was convinced he could design a
details on the model, see The Software super-flexible and more-or-less easily • A clear strategy for implementation is
Development Edge: Essays on Managing maintainable architecture. After looking needed (see assumption 1). In an
Successful Projects, by Joe Marasco,) into the many documents that had been older-style waterfall project, the design
Finally, Brandon decided on the written during analysis, he started was created and frozen. In compari-
approach. “Just move ahead,” he said. designing services … and plenty of son, an SOA project, or an agile proj-
“It’s just another project; let’s have the them. All were Web Services. ect, is defined by its interfaces, which
team learn on the fly.” He took a partly object-oriented could change during the iterative pro-
Why did Brandon proceed without approach and designed two kinds of cess. So clear communication of roles
ever thinking of getting the right project services. One, referred to in the anti- and tasks in the development group is
strategy together for his team? In today’s pattern world as a Godfather Service, key. A change in an interface could
fast-moving project environment, which offered an overabundance of or mixed have major consequences (not just in
is almost entirely margin-driven, com- functionality. (Design patterns repre- terms of a broken build, but also in the
panies tend to forget about long-term sent accepted solutions or best practices frustration level of developers).
investments, especially—as shown in for common programming challenges. • Developers that implement the ser-
this virtual company—where the inter- “Anti-patterns” generally contravene vices to leverage legacy system code
nal resources lack knowledge and expe- these design patterns and are consid- need deep knowledge of both sides
rience. The company’s board decided to ered undesirable.) The other, Tiny (see assumption 4) to ensure working,
“rent” external people for the duration Service, consisted of several small, flexible code. Even if Fourth-
of the project, without any master plan decoupled services for each function. Generation Language (4GL) code-
of knowledge transfer into its own orga- Consider these examples: generation tools are promising and
nization. easy-to-use (see assumption 9), they
Depending on your constraints, one • Godfather Service: “A Godfather aren’t the solution for everything,
of two approaches could be taken in a Service is a service with many public especially if the granularity of services
similar situation: interface methods that implement is wrong (say, causing too many
many different key abstractions or roundtrips and resulting in poor per-
• High go-to-market pressure: The entities. The result is a service that formance).
project is under severe time con- couples too many underlying business
straints, and failure isn’t an option. or technical components, and is there- When an agile development method
This is the time to bring in skilled fore used by too many clients, making is used, the impact of bad design deci-
resources from outside and have peo- development and maintenance diffi- sions (such as too much or too little
ple learn from them. This isn’t an easy cult, and creating a reduction in flexi- granularity, or using just Web Services
solution, particularly if there are dif- bility. for everything) can be discovered at an
ferent mindsets among the developers, • Tiny Service: “A Tiny Service is a ser- early iteration.
but it has proved to be successful. In vice that incompletely represents an
17 • Business Integration Journal • September/October 2006 Business Integration Journal • September/October 2006 • 17
Test and User Acceptance run-time environment will differ from
(See assumption 5) • Scalability: As more people or clients the legacy one.
After three weeks of agonizing devel- use the available services, more infra-
opment work, several interface changes, structure is required to provide those 2. Service analysis and design (assump-
and some unit testing, the group was services. tions 7, 8, and 9):
shocked at the first round of integration • Change management: Managing
tests: performance was almost unac- change impacts the software and the • Consider an iterative development
ceptable. A lack of skills led to a bad company itself. Usually, the move to approach.
implementation of the bridges to the SOA implies a switch from organiza- • Keep the design simple, open, and
legacy systems, resulting in too many tional silos to a more matrix-like orga- close to standards such as WS-I (see
roundtrips. The group also realized that nization (reuse of functional services http://www.ws-i.org).
there was a huge gap between the proto- across departments or silos). While • Keep away from implementing a
type as originally envisioned and what this may sound easy, it can be difficult framework for orchestrating services
they now had. to achieve. This is because of the exist- yourself. Instead, consider using
Some goals were met, but others, ing structures that have been around Business Process Execution Language
such as the User Interface (UI), were far for many years, such as who can sign (BPEL).
from the communicated goals. Not only off for a change request, or who is • Web Services should be used as appro-
was the customer unhappy and harbor- allowed to request features. Moving to priate to solve your business problem.
ing strong doubts for phase 2 (the big an SOA means having to form com- They’re extremely effective for loose
implementation), but the developers munication channels and agreements coupling but sometimes other
themselves weren’t happy with their between what were previously in spe- approaches, such as the Web Services
work, either. cialized, separate, and independent Invocation Framework (WSIF), can
“For weeks now, we’ve built this sys- silos. overcome performance and transac-
tem, and it’s far from what everybody tional issues by using native protocols
hoped,” a developer said. “It’s slower One of the challenges of SOA is (see http://ws.apache.org/wsif).
than the old one, development was no forming the capability of providing the • Lean toward asynchronous interac-
easier, and it seems to be even less right hardware resources that are cheap tions, and choose synchronous inter-
maintainable.” and can be easily expanded to meet ris- actions wisely, as they’re blocking.
The developers’ lack of training ing needs. (This is the concept behind • Design stable contracts and interfaces
(assumption 4) and an inexperienced “grid” technologies.) first, and have everybody agree on
architect resulted in a clumsy design Transitioning an organization into a them.
(assumption 9). With a monolithic model that has solid, well-defined, deci-
application, you can still get reasonable sion-making processes (governance) is 3. Waterfall vs. agile implementation
performance from a bad design. harder than simply writing a few ser- (assumption 5):
However, the more distributed your vices. It could require a change to both
architecture, the more a solid design organizational structures and the mind- • A waterfall implementation (analysis,
matters. set of employees. design, implementation, test, and
“We’re not even close to the results acceptance) can hardly react to chang-
the customer expected, even though we Summary and Recommendations es in scope, the customer’s vision, or
had clear specs,” Brandon said. “We Here are some recommendations for requirements. Consider using agile
took shortcuts and hacked here and creating the wind that can drive your development techniques to be able to
there just to get it done.” project into a safe haven instead of a react quickly and gain immediate cus-
This clearly shows the lack of agility thunderstorm: tomer feedback. This is especially per-
(assumption 5) and belies the idea that a tinent for short-lived projects such as
waterfall approach is the best methodol- 1. Invest in continuous education of prototypes.
ogy for all situations. Instead, consider the organization (assumption 4): • When applying iterative development,
applying an iterative approach such as ensure short phases (cycles of analysis,
the Rational Unified Process (see www. • A strong understanding of both the design, implementation, and test) and
rational.com/products/rup) to ensure implementation technology and the closed, workable packages. Usually,
fast results that can be shown to the technology of the legacy code is need- when the cycles are kept too long, the
customer for immediate feedback and, ed. COBOL programmers can be overall direction heads back toward a
if necessary, allow for the possibility of assigned to service development. waterfall implementation.
reworking results and errors in the next • Know and adhere to the standards in
iteration. the SOA world such as SOAP, Web 4. Communication (assumptions 1, 3,
Services Interoperability (WS-I), and and 6):
Operations and Governance Service Component Architecture
(See assumptions 1 and 5) (SCA). • Communication about implementa-
The pilot project was intended to • Understand SOA, its principles, and its tion strategy and its benefits is a major
show the successful transition from a design patterns. SOA offers a blueprint key to success, because SOA often
monolithic application to a distributed for implementation. means a switch in the mindset of
SOA. However, no time was spent • Get familiar with the run-time/deploy- developers—not just in terms of tech-
thinking about operations. There are ment environment (such as applica- nology, but also in their way of think-
two important aspects of operations to tion servers, J2EE containers, and so ing: from tightly integrated to loosely
consider: on). The new implementation and coupled.
18 • Business Integration Journal • September/October 2006 Business Integration Journal • September/October 2006 • 18
• SOA isn’t just applicable in a team that
implements a certain project; SOA can
drive the whole organization to the
next level.
Conclusion
This article showed how some false
assumptions people make about SOA
can take a four-week project from a
smooth start to chaos; it also addressed
what’s needed to change these assump-
tions. The key to successful SOA proj-
ects is continuous education, a strong
will to clear existing barriers, and an
agile team that’s willing to focus on
adapting to the visions of their custom-
ers.
19 • Business Integration Journal • September/October 2006 Business Integration Journal • September/October 2006 • 19