Build your SOA: Maturity and Methodology, Part III

Registration is free. Login or register to view/download this content.

Author(s)

Business Relationship Manager - Product Lifecycle Management, Chevron Corporation

Introduction

Typical SOA initiatives can potentially suffer from one or more of the following problems:

  • High complexity and short time to market, leading to an increased risk of failure
  • Low tolerance for failure because of high costs and difficulty quantifying return on investment (ROI) associated with the SOA project
  • Dynamic requirements and business needs that need proper managementYou need an adaptable software methodology — a systematic approach to the way software is developed — that can provide rigid controls and processes during the initial SOA rollout but also be adaptable to change and streamlining as you move toward an optimized SOA. Before you consider the software methodology outlined here, you should read the second article in this series, in which I describe the service-oriented architecture maturity model.

But how can your enterprise make the transition from one level to another while still maintaining a coherent development process? In this article, I propose a best-of-breed hybrid methodology for building and then continually optimizing an SOA. I’ve nicknamed this methodology the service-oriented unified process, or SOUP.

What is SOUP?

SOUP is a software methodology that takes the best elements from RUP and XP. It is targeted specifically at SOA projects that are underway in any organization.

The major driving factors of a typical software development project are the application development process, project management, and the technologies used. These are all driven by the specific consultants assigned to the project. A generic software development project has four variables: time, budget, scope, and quality. Compromising on any one variable has an impact on the overall project. Because of changing business needs, scope and quality are the two most difficult factors to manage. Technological complexities can lead to problems with time and budget management, as well.

SOA projects are significantly more complex than typical software projects, because they require a larger, cross-functional team along with correspondingly more complex inter-team communication and logistics. Typically, an SOA is not well defined, and the vision for the final result is thus often not clear at the project’s inception. An SOA can have a very positive impact on an organization, but it comes with a potentially high price tag. The key factors that can help an SOA rollout succeed are a clear definition of the development process, enhanced lines of communication across project teams that know the business, and clear support and governance policies.

SOUP is a six-phase approach to software development. Each of these phases represents a distinct set of activities critical to the success of an SOA rollout. Of course, as in any project, you need to tailor the process to your own organization.

Figure 1. The SOUP process

Figure 1

I break the use of the SOUP process into two categories.

  • SOUP for initial SOA deployment
  • SOUP for ongoing SOA management

SOUP for initial SOA deployment

Let us take a look at each phase of SOUP as it applies to initial SOA rollout.

Figure 2. SOUP and RUP

Figure 1

Incept

In this phase, you establish the need for an SOA project in your organization. You can apply the SOA maturity model to determine your organization’s level of architectural maturity and determine the basic driving factors towards an SOA. In addition, at this point you would explain the basics of the SOA concept to all project teams serving the business and plan a strategy for a feedback and suggestion process.

The key deliverables of this phase are:

  • SOA vision and scope.
  • SOA strategy.
  • ROI analysis.
  • Communications plan.

Clients do not always fully understand the benefits of new software products in their business. The enterprise teams that define the SOA strategy need to leverage the domain experience of the project teams to help identify business problems and ways and means to streamline operations.

Cross-functional analysts and project managers analyze the business of the clients to determine the advantages of an SOA-based solution. The key factors analysts examine are the clients’ internal operations; interactions with their partners, suppliers, and consumers; and their overall business model. These help the analysts develop and recommend an SOA strategy.

An ROI analysis should clearly show the cost benefits to the organization — in the short, medium, and long term. The single most important deliverable at this stage is the communications plan. Ultimately, project IT teams and the business stakeholders know the business better than the architecture teams and analysts. The communications plan ensures that these internal stakeholders understand and are involved in the process.

Define

This phase is by far the most critical of the SOA project. Business and project team involvement here ultimately determines the project’s success. Team members need to be committed to participating in the definition the requirements and use cases developed as part of the initial SOA rollout.

This phase of a project lifecycle involves such activities as:

  • Requirements gathering and analysis
  • Nonfunctional requirements definition
  • Project plan with timelines and estimates
  • Technical infrastructure definition
  • Use case definition and realization
  • Overall architecture definition and documentation

The key deliverables of this phase are:

  • Functional and Nonfunctional requirements document.
  • Use cases and use case realizations.
  • SOA architecture and applicability document.
  • Infrastructure definition document.
  • Project plan.
  • Support and governance model.

Various studies have shown that requirements-related issues are the number one reason for the failure of software projects; SOA projects are no different. Software quality is sometimes defined as software’s conformance to its requirements. However, the quality of software is probably better measured by the quality of the requirements it meets, not just the number of requirements it meets.

As the descriptions of the deliverables should make clear, the SOUP methodology recommends a formal requirements-gathering and management process. XP does not really define a formal process to gather and document requirements; instead, XP developers create user stories and try to put these stories in a logical order to provide a sequence to requirements. For this stage of development, such a process is inadequate. In RUP, the process is more detailed and uses more formal techniques to ensure that requirements sessions are complete, documented, and validated. I recommend the use of a requirements repository that will ultimately tie into use cases, design, and code, providing traceability through the project. A change management process is also important.

In my opinion, the most important deliverable in this stage is the support and governance model. How will the organization support the SOA? What are the governance guidelines?

It is important that the business start the project with a realistic set of plans and objectives. Extra or superfluous requirements should be left for later. An effective business-to-IT (B2IT) collaboration on requirements that are achievable for the expected time and budget can set up the project for success from the beginning.

