SOA
SOA Transformation and Leveraging Open Source Principles
It's important to recognize that the organizational transformation has to do with cultural transformation
May. 5, 2006 03:00 PM
A case in point is globally distributed development (GDD). The ALM environment that supports a SOA transformation will have to enable an end-to-end life-cycle process across a diverse group of stakeholders and locations. In many cases, offshore development partners and business partners will be critical members of the overall ecosystem.
"With SOA you can have business units create point applications, which publish services that are used by others in the same manner as using functionality from an SaaS (Software as a Service) provider such as Salesforce.com. Along with these opportunities, enhanced collaboration between distributed teams becomes even more important. A shared component-based development methodology is essential, and the use of common technical frameworks is highly desirable," according to Dr. Gautam Shroff, vice president of the Technology Program and head of the Technology Innovation Lab at Tata Consultancy Services, Ltd.
While the image of open source programs from an ALM perspective might be that of an ad hoc collection of developers, the reality is that well-run open source projects have a comprehensive set of ALM processes enabled by agile tools. Table 2 shows some of the characteristics of integrated ALM for SOA. Organizations can determine by inference the core competencies in software development that they need develop in order to address the challenges of SOA transformation.
Summary
As an organization looks to migrate from a large, monolithic application culture to an agile, Web service-based (SOA) culture, it will have to hone new core competencies in managing globally distributed development across the extended enterprise and across its partner ecosystem. The foundational pillars of these new core competencies are: governance, collaboration, ALM, discovery (UDDI registries, etc.), run time quality of service (QoS), and service level agreement (SLA) management. The good news is that most software development organizations should be able to glean some aspects of open source principles and be able to apply them to drive a logical benefit.
Here are some key capabilities and recommendations to consider for addressing the challenges of SOA transformation:
- Get Modular: Maybe the first thing an organization needs to do is to "get modular" about the code it builds. One approach is to use APIs that can be mirrored as a Web service. This allows the user community to decide the correct delivery approach, based on its own voluntary sense of where the control vs. performance balance should be set.
- Get Good at Collaboration: Collaboration is a critical skill in sustaining SOA. "The best companies are the best collaborators. In a flat world more and more business will be done through collaboration within and between companies," as cited by Thomas Friedman in The World is Flat, with respect to how companies will cope in a new flat landscape. Collaboration is an essential skill both for IT and business.
- Employ a Community Source Process: Having access to source code is a benefit to participants in enabling successful SOA initiatives. Whether this is open source, shared source among partners, or simply access to the code that is associated with APIs, the potential users of a Web service are more likely to participate and become effective contributors in the long term usage and life cycle of a Web service if they are enabled to participate at a source-code level.
- Adopt a Common ALM Approach: The ability to apply a common life cycle across the spectrum of definition, design, code/build, test, deployment, and support is an essential part of enabling large-scale SOA implementations. It brings about the required communication and visibility across all stakeholders, including project management, enterprise architecture, engineering, QA, operations, and business end users. ALM also feeds the necessary compliance hygiene for SOX or other governance compliance programs.
- Use Network-Centric Tools: Design teams can no longer be assumed to be collocated. More often than not, today these resources are coming from flexible sourcing partners located in any number of offshore locations. The tools employed have to work efficiently across the Internet, while enabling the necessary security. Where possible, employing WAN-centric open source tools is a benefit as it lowers the cost of entry for participants and does not create a tool barrier to prevent collaboration.
- Support COI: Successful Web services will attract and build associated COIs. The ability to support and sustain these communities requires supporting service-oriented infrastructure (SOI), including communication services and collaborative software development services. SOA initiatives should consider the concept of proactive community development and management.
In general, the theme for success is that it is less about
how you want to do it and much more about
how others want to do it. SOA implementation turns ordinary IT organizations into suppliers of shared services that are subject to the same constraints as traditional software vendors in terms of delivering expected functionality, support, and QoS. In other words, being successful at SOA means there is some amount of "selling" to be done in order to drive adoption and success. Applying open source principles maybe a beneficial step along the way.
About Michael KochanikMike Kochanik is vice president of alliances at CollabNet (www.collab.net), a provider of on-demand distributed application lifecycle management solutions for software development. Mike has been a major contributor to the creation of network-centric IT strategies that leverage open source software and community-based development processes at Global 1000 organizations.