What is OSLC and Why Do I Care?

Recently I have been spending quite a bit of time with IBM people and our customers explaining what OSLC is and why it is important.  Like everything else in my life, if I have to explain it more than twice, it becomes a blog posting.  Now please be patient, this post gets a bit long but I am trying to explain the concept, and why it is important, to a non-technical and semi-technical audience.

OSLC is the Open Services for Lifecycle Collaboration group.  In practice, people use it as a generic term for all of the things that conform to the various OSLC defined standards for software development tools.  The general idea here is to have a set of “rules” (or standards) for how software development tools present and share their information with other tools, and with the world at large.  A well defined standard will allow vendors and customers to focus on the capabilities of the tools, and not so much on the how the tools will communicate and integrate with each other.  This forms the foundation for the Collaborative Lifecycle Management that IBM likes to talk about, with all aspects of software development sharing data to help streamline and automate processes.  Perhaps an example would help clarify this.

Let’s pretend that email functionality is something that software developers consider a tool, and that it has an OSLC interface defined for it (we all know that in reality the email standard is something different, and is not OSLC).  Now there are multiple vendors out there that provide this email service for users.  There is gmail, hotmail, yahoo mail, and others.  Since each of these supports the OSLC interface for email in our pretend example, they are all considered as OSLC Providers.  This means that each of these is considered a “web service” that is providing a capability for it’s users.  Still with me?  These all have web based interfaces for their service, which communicate via the OSLC interfaces.  Since these web pages use the “service” that is provided, and give users a way to communicate with the underlying email service, these web pages are considered OSLC Consumers.  The iPhone and iTouch both have a generic email app that communicates with all of these services, but there are other email client applications available for these devices as well.  So this is the basis for my example which will show how OSLC helps enable innovation, and makes life better for software geeks, their managers, and consumers.

I have a great idea for a new service called “Vox mail”.  (Disclaimer: This probably already exists somewhere, somebody has probably already implemented it, and I have no plans to market this idea, so put down the sharp objects and call off the copyright lawyers.)  The idea is that from my iPhone I can speak and leave a brief voice memo, have it encoded into an mp3 format, and have this mp3 attached to an email which I can then send to one or more of my email contacts.  This new idea uses an existing technology (our OSLC enabled email service), but adds a bit of new functionality to it.  My iPhone app to do this provides the voice recording capability as well as the capability to attach the mp3 file to an email.  It will also automatically play mp3 files attached to emails that I look at with my iPhone.  This iPhone app can thus use ANY of our OSLC Producers (gmail, hotmail, yahoo mail, etc.), and is considered an OSLC Consumer.

My wonderful idea gets me a number of customers, and some competition.  People using Android smartphones also want to have this capability.  So someone else creates an Android application that does the same thing, which is another OSLC Consumer product that can utilize the services of ANY of our OSLC Providers.  These are examples of how an OSLC consumer application can provide innovation, capability, and potential revenue.

At this point my OSLC Providers are getting a bit weary of being used as a platform for this wonderful new idea.  They would like to be able to offer related services of their own that provide value.  The first step is easy, they provide some metrics about the size, frequency, and usage of the Vox mail capability by their users (think Google).  This can be done by each in it’s own way, and it provides some transparency and visibility into how the underlying OSLC service is being used.  This can be used for billing purposes, for monitoring productivity, and to actually help measure the impact that Vox mail may be having on productivity.

The next step is an example of how a vendor can leverage it’s OSLC provider capabilities to help innovate and improve capabilities and potential revenue for the OSLC provider.  One of our OSLC providers looks at their collected data, and is able to determine that a majority of the usage is between Asia and North America.  A little bit of further study leads them to believe that Vox mail has helped improve collaboration and communication between people working together in Asia and North America.  It is easier for non-English speaking users to learn how to speak English, than it is for them to write in English.  Vox mail provides them a vehicle to communicate their ideas more effectively to their North American (and English speaking) counterparts.

