|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:
|Read more about this book|
(For more resources on IBM, see here.)
The Rational Team Concert client lets you subscribe to e-mail notifications for the events you are interested in. As seen in the following screenshot, you can subscribe to a variety of changes that happen on the work items:
From the User Editor, you can also do several actions related to team collaboration and work items. When users are connected and online via an instant messenger service, you will be able to connect to them immediately by sending files, calling, or through text-chat. Here is also where you can find all the repository workspaces owned by a specific user and load this workspace if required. Also, when a specific user is assigned an important task, you can subscribe to all the events they generate, as shown next.
In addition to being accessible from the User View, these functions can also be accessed by right-clicking on a user from other views, such as Team Organization.
These notification mechanisms are an important feature of the Rational Team Concert client that enables you to be alerted to those items that interest you. Without it, it could be a daunting task for you to get updates on all the things happening in a project, especially when a work item related to your module is modified.
Rational Team Concert seamlessly integrates with Instant Messaging, giving a smooth experience in team communication. Team members can do a peer-to-peer chat or group chat with other project members. Eclipse introduced the Instant Messaging platform via Eclipse Communication Framework (ECF), and Rational Team Concert took this further by integrating support for IBM's Lotus Sametime Connect, Google Talk, and Jabber XMPP Server.
In this section, we will see several features of Instant Messaging by configuring Google Talk from the Eclipse client. Along with Instant Messaging, you can also do File Transfer, Voice Call, and more. The starting point for Instant Messaging is the Team Organization view in the Eclipse client. Team Organization lists all the users associated to the connected Team Area. You open this view to see all the online users and start messaging right away.
When users come online, the Eclipse client synchronizes with their status and displays the users appropriately. The previous screenshot shows two different Eclipse clients placed side-by-side for comparison. From here, you can start sending messages, and the chat client understands the different types of Work Items. The client will be able to recognize and open the Work Item description in the editor.
The previous chat window screenshot shows communication between two users. The important feature is that Task 14 automatically becomes a URL, allowing the other user to click on it and open the Work Item from the discussion. This becomes the real power of integration. In the coming sections, we will see how easy it is to take a screenshot of an error in a UI and send it to the other user from the messaging infrastructure.
Events and feeds
Feeds provide a combined view of all the events that happen in a Project, Work Items, Source Control, Builds, and Plans. Feeds provide direct access of all events to team members. Rational Team Concert client automatically generates the feeds for the work items and builds as soon as you connect the Project Area in the client.
From the Team Artifacts view, expand the Feeds folder to look at all the available feeds. Note that these feeds are shown for all the Project Areas combined rather than per individual project. In the following example, we've opened the feed named My Teams in BookManager Project to see all the events generated by the entire team:
As a team member, you can choose the events that you are interested in, so you can narrow the scope. The feeds show all the events generated by Builds, Team Server, Dashboard, and messages that mentions you. As an administrator, you have a complete overview of the various events happening across all the team members. As opposed to traditional project management, you need not spend time in collecting the information from different team members on what they did. Each event has a description attached with all the details.
Subscribing to feeds is another great way you can receive information. Right-click and subscribe to a build definition or query item in addition to the ones that are added by default. In general, wherever there is a possibility to subscribe to events, the Rational Team client integrates this functionality in the context menu.
As the number of projects increase, you may want to highlight the things that you are most interested in. Therefore, you can add your most important items to your Favorites folder.
This article introduced how Rational Team Concert takes care of some important collaboration challenges. We also took a look at Mail Configuration, Instant Messaging, and Feeds in the Collaboration space.
- FAQs on IBM Lotus Notes 8.5 [article]
- The IBM SOA Programming Model [article]
- IBM Lotus Quickr Services Overview [article]
- Q Subscription Maintenance in IBM Infosphere [article]
- Replication Alert Monitor: Monitoring Management [article]