Finding lost content in RTC SCM: the good references… and some rough way

August 14, 2014

For the past couple of months, I’ve acted as the Rational Team Concert (RTC) SME/expert for a small number of IBM interns developing for a promising project (around IBM BlueMix platform). Especially around the RTC project set up and more regularly on RTC SCM-related trainings and questions.

In the past days, I’ve helped one of these interns at recovering some source code in RTC. This area is actually well documented:

Reference articles / resources:

  1. [Jazz.net] Topic: “My sandbox is out of sync with my repository workspace.  How did that happen?  What do I do?” of the Jazz Source Control FAQ
  2. [Jazz.net] Finding Lost Content with Rational Team Concert (by H. Fraser-Dubé)
  3. [Blog post] Navigating the history of your file changes in RTC 4.0 (by J. Diaz)

In the case raised by this intern, I was mentioned that:

  • for some times already, he experienced some RTC error message explaining his RTC sandbox was “out of sync with the repository workspace“.
  • since morning, he could not load a particular SCM component anymore (despite other members of the team still could do it). Loading would systematically fail for some obscure reason (linked to an “Error processing changed links in project description file. : is an invalid character in resource name ‘C:’”) associated to the .project file. I’ll avoid jumping into cause since I still have no clue here (maybe an Eclipse problem, but who knows…)

Having checked for the availability of a backup with the intern, my first thought on this was: “it should not be of a big deal anyway”. I already had pointed him the article [1] as a one-stop-shop for recovering from such situations (esp. by unloading/reloading of components).

But it turned out that, in this particular case, we couldn’t have the problem fixed. As I mentioned before, the component reloading would systematically fail. Based on this, we decided to start fresh and recreate an Eclipse sandbox and a new repository workspace. As a result, we got… the same “invalid character” problem. Humhhh… that was interesting…

Our next action consisted in switching back to the initial sandbox (now with all the components unloaded and so far no more loadable). Investigating the repository workspace history, we discovered that the source code modifications that were checked in (but not delivered) in the past 10 days were simply missing… Despite of the “Automatic Check-in policy” option (settable in the preferences of the RTC Eclipse Client) that I advised the team to use from the first day. This was a surprise. Possibly linked with the fact the sandbox was out-of-synch with the repository workspace for a while now. Or not.

We then got to article [2] that explains some good practices for recovering from a situation where you apparently lost some source content. We also checked blog post [3] which finished to provide with explanations for navigating the SCM history. As a result, we’ve checked the various approaches available:

  • Eclipse’s Local History: unfortunately, it was N/A in our case (at least at the UI level) since component would fail to load up to completion.
  • RTC Source Control’s Backup shed: was N/A in our case as this option needs to be activated beforehand (and is not the default).
  • Check-in History (New in RTC 4.0): was not a solution to us as the last check-ins would not appear in this history.

TheRoughWay3

Experimenting the rough way….

From there, I’ve wondered if we could directly access the Eclipse history (the same one we could not take benefit from Eclipse menus) folder. As a result, I found article [4] and located this folder :

<eclipse_workspace>/.metadata/.plugins/org.eclipse.core.resources/.history/

Reference articles / resources:

Checking its content, it’s pretty ROUGH to parse by a human: files are disseminated in many folders, file names are unrecognizable… But we circumvented part of the problem by proceeding to a “Search in Files” from a text editor (like TextPad, Notepad++, etc.) using a filtering based on the Java Class names the intern knew he had made major changes for. Finally, he could retrieve the latest versions of the Java classes he had modified in the past days. Pffiouu…

Solved a problem for now but…

Again, this is pretty rough. But I found it interesting to share with the community in case you’d fall into this seldom situation where article [1] [2][3] could not apply to you. Consider it as being the LAST option to choose for recovering your latest source code. In all other situations, RTC provides a range of far more handy solutions depicted in the list of articles above.

… planning to identify and solve the core problem.

This intern now smoothly accepts and delivers change sets in RTC again. Though this is not completely satisfactory. We miss the root cause of the initial problem (Eclipse-sided or different ?). Stay tuned as I shall update this blog post when it is properly identified.


Adopt Rational Team Concert (RTC) and RTC Enterprise Extensions (RTC EE) faster and better (Part 2/2)

April 8, 2014

This is the second article of series of two dedicated to Enterprise tooling adoption. In the first article, we’ve discussed some core concepts and results borrowed from social psychology field. We’ve noted how familiarity with a new tool is important to minimize resistance to adoption.