So our OSLC Provider uses speech recognition technologies available to them to provide transcripts of the Vox mail that is being sent using their services.  As they recognize Vox mail messages, they then write a transcript of the mp3 recording into the body of the email message.  Now customers with limited connectivity can see the text of the messages being left for them (for a nominal fee).  This new capability is provided as a new OSLC service, a part of the overall email service.  Since this is interfacing with OSLC consumers in a standard manner, this innovation is immediately available to ALL OSLC consumer applications using their email service, even the ones that they don’t know about.  No more integrating with multiple different vendors.  Users of Vox mail love this new capability, and begin to migrate to the new OSLC provider product, while still seeing the same interface on their mobile devices (since they have not changed their OSLC consumer application, they are just pointing at a different OSLC provider now).  This provides their customers with increased capability and efficiency, and provides a potential source of revenue for them.

Finally we have a second OSLC Provider, but this provider does not provide an email service, they provide an archival storage service.  All of those mp3 attachments are causing people to hit the storage limits with their email services quite quickly.  So our second OSLC provider provides the ability to copy those mp3 files from the email provider, to their more cost effective storage areas.  It then uses OSLC services to modfy the emails, removing the mp3 files and replacing them with hyperlinks to their new home in the archival system.  We now have a vendor providing an innovative solution to an unanticipated problem, leveraging existing technologies, and setting up an integration to ANY OSLC compliant email provider.

So you have read through this entire scenario, and hopefully you have been able to understand things thus far.  What does it all mean, and what have you learned about OSLC?

  • OSLC stands for Open Services for Lifecycle Collaboration.  It represents a set of standards for how software development tools provide their services and data to the outside world.
  • There are OSLC Providers, which are the “web services” that provide the software development tool functionality, capability, and data.  They are providing the “plumbing” that you don’t directly see, but make use of.
  • There are OSLC Consumers, which provide an interface for users to the web services made available by OSLC providers, and may provide additional functionality for end users.  OSLC Consumers will consume the web services provided by the OSLC Providers.
  • OSLC helps decouple the data and basic operations provided by OSLC providers, from the “look and feel” and user presentation concerns of the OSLC consumers.
  • By providing a standard interface for various different tools, OSLC provides a way for various different tools to interface and integrate their data without worry about vendor specific implementations.  In our example, with a standard “email” OSLC interface, you could easily link email from one OSLC Provider to a second OSLC provider service that provides archival services for long term storage.  No more “mailbox limit has been reached” messages!
  • OSLC represents a new thought process on how software development tool capabilities are provided to development teams.  It removes complexity of multiple tool integrations, and frees data to be used by ALL tools without having to replicate data.  Related data is linked to (like our archival example above), and lives in only one place.

Are you a more technical reader that wants to know more about OSLC?  Here are some more technical sources of information that will get you started:

Innovate 2010 – A Jazz Insider Diary

(Note: I updated the links on July 28, 2010.  Blog originally posted on June 6, 2010)

I wanted to give people a sense for what happens behind the scenes at the annual IBM/Rational user conference, Innovate 2010. It might help explain some of the things that you missed at the conference, and give you some insight into how an event like this can be valuable to both IBM and it’s customers. I hope nobody screams at me for this “unauthorized” communication…… In the weeks leading up to the conference, I spent time preparing for my session on Agile Planning for IT and the workshop on Jazz Extensibility and the OSLC. I was sidetracked by some very good articles that provided an overview of the various different Agile variants (I posted links to these on my Jazz Links page), as well as a sample Jazz Administration Guide that I prepared for Jazz.net. (Note: I will update the link once the document “goes live”). The toughest part of the preparations is that we are pulling together materials for presentations that will help our customers, while still doing our daily jobs of helping customers. Like most things in life, it is a balancing act. I also have been seeing more demand for information on how to integrate and extend Jazz. Luckily I will be able to answer a lot of those questions with the Jazz Extensions and OSLC Workshop (written by Steve Wasleski, Philippe Krief, and Steve Speicher) that we will be running on Monday at the conference. There seems to be more energy and excitement building around Jazz in the past few months. The rest of my time has been spent checking logistics. Do I have everything I need? Will my family be OK while I am gone for a week? Do I have a ride to the airport?

Saturday June 5

