Build your SOA: Process and Methodology, Part I

Author(s)

Business Relationship Manager - Product Lifecycle Management, Chevron Corporation

Introduction

SOA projects tend to be large initiatives with a lot of risk and potential reward associated with them. The Return on Investment (ROI) on a SOA project is sometimes very hard to quantify (and thus hard to sell), which brings about the need for a solid process and methodology to ensure the success of an SOA project.

A SOA is a set of tools, technologies, frameworks, and best practices that enable the quick and easy implementation of services. In addition, the process of developing a SOA uses methodology for identifying reusable services in your applications and organization. SOA is not a product or a standard.

The architecture is focused on allowing enterprises to identify, build, exchange, and maintain their business processes as services rather than as large, monolithic applications — applications that today are often termed “instant legacy.” SOA existed well before Web services. (If you think back, CORBA and IDL were just flavors of SOA.) However, as Gartner puts it, “Through 2008, SOA and Web services will be implemented together in more than 75 percent of new SOA or Web services projects (0.7 probability).”

The technologies that enable SOA are targeted at reducing the complexities involved in software development. They address issues with distributed software, multiple platforms, and application integration. SOA provides an application architecture in which you define processes as services that have well-defined interfaces. These services can be dynamically invoked over a network. For the Chief Information Officer (CIO), SOA enables faster time-to-delivery of business processes and cost reduction resulting from reductions in development and maintenance costs.

This three-part series is designed to tie industry-adopted processes and methodologies to SOA and demonstrate how you can use them together. This article introduces you to the process (namely, CMM) and methodology (namely, RUP) underlying SOA and lays the groundwork for how and why they can benefit your organization’s SOA project.

Software process

The Software Engineering Institute introduced Version 1.0 of the CMM in 1991. A model used to describe the principles and practices of software process maturity, the CMM is a recognized benchmark for assessing software process maturity. The model’s aim is to increase the effectiveness of information technology (IT) organizations to deliver software products or projects by making the software process more predictable and repeatable.

Process repeatability is important, because the software process has to be applied consistently and methodically for organizations to deliver high-quality products or projects on time and on budget. Best practices that are defined need to be shared across software teams and be adaptable to the needs of individual groups.

The CMM defines a model that organizations can use to assess their software process maturity, but it also defines a model that you can use to advance from one level to another. The five maturity levels that the CMM describes can be characterized by the primary process changes made at each level:

1. Initial: At this level, the software process is characterized as ad hoc and chaotic. Success is individual-based, because very few, in any, processes are defined.

2. Repeatable: Basic process are defined and repeated consistently by an individual project team on similar applications.

3. Defined: The process is well defined, documented, and standardized. All projects within the organization use the same software process, tailored to their specific needs.

4. Managed: The software process is managed in terms of applicability and quality. The process has been examined quantitatively and controlled.

5. Optimizing: Continuous process improvement is enabled by quantitative management. New technologies and processes are incorporated to respond to the changing technology and business marketplace.

Why should CMM be applied to an SOA project?

The application of a process maturity model, for software development, such as CMM can help you identify the need for an SOA in your organization. Doing so can also help you quantify the costs and benefits of an SOA for purposes of establishing a solid ROI for the project.

In the second article in this series, I will actually introduce a new version of CMM that I call the SOA Maturity Model. The SOA Maturity Model allows you to apply the CMM to the IT architecture of your organization. Similarly, by using this model, you will quickly be able to build a vision, scope, and plan for your SOA project as well as determine key performance indicators for its success.

Product companies and consulting firms can also leverage the SOA Maturity Model to line up their products and services so that organizations can get from a lower level of architectural maturity to a higher level.

After you have a process and have determined the need for an SOA, the next step is to identify a methodology that you will use to build your SOA. You also need a methodology for the ongoing maintenance of the SOA project after you have rolled it out to your organization.

Software methodology

A software methodology is a systematic approach and control of how to develop software. Basically, a software methodology addresses the “hows” of software development, while the CMM process addresses the quality of that methodology and the software produced using the methodology.

Two distinctly different methodologies can be used with SOA: RUP and XP. RUP is a more traditional, heavyweight technology that’s particularly appropriate for large and complex projects. In contrast, XP is a more lightweight, agile methodology that is particularly suited for Internet-based development.