In this second article, we provide some supporting material depicting how to keep the right focus when adopting some new Enterprise tooling. First from a general stand-point and then for the specific adoption of:

These latter ones should be seen as extra layers coming on top of the initial layer of Enterprise tooling adoption.

Choice of a radar screen presentation…

The radar screen format is self-explanatory and introduces the intuitive idea of refining cycles and continuous improvement. Which is exactly how adoption should be conducted, i.e. each of the points on the radar should be reviewed on a regular basis.

Intent for me is not to comment on each item of these charts (*) but rather let them “as is”. For now, this rather comes as a “big picture” that you may find of a good support when either discussing with your local IBM team or business partner or when preparing the next steps for making adoption at your company progress.

(*): that would be done in a live meeting between yourself and a subject matter expert (from IBM or a Business Partner).

Note: If you’re looking for something more prescriptive on how to deploy RTC/CLM, please check the Reference links below.

… and how to use it.

Before deployment, you should wonder if there is an action plan against each of the points on your radar. If yes, what will be the impact of each action plan on the resistance to change (R.T.C) ? If no, what will be the impact of this lack on the R.T.C. ?

During deployment, you can make a retrospective of the impact of your actions plans on the R.T.C.

At the end of each deployment iteration, you should perform a retrospective to identify what actions were the most effective for reducing R.T.C.

1. Adoption of Enterprise tooling: radar screen for success

EnterpriseToolingAdoption

Click to enlarge

Order of adoption: RTC or RTC EE first ?

Shall you start adopting RTC in your distributed or in your mainframe teams ?–> A sound approach is to start with the most critical to you !

2. Adoption of RTC: radar screen for success

RTCAdoption

Click to enlarge

3. Adoption of RTC EE: radar screen for success

RTCEEAdoption

Click to enlarge

References:

Acknowledgement: Thanks to Simon Washbrook for his review and always useful remarks.


3 Things to know for facilitating Enterprise tool adoption (emphasizing the human and change management factors) (Part 1/2)

April 4, 2014

In my recent engagements with mainframe customers (and especially with the project managers in charge of the in-house deployment of Rational tooling), I identified a common pattern where we start speaking in-house processes and numbers (of developers or teams), their IT architecture, etc. but where – at some point of time – we take a step back and start discussing how the adoption of their new Enterprise tooling went so far, how it was implemented and the possible concerns that remains.

A common pattern… and one point which needs to be emphasized.

Innovation is a fact ! As is the resistance to change by end users and the necessity to respect company policies. These are the biggest hindrances to a successful (Enterprise) modernization. To mitigate these risks, an appropriate strategy (including adoption, management of expectations, roll-out, training, etc.) is the key for avoiding shelf-ware or rejection.

 A series of TWO articles…

In the first article, we will discuss some core concepts and results from social psychology field.

In the second article, we will elaborate on how customers could keep the right focus when adopting some new Enterprise tooling. From both a generic perspective and in the context of the specific adoptions of IBM Rational Team Concert (RTC) and IBM Rational Team Concert Enterprise Extensions (RTC EE) respectively.

Core concepts from social psychology

The purpose of this section is to leverage some core concepts and results from social psychology space. We want some valid terminology  clarifying what one could feel to a certain extent… but yet in a fuzzier way ! Note: to this regard, this post shares a common viewpoint with a previous blog post.

The couple of definitions and concepts I found useful to exhibit in the context of an Adoption process are the following:

  • Effort Expectancy (E.E.) aka “perceived ease of use”
  • Performance Expectancy (P.E.) aka “perceived usefulness”
  • Resistance to Change (R.T.C.)

In the context of a Learning process (borrowing from the field of pedagogy), you can think of:

Writer’s note: as you’ve certainly figured out, there is some overlap in acronyms: “RTC” and “EE” could be interpreted in two ways here… To disambiguate, I shall using the orange color for terms coming from social psychology. That way, Rational Team Concert (RTC) and Resistance to Change (R.T.C.) should not be confused. Same thing for EE and E.E. !

Application to Information Science and Technology

Here I’m relaying some previous results from the following source: “Resistance to change and the adoption of digital libraries: an integrative model” [JASIST’2009]

  • «A user’s intention to adopt a new technology is influenced by a variety of beliefs and perceptions
  • «Domain-specific R.T.C. is both a direct and indirect antecedent of users’ E.E. and P.E.»
  • «Understanding the role of R.T.C. in user adoption can help designers and managers create a better fit between systems’ design and their intended users’ personal characteristics.»