You define the technical infrastructure required to support the entire SOA early in the life of the project. This includes detailed estimates on servers, network infrastructure, training requirements, and so on. A realistic and pragmatic approach to planning will always be successful.

Design

In this phase, you elaborate on the design artifacts from the Define phase. The use case realizations and the software architecture document translate into detailed design documents.

At this time, SOA architects (typically a subset of the enterprise architects) need to involve project architects to make sure the design presented by the SOA team will work for specific projects. The SOA architects might even choose to do a couple small proof-of-concept projects to prove the SOA vision. The key deliverables of this phase are:

  • Detailed design document.
  • Application programming model.
  • Database model.
  • Testing and QA plan.

Construct

During the Construct phase, you can basically use any iterative build methodology you like to build your SOA. This phase involves new development as well as integration activities. Your activities are not limited to software but can also involve infrastructure-related subprojects, such as hardware consolidation projects or efforts to centralize hosting of servers. The overall effort is managed in a single SOA project plan, but in all probability various small sub-teams will be working on different construction activities.

This phase of a project lifecycle involves such activities as:

  • Iterative development
  • Iterative QA and testing
  • User documentation

The key deliverables of this phase are:

  • Code base.
  • Test results.
  • Documentation.

Deploy

In this phase, you actually deploy your SOA. You roll it out to individual project teams, who start using the SOA on their projects in a production setting. Perhaps the most obvious key deliverable for this phase is your application in production. However, even more important is the plan that establishes the projects that will pilot the SOA. This leads into the next step of the SOUP methodology, which determines how ongoing projects will use the new architecture. The other key deliverables of this phase are:

  • Deployment model.
  • Usage model.
  • Ongoing support levels model.

Support

Although this is the final step of the software development cycle, it is nevertheless a very important phase. In this phase, you ensure ongoing SOA support, bug fixes, and new functionality development. This phase of a project lifecycle involves such activities as:

  • Maintenance
  • Bug fixes
  • Training
  • Continuous project buy-in

At this point, your SOA is in production. But how do your project teams benefit from the architecture? Do they now need to follow all the steps described above in detail when building applications that consume existing services or when designing new services that make use of an existing SOA? As you’ll see in the next section, they can in fact benefit from a more lightweight methodology.

SOUP for ongoing SOA projects

The SOUP methodology can still be useful for projects that are using an SOA that has already been rolled out. In such situations, SOUP draws more heavily on XP for inspiration.

Figure 3. Overlaid SOUP and XP processes

What is the key premise here? The value of the SOA project is that it provides a well-defined architecture and firm technology guidelines. You have a framework on which to build your applications as services. The project teams’ main tasks are building and consuming services. They are most fit to perform these tasks because they have the necessary business domain knowledge. However, they do not need to worry about the technical architecture or invention of technology, as that is left to the SOA teams.

Incept

When you’ve got an SOA up and running, there’s still development work to be done. You’ll no doubt want to build projects that consume existing services or expose new ones. In the Incept phase of such a project, you establish the project’s overall scope and vision. The key deliverables of this phase are:

  • Project vision and scope.
  • Project strategy.
  • ROI analysis.

Define

In this phase, you build the tie-ins to the SOA project and understand how to leverage the SOA. You need to identify the services that the SOA already makes available and those that still need to be built to meet the goals of your project.

This phase of a project’s lifecycle involves such activities as:

  • Requirements gathering
  • Services identification
  • Establishing a project plan with timelines and estimates
  • Test case development

The key deliverables of this phase are:

  • Functional requirements document.
  • Use cases and use case realizations.
  • SOA applicability document.
  • Project plan.
  • Services strategy.
  • Test plan.

The requirements gathering in this phase does not need to follow the formal standards that were followed during SOA rollout. Instead, you can make use of agile requirements gathering involving user stories or Class, Responsibilities, Collaborator (CRC) cards. In line with XP thinking, test cases are built early on in this type of project.

Design

This phase is really quick, because most of the design was completed in the initial SOA rollout. In this phase, you only have to worry about how to use the services, what more needs to be built on top of the existing services, and what new services need to be built.

The key deliverables of this phase are:

  • Detailed design document.
  • Database model.

Construct

This phase involves more assembly than new development. As more services become available, each project will have more to reuse and less to build. XP’s iterative development techniques are ideal at this stage of development. In XP, iterative cycles are theoretically set at two weeks, which should be more than ample time for one development-QA cycle when building a small service or consuming a set of services in an SOA environment. With this iterative approach, an SOA can provide valuable business agility via quick software releases.

This phase of a project lifecycle involves such activities as:

  • Iterative development
  • Iterative QA and testing
  • User documentation

The key deliverables of this phase are:

  • New services.
  • Test results.
  • Documentation.

Deploy

In this phase, you either launch an application that consumes several services, or you launch new services. The infrastructure is managed by the SOA team; thus, this process is relatively straightforward.

Support

In this phase, you are only providing support for your new services. In doing so, you will follow the support guidelines laid down during the original SOA project; thus, individual projects don’t need to spend much time developing new support guidelines.

Managing the SOA lifecycle

This article has introduced SOUP, a new software methodology for building your SOA and then realizing the benefits of the architecture on individual projects. I’ve taken a very high-level look at how this methodology would work, transitioning from an RUP-like methodology (for initially building an SOA) to an XP-style agile process (for ongoing services rollout). By combining the best qualities of these two processes, you can rely on a unified development scheme that nevertheless provides the flexibility needed to manage different stages of an SOA’s lifecycle.

Similar Resources

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.