Spent most of my time today in meetings preparing for the conference. Then I spent some time with a fellow team member (Philippe) checking out our lab environment for our OSLC and Extnesions lab being held on Monday. I spent a lot of time today talking to IBM people about Jazz in general, and some of the more common misconceptions about the Jazz technology. Our Jumpstart team is scattered around the globe, and meeting my teammates face to face for the first time was great. We are all so used to collaborating via Jazz, concalls and web sessions. It nice to be able to put a real face to the voices over the phone.

Sunday June 6

I have to apologize in advance for this blog posting. Due to the sensitive nature of some of the presentations being done this year, I cannot talk about EVERYTHING that I am going through this week. The problem is that I run the risk of sounding like a Jazz cheerleader. I really like the technology, and the promise that it holds for software development, but it really doesn’t mean anything unless our customers are able to use Jazz technology to make them more effective, more productive, more efficient, and more innovative. I spent most of the day in a Collaborative ALM workshop, which takes customers on a trip through an integrated set of Jazz tools, from Rational Requirements Manager (RRC), to Rational Team Concert (RTC), and Rational Quality Manager (RQM). I like doing these workshops because it is good to hear the comments and see the reactions from people who are seeing the Jazz technology for the first time. One of the people I sat with today had some very good onservations on the value that Jazz can bring. He is a CIO for one of our major Jazz customers, and his observations were really valuable, since they helped me better understand an Executive perspective on the value Jazz has brought to our customers. I then spent the night with some other members of the Jazz team going over our demo image of the Jazz products in the current development build. This stuff is really nice. It took me awhile to get my particular image going since I was running on Ubuntu (the rest of the team runs on MacOS or Windows). The funny part is that I ended up using a set of windows install bits! I reworked the launch scripts, and repointed to my native JVM, which took me about 15 minutes. It wouldn’t launch for me. It then took me a couple of hours (until 1am) to figure out that I needed to change the settings in the /etc/security/limits.conf file. I changed them to the setting below, and everything worked.

tomcat_user hard nofile 15000
tomcat_user soft nofile 15000

Now I am ready for tomorrow.

Monday June 7

We ran our OSLC and Jazz Extensions workshop this morning. I was pleased to see that our session was fairly full, and we had a lot of good questions and comments about OSLC and extending Jazz. We felt that the class went well, but feedback from any of our attendees is always welcome.  If you have ideas for different Jazz extensions that you have developed, or would like to see developed, please let me know. I am hoping to get some good real-world examples from our customers that I can share.

I have also spent a lot of time today answering questions about our approach to Collaborative Lifecycle Management (CLM).  It seems to be a really hot topic this year, as our customers want to be able to unite their teams with a common framework that allows tracability from requirements, to test artifacts, to defects, and to the team plans and work items in place to execute on those plans.  What makes it compelling to me is the way that transparency and visibility allows teams to collaborate and perform better.  This transparency also implies a high degree of accountability, which many organizations struggle with.

Tuesday June 8

Long day today, as I spent all of my day either in the Jazz Cafe, the Solutions Center, or giving my presentation on Agile Planning for IT (sorry, link will only work for Innovate attendees). The audience had some good questions, and seemed to be struggling with the most with story points.  That is the relationship between story points (used to provide an estimate, representing complexity), and time estimates (used to estimate effort).  I tried to explain the difference as best I could, but for those of you that I just confused, here are some links to some more eloquent speakers on the subject.

I hope that I was able to share some of the experiences that I have had with a wide variety of organizations, and that my attendees felt that their time was well spent.

Wednesday June 9

It has been a long week, but my last full day at Innovate 2010 has come to an end.  I am really tired, it seems like I have been talking non-stop for the past four days.  I prefer listening to talking, you learn more that way.  I met more people today who had the same questions about story points vs. hours when doing Agile estimation.  I really prefer story points, but I understand why people get confused.

I thas been a great week, and Ionly wish that I had been able to make some more sessions given by some of our customers on their “lessons learned” from deploying and using Jazz based products.  The customers that I did talk to seemed pleased with how the tools had been helping them drive culture change (to an more Agile philosophy) within their organizations.  It is one of those benefits that you never see in a business case, but it can have a real impact.