Encourage familiarity with the new tool…

  • «To encourage users who are high on R.T.C., new systems should be designed such that they are not perceived to embody a lot of change. This can be done by retaining as many characteristics of older systems, computerized or not.»
  • «Systems’ implementation and users’ training could be better done if users did not perceive a new system as embodying much change.»
  • «When a new system is introduced, familiar aspects of a new system could be highlighted to mitigate users’ resistance.»

… and demonstrate benefits […] in the context that is important to adopters.

  • «Illustrate to users the potential benefits of the system, and how these can be demonstrated.

by using testimonials, by linking resources to course listings,  and in any other way that will enable users to demonstrate the benefits in the context that is important to them. »

Conclusion

The content of this article could appear far from IT space in the first hand. In the second article, we will elaborate on how customers could keep the right focus when adopting some new Enterprise tooling. From both a generic perspective and in the context of the specific adoptions of IBM Rational Team Concert (RTC) and IBM Rational Team Concert Enterprise Extensions (RTC EE) respectively. Keeping in mind the concepts and results from social psychology…

Thumbnail Part2


RTC / RTC EE: adopt terminology first !

January 24, 2014

Last week,  I was on a business trip to China with a colleague of mine. We met multiple local IBM teams and visited a couple of financial customers.

During our customer-facing sessions, questions raised by the customer were technical in essence which is… fair enough as we’re part of the RETT (Rational Emerging Technologies Team). But some questions revealed:

  • some misconception about the product (RTC / RTC EE)
  • some reluctance of parts of the customer organization for adopting a newer, yet different but more modern tool with safer workflows.

As an illustration, it appeared that the technical lead in charge of the RTC EE adoption at one of these customers still used the terms of checkin/checkout for RTC SCM when discussing with us.

Despite:

  • RTC does NOT have a concept of checkout (although RTC does support resource locking – currently at the stream-level)
  • Customer organization had started migrating to RTC EE almost 2 years before…

I see multiple drawbacks in this:

  • Sticking to the terminology from a previous tooling in technical discussions about the capabilities of a newer tool is confusing. It basically assumes features that are not present in the product or, at least, not as is… As such this mismatch is a brake for adoption of the new features.
  • Actually, I was even more concerned that this speech was coming from someone in charge of the adoption of our tooling. Assuming that most of developers in the customer organization would share the same terms…

As a result, I decided to clarify and made the point that in RTC, you load projects and components, you checkin change sets, and deliver them to a stream. This change in emphasis made it simpler to discuss business scenarios to be implemented in RTC EE (SCM here) at this customer’s.

Terminology-first

A disconnect in terminology is more important than it seems:

  • It introduces a gap compared to the proper concepts, which are basic prerequisites for elaborating the right workflows in RTC to implement a business scenario.
  • It’s a good indicator that trainings and pilot phases missed at least some targets. Basically the “infusion” of the up-to-date concepts that match the tools used by developers on a day-to-day basis.

I came up with the following ideas:

  • Answering customer initial questions is only ONE piece of the solution.
  • Other aspects (not raised by customers) need to be addressed with the same attention:
    • the return over experience in the training area,
    • the return over experience in the pilot projects,
    • the management of the change (from various point of views: organizational, managerial, etc. ),
    • the adoption in general.

Taking the whole combination into consideration is key for success.

In the contrary case, an ultimate bad effect would be that SCM management simply do not trust their developers wrt. their usage of the new tooling. Possibly triggering… a second bad effect : having the SCM management to try enforcing too much process in the tool to substitute the lack of training of their developer. Not the right route anyway…..

As a recap, here are the simple things that should be kept in mind when adopting RTC / RTC EE:

  • Even if adoption is accomplished in a stepwise manner, make sure everyone uses the RTC terminology asap in your organization.
  • If you’re in a team focusing on adoption of RTC, make sure you replace questions/feedback/concerns of your developer in the correct terminology.

How to best use RRDI data dictionaries for CLM Reporting

August 28, 2013

In the previous post Landing page for CLM Reporting with RRDI or Insight, I recapped on the CLM reporting uses cases options:

  • Check/Use the Out-of-the-box reports
  • Author your own reports

Links on both OOTB reports and RRDI CLM applications dictionaries for multiple versions were provided and chosen concise presentation  received positive feedback.