I have chosen these two methodologies because I believe that an SOA project has two high-level phases. The first phase is initial SOA rollout, in which you actually build your SOA. This phase requires a methodology like RUP. The second phase is SOA maintenance, in which new projects build on top of the initial SOA. This phase can benefit from a lighter methodology such as XP. (More on this later.)

What is RUP?

RUP is an IBM product offering that provides an out-of-the-box software implementation methodology. The first iterations of RUP were focused more on requirement gathering and less on software development. Now, RUP requires the use the Unified Modeling Language (UML) for system design and also encourages creation of a full prototype during the initial phases of a project that includes all functional and technical layers for the final target system. Building such a prototype can become complex as developers attempt to solve all the nonfunctional requirements during the prototype phase.

Although RUP is adaptable to fit the methodology of any organization, it is a very prescriptive, heavy methodology designed around the software implementation process. It breaks software development into four distinct phases: Inception, Elaboration, Construction, and Transition. The Inception phase is generally where you define the vision and scope for the project and develop the initial Return on Investment (ROI). You complete the requirement-gathering and design processes in the Elaboration phase. The most time-intensive phase is the Construction phase, which corresponds to the traditional development phase of a project. In the Transition phase, you deploy the system to production and manage the first round of support. It is important to realize that almost every organization that is using RUP has probably tailored it somewhat. For example, you could do all requirement-gathering in the Inception phase and make the Elaboration phase the phase in which you do your design work. Regardless of how your organization might have tailored RUP, the fundamental concepts remain the same.

The RUP process is well supported by the IBM Software Development Platform toolset. The IBM Software Development Platform and the IBM Rational Suite® have built-in features to support Web services and SOA development. IBM Rational® Software Architect and Rational Software Modeler allow you to quickly model your SOA, and the development tools in the Rational Suite allow you to build and deploy your SOA.

What is Extreme Programming?

Extreme Programming is a fairly new software development methodology that gained tremendous momentum during the internet boom. XP encompasses concepts such as short iterations, pair programming and test before coding. About seven years old, XP has already been proven in cost-conscious companies like Bayerische Landesbank, Credit Swiss Life, DaimlerChrysler, First Union National Bank, and Ford Motor Company. XP has been successful because it stresses customer satisfaction. The methodology is designed to deliver the software your customers need when it’s needed.

XP empowers you to respond confidently to changing customer requirements, even late in the project life cycle. It introduces the concept of defining small user stories using the Class-Responsibility-Collaborator (CRC) cards technique or other definition methodologies. (User stories are the XP equivalent of use cases.) XP is a quick and effective method of capturing requirements and organizing them into logical iterative builds, assigning priorities, and developing the user stories. However, XP does not cover validation of the requirements. Yes, XP presents an optimized methodology to develop requirements, but if the quality of the requirements is not addressed, the result might not be satisfactory. This is exactly why in the third article in this series I distinguish between when to use XP and when to use RUP as part of your SOA rollout.

And now…

This article has introduced the basics of SOA and skimmed the surface of concepts such as the CMM, RUP, and XP. In the next two articles in this series, I will combine these concepts to provide a framework and methodology for building your enterprise SOA vision.

In the second article in this series, I will use the CMM to define an SOA Maturity Model, which can help you grade your organization in terms of architecture maturity and define a series of steps to get to a higher level of maturity (with a true SOA being the highest level of maturity).

In the third article in this series, I will introduce a new software development methodology that is a hybrid of RUP and XP: SOUP. SOUP breaks up the software-development process into two phases: It uses RUP to build your SOA, then switches to XP to maintain it.

Similar Resources

Enhancing Your Team’s BPM Capabilities: The Value of External Expertise

Enhancing Your Team’s BPM Capabilities: The Value of External Expertise

Author(s):

Editor & Founder, BPMInstitute.org, BAInstitute.org and DBIZInstitute.org

Enhancing Your Team's BPM Capabilities: The Value of External Expertise In today’s dynamic business environment, managing and improving business processes is critical for any organization aiming to maintain a competitive edge. Many companies consider handling Business...

Exploring Shared Data Model and Notation (SDMN) and Its Role in BPM+

Exploring Shared Data Model and Notation (SDMN) and Its Role in BPM+

Author(s):

Editor & Founder, BPMInstitute.org, BAInstitute.org and DBIZInstitute.org

