Why I don’t like IBM RTC as Source Control Management


In a previous post I already mentioned why the architecture of IBM RTC will never scale like git. As a developer you use an SCM and probably a project management tool on a daily basis. Even small annoying things make you feel bad and are time consuming. In this post I list some reasons why a move away from RTC to git will save real money for your organisation and make your work easier.

Maven integration

IBM RTC is not prepared to work with hierarchical structured projects. Maven is a widely used build and dependency management tool. In some cases it is important to have a hierarchical structure of your projects. Especially if you work with parent and child projects. Unfortunately RTC hinders you to check out parent and child projects in the same workspace. You can make it run but have to do some workarounds. There is also a good blog post about it by Mike MacDonagh (Working with Maven multi-module projects in RTC Jazz SCM with m2). He talks about RTC v3.x but it is basically the same as with v5.x.

There are no reasons why you couldn’t do it with git. git does not know anything about a project. It is not it’s business. RTC seams to manage things that it shouldn’t.

IDE integration

All current IDEs have git support in their basic versions. I don’t know of any Java-IDE which comes with IBM RTC integration out of the box. This means you have to install it manually. In case of Eclipse it means to download about 500 MB(!) of plugins. With every new version of Eclipse you have to wait for the new IBM plugin before you can use the new features. You got the same situation with Visual Studio, IntelliJ and NetBeans.

Comparing file versions between branches / streams

git_branch_compareWith git you can easily compare file versions from different releases in different branches. The history view shows all very clearly (image on the right side).

In IBM RTC you can’t do that. It is a recommendation from IBM to create a new stream for every release. At first sight it might look pretty but if you really work with it you see the disadvantages:

  • It is complicated to merge streams.
  • There is really no way to compare your file from one stream with another stream until you load both streams.
  • It is even impossible to see if the file changed in another branch.

Merging

Some people say the merging process of git was better than the one with IBM RTC. Maybe I will post a direct and detailed comparison between those two tools later.

Complicated commits / delivery

This is a quick comparison between the git way and the RTC way.

The git way

Either you use the console:

git pull
git commit -m 'your comment'
git push origin master

Or you use the awesome Git Staging view from Eclipse:
Egit-3.1-StagingView

To commit and push there are only three steps:

  1. Drag and drop the Files to your staging area
  2. Add a comment
  3. Click the Button “Commit and Push”

The RTC way

IBM RTC didn’t manage to create such a smooth view. Every action needs lots of server calls because you don’t have a local repository. They added a lot of asynchronous calls which lets your view update randomly. You sometimes wait for ages depending on how big your component, stream, change set or history is.

You need to do make at least five steps. It includes context menus, keyboard strokes and tree navigation:

  1. check-in your changes (3 clicks)
    rtc-commit2
  2. Open the outgoing folder under your stream and find your newly created change set.
    rtc-commit3
  3. Either click on it once and press “F2” or wait a second and perform another click.
  4. type your comment
    rtc-commit4
  5. Deliver (another 2 clicks)
    rtc-commit5
  6. Sometimes you have to answer some complicated questions about not checked-in changes.
  7. Then some asynchronous tasks start running and mostly after a second or two everything is delivered.

Working offline

As you have no local repository every interaction with RTC requires a server call. It is not designed to work offline. Git always had that use case in mind.

Git ecosystem

Git is very popular, widely used and extendable with hooks and triggers. Therefore many open source projects emerged around it. Just a brief list:

  • github.com: “Social coding”. The most popular git repository. I social web ui with issue tracking and many other integrations.
  • gitblit: Github like open source server ready to host on your local infrastructure.
  • redmine.org: Project management web application with git integration.
  • Jenkins / Travis: Build servers best integrated with git.
  • Atlassian Confluence: Team collaboration for software development.

You need really good reasons to make a decision against this tools and for a proprietary SCM.

Licenses and hardware resources

IBM RTC is expensive and resource consuming. I am probably not allowed to tell you the price you have to pay. But believe me it is expensive. To keep RTC running you need:

  • RTC-Server on a heavy weight Websphere
  • An expensive database like DB/2 (or MSSQL or Oracle although not recommended)

Git needs:

  • A filesystem for your repositories

You will install another tool like those mentioned above if you need issue tracking or project management. They will mostly run with an apache2 or apache tomcat and a MySQL database server.

Other issues or feedback?

Let me know if you got further pros or cons of RTC or git. I will update this post as I stumble upon more points.

Advertisements

9 comments

  1. Telemako · October 7, 2016

    I’m afraid you have spend more time playing with Git instead learning how to use RTC. Of course you can compare versions in different streams. You can deliver just with 1 click, and you can checkin offline from the repo to your own repository wks. And this is only de v.4

    • Roman Schaller · December 3, 2016

      Too bad that our consultants did not mention those possibilities. Or if I remember this correctly they didn’t work with our large streams.
      At the time of writing I had way more experience with CVS and RTC than with git. So I wouldn’t say that I wasn’t trying to learn how to use RTC. In fact there was a whole team responsible for finding solutions together with the IBM support. As this didn’t work out well we decided to move to git. They are still happy with this decision.

      But: If you want to write a counter statement, I would be happy to add a link to it.

  2. P K CHAUDHURI · November 11, 2016

    There are Hundred more capability on RTC which you did not mention

    • Roman Schaller · December 2, 2016

      Thank you for your reply. At the time I wrote this article I worked with a company where we had a quite big RTC installation. There were some IBM consultants and even RTC developers who gave us those recommendations.
      But I must say it is now almost 2 years later. Maybe there have been great improvements.
      The company I am talking about has now moved away from RTC and is very happy with that decision.

      If you want to write a counter statement I would be happy to link to it.

  3. Ashok · December 2, 2016

    Nice comparison with lot of details.. Thanks, Roman

  4. pcreddy · July 14, 2017

    Nice Comparison.. more practical view. do you have any further updates to this thread.

    • Roman Schaller · July 15, 2017

      Hello pcreddy

      Thanks for your comment. I have no further update. Just that this company does not use RTC anymore and does not regret the shift to git. I don’t know of any organization having troubles with git. So I see no reason why one should use RTC instead.

  5. Pravin · August 22, 2017

    Good comparison but looks like the focus was more on promoting GIT as source Control. I havent used much of GIT but lot of RTC.
    All the stuff that you mentioned like viewing merge graph, deliver on one click, offline work, etc is possible in RTC in a very simplified way.
    RTC might be costly, but it gives you everything at one place for e.g. Change management + Source Control + Planning + Build management + dashboard + reporting + integrations with other tools. I am not promoting RTC, but to achieve the same features, you need multiple tools integrated otherwise.
    I am surprised that IBM consultants agreed to the comments you posted 🙂

    • Roman Schaller · August 23, 2017

      Thank you Pravin for your comment. You may be right that RTC delivers all this features in the meantime. I didn’t use it since then. I am currently quite happy with the integration that is delivered by tools like github or bitbucket. And I think a lot of the people out there are going the same path. It is a much more open way of integration.
      I still think IBM should have been going a more open way and embrace the community instead of reinventing the wheal. They could be the bitbucket or github of today. But now they are ‘the expensive tool programmer are not familiar with and have to use at their company’.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s