A feedback I recently heard about was that our customers could sometimes miss the information on how to best use these data dictionaries.

This is actually a NON gap since the CLM Information Center provides such information HERE.

ReportingDataDictionnaryFrom4.xInfoCenter

I recommend you read this topic so that you get a clear understanding of how to use RRDI data dictionaries.

Don’t miss this useful information !

Acknowledgment: thanks to Amanda Brijpaul, from Rational User Technologies team, for pointing me this important resource.


CLM 4.0 Enterprise Deployment tasks: Oracle DB, proxy, IHS, SSO setup and RRDI configuration

June 27, 2013

Sometimes it can get difficult to narrow down all pieces of information you need to perform some specific administrative task on your CLM/RTC/RQM/RQM/DM environment.

As part of the Jumpstart team, I regularly provide guidance to customers in the CLM area covering RTC, RQM, Enterprise deployments, upgrades, customizations, OSLC and Reporting. As questions about CLM Administration and Reporting show up frequently, I use to collect and keep preciously links I can refer to later with customers. Until very recently, my personal “Top 3” included the following resources:

Until… I found out that Rational Support had provided very useful videos in the CLM 4.0.1 Education Assistant

RRDI configuration
Prepare Linux libraries for RRDI (9 min video)
Install RRDI software (4 min video)
Create an Oracle database for the RRDI content store (9 min video)
Install Oracle 32-bit client software for RRDI (6 min video )
Configure Oracle client environment for RRDI (9 min video)
Preparation for RRDI setup process (7 min video)
Run RRDI setup wizard (9 min video)

 []

WebSphere and IBM HTTP Server configuration
Public URI and host file configurations (3 min video)
Install IBM WebSphere Application Server (WAS) Network Deployment (ND) (8 min video)
IBM HTTP Server (IHS) configuration and self-signed SSL certificate (8 min video)
Setup the IBM HTTP Server (IHS) admin server (6 min video )
Application server profile creation (8 min video)
Setup WebSphere Application Server (WAS) global security (11 min video)
Setup HTTP server proxy on RRDI application server instance (20 min video)
Add a second application server profile to the HTTP server proxy (19 min video)
Add a third application server profile to the HTTP server proxy (8 min video)

[]

CLM Solution Configuration
Oracle database user and table space creation (5 min video)
Configure profile JVM properties to support CLM WAR files (9 min video)
Deploy the CLM WAR files to the first server (6 min video)
Update the CLM server plug-in with the profile XML file changes (6 min video )
Virtual frame buffer requirement and creation for Linux Requirements Management Converter (4 min video)
Configure profile JVM properties and deploy CLM WAR files to second server (8 min video)
Configure Single Sign On (SSO) with HTTP server and WebSphere topology (5 min video)
Run Jazz Team Server (JTS) setup wizard (17 min video)

This is my new “Top 4” I wish I had complete a little earlier.

Thanks to Rational support  for providing these videos. Hope this blog will (modestly) provide the additional visibility this useful material deserves.

Note 1: while the title page of the Education assistant states it’s for “IBM Rational Quality Manager“, this content is more largely applicable (to RTC, RRC, etc.)

Note 2: updates for 4.0.1+ versions are not available at this time AFAIK.


A RQM usage anti-pattern: multiplying test scripts associated to a test case

May 22, 2013

During discussions with customers who start using Rational Quality Manager,  I sometimes get the following questions:

I’ve associated MULTIPLE test scripts to my test cases. Now when I execute them, the LAST execution status returned when selecting a specific test script OVERRIDES previous execution status (with a different test script associated).

Seems like RQM is “loosing” previous execution status each time !  This is a bug, right ?

Actually no, this behavior is NOT weird. You need to get the logic of the RQM tool wrt the semantic of the relationship between test cases and test scripts.

RQM-TestCaseTestScript-nm-Linking

Let’s recap it here :

  • A Test Case answers the question : “what am I going to test ?” It defines the things you need to validate to ensure the system is working correctly and is written to be environment-agnostic.
  • As sketched in the model above, you could have AS MANY test scripts associated to a test case than desired…

BUT there are some best practices associated to this model. You can have multiple test scripts associated to a test case provided each test script tests the SAME functionality. This would typically be the case for:

  • Running a test case in different test environments (thus implying non identical steps).
  • When you have a manual test script and a robotic test script (e.g. RPT, RFT, Selenium, etc.)

Once this basis is stated, customer figure out they have followed a RQM anti-pattern which needs to be fixed.

