Manage hardware aspects of your projects through agile development

Switching from waterfall to agile development

Waterfall development has a reputation in the software industry for not being able to handle rapidly changing requirements, which is becoming more obvious in state-of-the-art software development. However, in some areas such as hardware development, waterfall is still the more popular development method. In this article, we introduce challenges and best practices on how to run such projects through agile development by using IBM Rational Team Concert.

Share:

Wenwei Tang (tangww@cn.ibm.com), Software Engineer, IBM

author photoWenwei (Aaron) Tang joined IBM in 2009 after he got his masters degree from Shanghai Jiaotong University. He currently works on IBM System x Tools Center.



12 October 2011

Also available in Chinese Russian

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
A query with predefined tags as filters

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
Use impediment item to track 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
Tabbed wiki pages in overview page

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.

Defect tracking

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.


Summary

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.

Resources

Learn

Get products and technologies

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


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. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

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.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

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

 


All information submitted is secure.

Dig deeper into Rational software on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Rational, DevOps
ArticleID=765176
ArticleTitle=Manage hardware aspects of your projects through agile development
publish-date=10122011