Exploring Shared Data Model and Notation (SDMN) and Its Role in BPM+ Introduction In the evolving landscape of Business Process Management (BPM), the introduction of Shared Data Model Notation (SDMN) marks a significant advancement. As businesses increasingly seek to...

Embracing the Future: Low-Code and No-Code Platforms in BPM+

Embracing the Future: Low-Code and No-Code Platforms in BPM+

Author(s):

Editor & Founder, BPMInstitute.org, BAInstitute.org and DBIZInstitute.org

Embracing the Future: Low-Code and No-Code Platforms in BPM+ Introduction In the realm of business process management (BPM), low-code and no-code platforms have emerged as transformative tools, reshaping how organizations develop applications and manage workflows....

Featured Certificate: BPM Specialist

Everyone starts here.

You're looking for a way to improve your process improvement skills, but you're not sure where to start.

Earning your Business Process Management Specialist (BPMS) Certificate will give you the competitive advantage you need in today's world. Our courses help you deliver faster and makes projects easier.

Your skills will include building hierarchical process models, using tools to analyze and assess process performance, defining critical process metrics, using best practice principles to redesign processes, developing process improvement project plans, building a center of excellence, and establishing process governance.

The BPMS Certificate is the perfect way to show employers that you are serious about business process management. With in-depth knowledge of process improvement and management, you'll be able to take your business career to the next level.

Learn more about the BPM Specialist Certificate

Courses

  •  

 

Certificates

  • Business Process Management Specialist
  • Earning your Business Process Management Specialist (BPMS) Certificate will provide you with a distinct competitive advantage in today’s rapidly evolving business landscape. With in-depth knowledge of process improvement and management, you’ll be able to take your business career to the next level.
  • BPM Professional Certificate
    Business Process Management Professional
  • Earning your Business Process Management Professional (BPMP) Certificate will elevate your expertise and professional standing in the field of business process management. Our BPMP Certificate is a tangible symbol of your achievement, demonstrating your in-depth knowledge of process improvement and management.

Certification

BPM Certification

  • Make the most of your hard-earned skills. Earn the respect of your peers and superiors with Business Process Management Certification from the industry's top BPM educational organization.

Courses

 

Certificates

  • Operational Excellence Specialist
  • Earning your Operational Excellence Specialist Certificate will provide you with a distinct advantage in driving organizational excellence and achieving sustainable improvements in performance.
 

 

OpEx Professional Certificate

  • Operational Excellence Professional
  • Earn your Operational Excellence Professional Certificate and gain a competitive edge in driving organizational excellence and achieving sustainable improvements in performance.

Courses

Certificate
  •  

  • Agile BPM Specialist
  • Earn your Agile BPM Specialist Certificate and gain a competitive edge in driving business process management (BPM) with agile methodologies. You’ll gain a strong understanding of how to apply agile principles and concepts to business process management initiatives.  
 

Business Architecture

 

Certificates

  • Business Architecture Specialist
  • The Business Architecture Specialist (BAIS) Certificate is proof that you’ve begun your business architecture journey by committing to the industry’s most meaningful and credible business architecture training program.

  • Business Architecture Professional
  • When you earn your Business Architecture Professional (BAIP) Certificate, you will be able to design and implement a governance structure for your organization, develop and optimize business processes, and manage business information effectively.

BA CertificationCertification

  • Make the most of your hard-earned skills. Earn the respect of your peers and superiors with Business Architecture Certification from the industry's top BPM educational organization.

Courses

 

Certificates

  • Digital Transformation Specialist
  • Earning your Digital Transformation Specialist Certificate will provide you with a distinct advantage in today’s rapidly evolving business landscape. 
 

 

  • Digital Transformation Professional
  • The Digital Transformation Professional Certificate is the first program in the industry to cover all the key pillars of Digital Transformation holistically with practical recommendations and exercises.

Courses

Certificate

  • Agile Business Analysis Specialist
  • Earning your Agile Business Analysis Specialist Certificate will provide you with a distinct advantage in the world of agile software development.

Courses

Certificate
  • DAS Certificate
  • Decision Automation Specialist
  • Earning your Decision Automation Certificate will empower you to excel in the dynamic field of automated decision-making, where data-driven insights are pivotal to driving business innovation and efficiency.