Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Architectural manifesto: Adopting agile development, Part 9

An agile approach to faster, cheaper SOA

Mikko Kontio, Partner, Dazid
Mikko Kontio has a background in software development and consulting. Formerly a director with Softera, a software development company focusing on business portals and telecom-billing solutions, Mikko is currently a partner at Dazid.

Summary:  In this final installment of the series, learn how an agile approach can help companies enjoy the benefits of SOA. In our current economy, organizations are carefully analyzing which projects they will implement, and which they will not. SOA's reputation of being costly, in both time and money, doesn’t help in getting new projects started. In this article, explore how companies can quickly start enjoying the benefits of SOA using an agile approach.

View more content in this series

Date:  20 Jan 2009
Level:  Introductory
Also available in:   Vietnamese

Activity:  2949 views
Comments:  

Introduction

The media is publishing research results saying organizations are postponing their SOA projects due to fear that costs will be higher than the benefits. This article explores an alternative approach where organizations can get the most important benefits of SOA with a little less investment, and in a shorter time.

There has been a lot of debate about whether agile and SOA go well together or not. Some say that SOA demands a wider, documentation-oriented approach. Others say that with the agile approach, a team could deliver the key functions with less money and less time. There’s no reason why the agile approach couldn’t be used to deliver the benefits that organizations are looking for with SOA.

This article is not intended as an introduction to SOA. Resources has more on SOA.

Since real business needs and benefits are always the highest priority, this article first reviews the benefits that organizations are seeking from SOA. Then we'll discuss how an agile approach could be used.


Overview: Benefits of SOA

SOA is typically described as an architecture in which functions are grouped around business processes, and the functions can be accessed through interfaces. There are several benefits that businesses are typically seeking with SOA, as follows.

Applications are not isolated
The interfaces make it both easy and affordable to integrate the organization’s existing applications. This reduces manual work phases, thus saving time and money.
Easier integration of the applications
The functions are offered by, and easily accessible with, the interfaces.
Hidden implementation-related details
The interfaces hide implementation details, technologies, and platforms, making integration a lot easier.

The location of applications is also more transparent. One application can be a C++ application run on Linux, while another might be a custom built REP running on LAMP.

Continued life span of existing applications
By continuing the life span of existing applications, businesses can save money. Typically, the most important reasons for replacing existing applications are: rising maintenance costs, difficulties with integration, or limited functionality. By creating interfaces, you can ease the integration problems and open new avenues for the limited functions.
Reuse existing interfaces
This benefit will only materialize after the organization has built a few interfaces and applications. If the interfaces have been properly designed, their functions can be reused while building new interfaces, integrations, or applications.
Respond quickly to business needs
With the help of the interfaces, and the reuse of existing functions, you can respond faster to business needs. Some of the more interesting business needs are to:
  • Bring existing data or functions together to use them in other applications. The data could be aggregated from two or more applications, or it could simply be atomic data (customer’s address) that is shown to the customer in the self-care Web application.
  • Use other applications to update data in existing applications. For example, the self-care application would also likely let the user update the current address.
  • Let partners update data.

Obviously some of the benefits are only possible after making a large investment. However, you can achieve some benefits with smaller investments, and in a shorter time frame.

The common theme in the business needs described above is that the company wants to offer functions to new or existing users by way of a new interface, such as a Web or mobile portal. Typically, the users are new, or they've been doing a process in a different way. One of the key drivers in such cases is the need to bring down costs (which are the costs of running the current process).

In the current economic situation, some companies are thinking about postponing their SOA projects due to high costs. If they continue to use the old processes, they won't realize the savings and business benefits that new solutions would bring.

The next section explores how the agile approach would make it possible for a business to start enjoying the benefits of SOA.


Agile approach to SOA benefits

Some folks say that agile teams are overly concerned with short-term deliverables, and they don't pay enough attention to the architecture. If a team uses an agile approach, it does’t necessarily mean that they'd forget the architecture (and build functions for the most important requirements only). The agile team can focus on the overall architecture first, and roughly sketch the picture of the future architecture. Since the requirements are likely to change before most of the architecture or the interfaces are built, the big picture can be maintained at a high level. This is exactly where we can see one of most visible benefits of the agile approach.

