|Read more about this book|
(For more resources on IBM, see here.)
Software development involves people, knowledge, technique, tools, methodologies, and more. Managers, software architects, developers, and quality assurance teams have many challenges to deal with, particularly with the increasing geographic dispersion of software services teams across the entire globe. A lot of focus in the software industry has been on improving the productivity of these global teams, with particular emphasis in recent years on giving teams a seamless experience in collaboration.
Consider some of the problems we normally encounter when we communicate and collaborate with colleagues on a software development effort:
- When you need to see if a colleague has arrived at work, you actually go to their desk and see if they’re there.
- When you want to talk to a colleague about an issue, you meet in person or make a telephone call to discuss.
- Information on an employee’s absence, such as when he is on vacation, is often stored in a shared spreadsheet, which may not be properly kept updated and may not be integrated with the project plan.
- Because you don’t know everyone’s vacation schedule, you may be waiting for a response from a colleague, only to learn afterwards he is out of the office.
- Likewise, part-time consultants may have irregular schedules that change, making it difficult to know when they are available for work.
- Regular updates to the team on the project’s progress requires status meetings, which may require gathering everyone into one place, and take time.
Software development tools are designed to help some aspects of managing a team, but they also introduce some challenges:
- Tools designed to facilitate tasking, such as issue trackers and requirements management tools, are separate from the coding environment, causing a disconnect between the coding change and the impetus for the change.
- Instant messaging such as Google IM is very effective for communication. However, they too are disconnected from the coding environment, meaning context is lost when messages are sent about bugs and requirements. Likewise, they are one-on-one communication, so there is no sense of communicating with a team this way.
- E-mail is of course a great way to communicate with both, whole teams and individuals, but the same problems persists—no context between the mention of a bug ticket and the code the developer will change as a result.
- Neither e-mails nor IM integrate with the bug trackers, and discussion on these items between developers, managers, and end users can be lost or misfiled, or stored in a decentralized manner, in the inboxes of those who participated in the discussion but are not visible to the entire team.
All of these add up to one main problem—it is not elegant to see all the team activity on a project. On one extreme, there are too many disconnected tools; on the other, too many manual processes—both lead to reductions in team productivity. They are all challenges related to collaboration. The following is the Wikipedia definition of collaboration:
Collaboration is a recursive process where two or more people or organizations work together in an intersection of common goals. For example, an intellectual endeavor that is creative in nature, by sharing knowledge, learning, and building consensus.
In this article, we will see how Rational Team Concert takes care of these collaboration challenges. Rational Team Concert integrates many useful tasks into the client, giving a seamless tool integration experience.
A focus of software development is to manage the requirements and bugs of a project. Sometimes, developers spend time manually associating code changes with the tracked bugs, introducing a myriad of problems to deal with.
There are many benefits to integrating the issues and bug management into the development environment. Any software system’s health and quality can be quickly accessed by looking at the bugs and issues. When the issue and bug management system is integrated into the development environment, issues can be linked with the source code and other related artifacts. By providing an integrated view, you can efficiently keep track of all the work your team needs to complete, which makes it easier to decide on the health of your process.
Team Collaboration allows us to exchange information with other team members in the context of the work being done. When you talk about a bug, you can make sure that everyone sees the same bug description and preserve the discussion summary on the bug for any future reference. In the coming sections we will see specific topics that improve your daily experience as a software developer, manager, architect, QA engineer, or a project stakeholder.
Collaboration can be seen as an ingredient in the global software development context. In such a case, the interaction of a developer in setting up a project, working in the source code editor, work items, plans, and releases become a part of the collaboration. In this article, we focus on the specific tools of the collaboration that help and facilitate improving the productivity of teams.
In the global workforce scenario, the challenge is to use various information attributes such as the location and time zone of the team member, the capacity of a team member to work on a project, and the work schedule. We would like to know if a team member in a different time zone has arrived to work or if he is on vacation. Work Environment is a collaboration aspect of the Rational Team Concert that helps you specify several information attributes in a convenient user interface. Team members and managers can make use of this information for planning and scheduling purposes.
Rational Team Concert gives you the ability to enter the schedule information in the client as well as web UI. From the Eclipse client, you can open the complete overview of a user from Team Organization view, right-click on the user, and select Open. From this interface you can configure the Work Environment, Scheduled Absences, and Mail Configuration as shown in the following screenshot:
(Move the mouse over the image to enlarge it).
In the Overview tab of the editor, you can view and modify the important information about the user such as the username, e-mail address, team areas he belongs to, workdays and hours he normally works, and scheduled absences. Repository permissions are allocated to users using group designations in Repository Groups. Remember that at this time, you will not see the repository groups as we initially configured the users to be in the External Non-LDAP User Registry.
If you are using a WebSphere application server, users are assigned to repository groups at the time of user creation by your administrator. Unless users are configured to be on Tomcat or on LDAP, repository groups are not visible in the Rational Team Concert client or web UI.
In the Work Environment tab, you can enter your Work Location and Work Days, which will help other team members to know the availability of a team member to plan and schedule meetings. You can also edit your work days and number of hours of work that you would put in. This information on the work week and hours of work is used in scheduling, planning, and burn down charts. This also gives you the opportunity to adjust the percentage effort dedicated to each team or project in case you are assigned to multiple projects, as shown in the following screenshot:
In the above example, the user Trebor (tfenstermaker) edited the details relevant for him. He changed the Time Zone to US/Eastern and changed his time of availability and work hours using this editor. Notice that this user has changed the work hours from 40 hours a week to 32 hours a week. This information is extremely useful for the project manager or project administrator who wants to schedule work, or who wants to know the availability of team members for meetings or to get a quick response via instant messaging.
Throughout this article, unless otherwise stated, we use the admin user account in Rational Team Concert.
In many projects, team members use versioned or shared spreadsheets to store their vacation schedules. Project managers often have to remind people to keep these updated, and team members may or may not do so. The manager must find these spreadsheets, hope they’re correct, and compile the information from them manually to determine the available work hours and properly schedule work.
Rational Team Concert has the ability to capture all the team member related vacation time so that it can be used for planning, reporting, and other tasks. The Scheduled Absences tab lets you to enter the vacation time, where it is stored in the Team Repository for further use. The following screenshot shows the vacation entered by the user Trebor (tfenstermaker) and will be affected in the Team Load calculations for a specific project: