Our team has been using Rational Team Concert to help us move from waterfall to agile development methods. Still, there are teams who are hesitant to try an agile approach for the following reasons:
- They have multiple dependencies from various sources, such as the hardware delivery schedule, system test team, open source software, independent hardware vendors, system building block owners, and so on. These dependencies make it hard to track relationships and their progress.
- They have to make project plans for the following year, but it is difficult when more than half of the work items are for hardware support.
- Most teams prefer reports in spreadsheet format; however, this approach is error-prone due to poor version control. Teams need to get reports that are consistent, accurate, and in real time.
- They want a way to handle requirements plans and priorities in a well-ordered repository throughout the development cycle.
- They want an easier way to review and discuss projects on a rolling basis.
In agile development, iterations are the main concept, which means smaller pieces of working functions are delivered in a high frequency instead of being delivered as an all-in-one package after a long period of time. Full dependencies and detailed plans are not entirely addressed at the beginning of the project. Instead, plans are more general. With the help of Rational products, plans and dependencies can be easily updated and synchronized so that stakeholders can have consistent up-to-date information within the tools and discuss these artifacts in a centralized regardless of where each team member is geographically located.
Considerations for switching to agile development
When our team switched to agile development, we made some customizations in Rational Team Concert and refined the process for running our ToolsCenter projects.
Manage project data by creating queries
One of the reasons we use Rational Team Concert is because it offers a way to dynamically display real-time data in different views. To leverage this feature, we created several queries that follow the predefined rules in our projects.
A majority of our work items support different types of hardware in the IBM System x server family, including new systems and option cards, all of which are provided by different parties both inside and outside IBM.
In Rational Team Concert, we create a user story for each hardware type. To support the hardware type, we depend on the hardware arrival date, CIM providers and utility from IHV, device drivers and firmware from IBM BBO (Building block owners) who are groups of people, each for a specific hardware vendor.
Sometimes, there are delays in our project schedule. To organize our status, we defined several tags for different situations of hardware dependencies. Based on the tag, we created a specific query to see all the user stories for hardware support under such circumstance. In the figure 1, we show the query details for the hardware that has not yet cleared the firmware or driver delivery date from the BBO.
Figure 1. Tag query
Track dependencies that have impediments
As one of the key challenges in our projects, dependency tracking plays an important role. Our project is a software suite that includes diagnostic, update, configuration and deployment features that depend on each other. Also, other teams provide component technology support for us. Sometimes defects must be fixed in these components before we can integrate them into our specific tools and have the test team verify them. Situations like this indicate that there is a dependency.
In Rational Team Concert, both our team and our component teams use the same repository named ToolsCenter. We use the native feature called impediments to track such dependencies.
As shown in Figure 2, the work item 477192 in the diagnostics tool depends on the code change in the underlying IBM customized Linux operating system. To do that, we first created an impediment for the depending team named CCB. Then, we added the impediment as a link to the original work item 477192 as shown in the top right of Figure 2.
Figure 2. An impediment is used to track a dependency
Organize product backlog by creating wiki pages
In our transition, we recognized the advantage of wikis and used them in Rational Team Concert. We believe that simplicity and being straightforward is one of the most recognized reasons that people prefer wiki page. For our project, it was important to put the things together in an organized way and be able to get specific information in the shortest time.
We created several tabbed pages in the product backlog of each release to provide information in the following categories:
- Overview: Contains the most important data, including functional specifications, function map, sprint plan and team members. Milestones are displayed as a snapshot.
- Accomplishment: Contains information about what is finished each week. The team leader updates this page weekly with one or two items.
- Defects: Contains a weekly defect analysis chart. This chart is developed from defects that we keep in Rational ClearQuest. Information about where to open defects for specific teams is also kept in that page.
- Field issue and support: Contains one table with predefined columns that are necessary to describe all information for a single field issue.
- Focus area: Contains main items for the team to focus on for the next week.
- Innovation: Contains ideas that come up during project development.
- Key issues: Contains key issues emerging during project execution
- Lessons learning: Contains best practices and pain points in each week.
Figure 3. Wiki-based project overview
Each tab represents snapshots of different aspects of our projects, mainly used as input for weekly status review meeting.
Before each status review, team members update each tab page with the latest status. During the review meeting, stakeholders have a general understanding based on this information so that conclusions and decisions can be achieved faster.
The Accomplishment page is designed mainly for our teams’ awareness of the progress, which does not add effort to the maintenance. Contents of the Defects page are now under construction and might be used in the future when we have defects management transitioned totally to RTC. The Field issue and support and Key issues pages where stakeholders pay much attention to since agile development is just designed to address issues as soon as possible. With the information summarized in these tab pages, we can move more quickly and smoothly on discussion and making decision.
After the review meeting, summary and action plans are often determined and updated in these tab pages as a starter of next week. Such process will be run over and over during the entire project execution.
Next steps for project transition
Although our team moved most of our project tasks to Rational Team Concert, the following tasks that are still in transition.
As noted at the beginning, we use Rational ClearQuest to manage all defects, which has not yet been integrated with RTC in our projects. To make our projects more centralized, the solution for bi-direction synchronization between Rational ClearQuest and Team Concert might be the choice to be deployed in the RTC server side in the future.
Source code management
Different parties have their own preferred tool for source code management, but in terms of goal on centralized management and better integration. Jazz SCM also is a good choice along with RTC.
By identifying major pain points that existed in projects with dependencies, this article presented best practices on how to leverage Rational Team Concert to resolve such issues during project execution in an efficient and effective way.
This article also presented a set of methods on how to run a project, especially hardware projects, by using agile development methods. You can use this as a guide for moving to agile development, or as a set of best practices if you already develop in an agile environment.
- Find Rational Team Concert articles and links to many other resources on the IBM developerWorks page. You can also watch the Using Rational Team Concert in a globally distributed team webcast or a demonstration of the Dashboards and reports, or listen to the podcast about IBM Rational Team Concert and Jazz.
- Visit the Rational software area on
developerWorks for technical resources and best practices for Rational
Software Delivery Platform products.
- Stay current with developerWorks technical events and webcasts focused on a variety of IBM products and IT industry topics.
- Attend a free developerWorks Live! briefing to get up-to-speed quickly on IBM products and tools, as well as IT industry trends.
- Watch developerWorks on-demand demos, ranging from product installation and setup demos for beginners to advanced functionality for experienced developers.
- Improve your skills. Check the Rational training and certification catalog, which includes many types of courses on a wide range of topics. You can take some of them anywhere, any time, and many of the “Getting Started” ones are free.
Get products and technologies
- Rational Team Concert trial downloads (free):
- Evaluate IBM software in the way that suits you best: Download it for a trial, try it online, use it in a cloud environment, or spend a few hours in the SOA Sandbox learning how to implement service-oriented architecture efficiently.
- Join the Rational Team Concert discussions or ask questions in the Jazz.net forums.
- Rate or review Rational software. It’s quick and easy. Really.
- Share your knowledge and help others who use Rational software by writing a developerWorks article. You’ll get worldwide exposure, RSS syndication, a byline and a bio, and the benefit of professional editing and production on the developerWorks Rational website. Find out what makes a good developerWorks article and how to proceed.
- Follow Rational software on Facebook and Twitter (@ibmrational), and add your comments and requests.
- Ask and answer questions and increase your expertise when you get involved in the Rational forums, cafés, and wikis.
- Connect with others who share your interests by joining the developerWorks community and responding to the developer-driven blogs.