With more traditional or documentation-driven approaches, the development team might spend more time going into the details of the big picture (which in later phases would change). If you have a detailed overall architecture, you're more likely to estimate the total cost for implementing the entire architecture. These figures can often scare decision makers. This is a dangerous way to think for two reasons:

  • You don’t have to implement the whole architecture.
  • You should start enjoying the benefits after the first implementation is released.

Consider all of the applications in a typical organization. Some of them are used daily by loads of users, while others are not used very often and have only a few users. Making the distinction between these two is not difficult. It would be obvious to focus the SOA activity on the applications with more users and higher usage. The more difficult category of applications are those that are used daily, but only have a few users. Are these processes critical (such as reporting, or business intelligence), or will they work just fine the way they are?

It would be prudent to quickly go through all the applications and choose the ones that would really matter. Take just a few hours to quickly sketch the overall architecture for interfaces and their main functions. Then you’ll know what the elements (or the building blocks) are while you start to build your first solutions. Don’t worry if the drafted interfaces will change in the future.

Your choice for the first solution is important, because you want to show the business owners that getting results does’t take that long. As you evaluate the possible business needs, choose something that is relatively easy to implement. Using a business need previously mentioned, a typical case could involve allowing customers to check and update their address details. Depending on the number of possible users, this is relatively easy and quick to implement. Still, if updating the address details was previously done manually, and the number of changes is high, the savings could be significant. This would be an ideal business need to implement.

The team could examine existing applications that contain address details, decide which of them is the master, or simply decide to update the information to all of them. The team would then investigate the possibilities for updating the data, such as:

  • Using existing open interfaces, such as HTTP, SOAP, RMI, or socket interfaces.
  • Using existing inter-application interfaces, such as Java components.
  • Getting and updating data directly to a database (making sure that you don’t break any validity rules).

If it's obvious there will be loads of difficult, or numerous, integrations to different types of applications, it is wise to evaluate an integration product. They might be too expensive (and complex) for small applications and small budgets, but soon the advantages will start to kick in.

Quite often, companies build Web portals to use the information from existing applications. The portal would be an excellent way to implement the address update functions. The team could build on the progress by: getting a portal product (commercial or open source); drafting and implementing the basic functions of the address updating in the portal; implementing the interfaces; and integrating it all together. The size of the application is quite small, so the team is likely to implement it in a reasonable time, depending on the existing applications and their technologies.

If you now look at the big picture, the team has started to implement the overall architecture. Instead of doing it one layer at a time, though, they're tackling one real business need at a time. Both the business people and the development team have learned a great deal about the existing applications, possible bottlenecks, and implementing the interfaces and applications. Now they are more capable of suggesting the next moves relevant to the business needs.

As the business folks and the team choose the next implementation, which could be an update to the first release or a new application targeting a different business need, the architecture would evolve. Since the architecture was just a draft, making changes to it is not a big deal.


Conclusion

This article explored the benefits of SOA, and how organizations can get real benefits in less time and with less money. You can use the agile approach to release something concrete that the business can use. As always, this is not possible in all situations or organizations, but you can likely turn the rejected SOA project into an accepted project.

Typical SOA projects involve Web portals in one way or another, either at the organization itself (self-care, help desk) or at their partner's solutions (reseller portal, e-commerce). By implementing the first efforts vertically, from the portal through the interface to the existing applications, instead of horizontally (one layer at a time), the business can release their first SOA based applications faster and start to enjoy the benefits.


Resources

Learn

Get products and technologies

  • Download IBM product evaluation versions and get your hands on application development tools and middleware products from DB2®, Lotus®, Rational®, Tivoli®, and WebSphere®.

Discuss

About the author

Mikko Kontio has a background in software development and consulting. Formerly a director with Softera, a software development company focusing on business portals and telecom-billing solutions, Mikko is currently a partner at Dazid.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Rational
ArticleID=365737
ArticleTitle=Architectural manifesto: Adopting agile development, Part 9
publish-date=01202009

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Try IBM PureSystems. No charge.

Special offers