While the solution to adopt is very dependent on the customer context, a possible remediation includes a refactoring work through the splitting of the test case content into several test cases, the merging of the multiple test scripts into a single test script (provided this doesn’t create an ugly monolithic test piece), etc.

Question: for running a test case in different test environments (not an anti-pattern), where shall the choice of the test script be done ?

RQM-2TCERS-2TestScripts

Answer:

  • As an example, above snapshot presents the TCER section of the test case TC01.
  • It includes 2 TCERs (which were generated for 2 different test environments: TC01_Chrome… and TC01_Firefox…). Test script Script for Chrome addresses TC01_Chrome… environment and Test script Script for Firefox addresses TC01_Firefox… environment.

CLM Reporting: a landing page for RRDI or Insight

May 6, 2013

As part of Jumpstart team, I found myself answering customer questions about the reporting capabilities in CLM. As a result of this, last year, I’ve consolidated and shared information/guidance on the subject through a MindMap (see blog post: “Get things clear about the CLM 2012 reporting capabilities“). Some of our customers provided me with great feedback (which is still welcome BTW !).

As an assiduous reader of Jazz.net forum, I see that questions like the following are common:

I want to create a RTC/RRC/RTC/CLM report with this information plus this other information….  how should I proceed ?“.

Say 90% of the time, a pragmatical 1st answer advise users to check the existing/OOTB reports available in CLM. Then, say in half of the cases, directions for creating custom reports are provided. Just like if it was a pattern…

RRDI-Insight-LandingPage

It’s important to note that pretty much ALL the information exists ALREADY (in the CLM InfoCenter, the Jazz.net/DevWorks articles and wikis, etc.). The kind of gap this blog post aims at filling is a landing page providing a useful answer to the pattern described above. It shall present key information for both:

with the following characteristics:

  • Content shall indifferently cover release versions: CLM 2012, CLM 2011.
  • Format may be not a (Mind)Map. As some users revealed to me they could be reluctant to this format. Not to change my mind on this… Just adopting people’s preferred communication channels. I’ve chosen a table format this time.

Let’s go for now…

1) List the Out-of-the-box reports

All reports [Wiki] OOTB Reports (also incl. BIRT/RRDG-based reports)
Reports by domain
(in progress) CLM InfoCenter CLM 2012/4.0 InfoCenter CLM 2011/3.0.1 InfoCenter
RTC/CCM (*) RTC/CCM (*) RTC/CCM (*)
RQM/QM RQM/QM RQM/QM
RRC/RM (*) RRC/RM (*) RRC/RM (*)

(*): see “Table 2” in the referenced page.

2) Author your own reports

Data models [Wiki] CLM Framework Manager Data Model Details
Dictionaries
(in progress) CLM InfoCenter CLM 2012/4.0 InfoCenter CLM 2011/3.0.1 InfoCenter
RTC dictionary RTC dictionary RTC dictionary
RQM dictionary RQM dictionary RQM dictionary
RRC dictionary RRC dictionary RRC dictionary
Data warehouse metrics
(in progress) CLM InfoCenter CLM 2012/4.0 InfoCenter
Data warehouse metrics populated by CLM application data Data warehouse metrics populated by CLM application data
 “How To”s
[CLM 4.0 InfoCenter]
Tutorial: “Creating reports with Query Studio
Deploying new report resources
[devWorks]
Custom reporting using work item relationship links” by M. Prout (April 2013)
[Jazz.net forum / Article]
“Display reports from Report Studio in the RTC dashboard
How to make RRDI Reports work like RTC widgets?
How can I get a custom BIRT report to show on a dashboard?
Way to export reports in report studio so they can be uploaded to another server?
How to install missing (i.e. not deployed by default) reports in RTC
[Videos]
Dozens of useful videos in “RRDI Playlist” by Rational User Education. Covers installation aspects, new features, introductions, building reports, etc.

What if some complementary information is required ?

  • For “hands-on”-oriented guidance, I’d advise to read and complete the Reporting Workshop.
  • For a selection of key resources on a broader scope  (e.g. reporting for CLM in general including document generation (RRDG, RPE), installation procedures, troubleshooting tips, etc.), have a read at this blog post (and MindMap) “Get things clear about the CLM 2012 reporting capabilities” (note: it’s updated on a regularly basis – last update as for today: May 1st, 2013).
Last updated: July 18th, 2013 (added links to Jazz.net “in progress” InfoCenter)

%d bloggers like this: