Collaboration Tools
& Techniques for
Distributed Teams using RUP
Abstract
The article gives a brief insight into the different techniques and tools which can be used by project teams (including clients) which are located at different geographical locations to improve collaboration. It demonstrates how the teams can use effective tools and techniques for collaborating. The article also talks in detail about team dynamics and how the team s bond together as a unit in spite of being physically distant. It demonstrates how a flat organization structure can be more effective than a hierarchical structure.
Introduction
Development of software is a human process. People, and not hardware, develop software. The process that guides or controls the way software is produced should be designed to take care of the human aspect ofsoftware development. Traditionally, the process we have been using to produce software (more popular as waterfall model) is based on machine-based assembly line product manufacturing processes. In the world of fast-changing markets where customers value return-of-investment (ROI) and time-to- market as the most important parameters in a software process, RUP and iterative
methodologies help reduce time-to-market as well as help customers gain more ROI. But the success of RUP and distributed teams significantly depends on how well the teams collaborate.
When it comes to distributed / Off-shore/ Off-site teams, companies perceive that they are
compromising or risking some aspects of software development process in return of reducing the cost of producing software. Iterative methods help building trust and confidence with the customer as they are considered part of the team. In addition, the risk of reducing quality of software produced in distributed team environments is mitigated by some of the iterative and RUP methods like unit testing, pair
programming, continuous integration, evolutionary light-weight design, etc.
In the different sections of the article, we will explore how RUP works well in distributed team model by taking care of not-only the human aspects of building software but also the quality, consistency and faster turnaround time from requirements to demo of the working software.
Setting the Stage
As we know, a project is always divided into multiple teams based on functions each one will perform business analysts, software engineers, test engineers and UI designers.
The business analysts would write use cases to convertbusiness requirements into functional
requirements inthe form of features. These use cases will form the basisfor the black-box acceptance test cases written by thetesters and the technical models /responsibility specifications written by the technical team. The technical models and responsibility specifications will form thewhite-box design for code. Also, the UI design team / business analysts will build the screens based on these functional inputs andadherence to the system use cases.
The distributed team might also consist of business analysts, developersand testers. There could be customerdevelopment team and testing team in the base unit.For the purposes of this article let s assume the project is utilizing theRational Unified Process (RUP)development practices and phases (Inception,Elaboration, Construction and Transition). Each phasehad multiple iterations of 4-6 weeks each. Functionalitywill be added to the product incrementally and a demowas exhibited to the customer at the end of everyiteration.
Collaboration Tools
Project Portal
Project Portals are located in the intranetand is local only to the teams; it is secure and forms an effective tool for communication of different aspects ofthe project.We can useportals as a central repository of artifactsnamely dailyprogress status, burn-down charts, transcripts of teammember chats, calendar of events, links to use cases and personal time-offs etc.
Also, it can be used to post lessons, retrospectivesand other knowledge gained during the iteration execution. It can also be used as a team blog as well aspersonal blog for the project team members.
Web conferencing
Web conferencing is a real-time, interactivecollaboration tool used for multiple purposes likevoice, video conferencing, document sharing,application sharing, etc.
Web conferencing for white-boarding
We can use web conferencing extensively forvirtual white-boarding to understand and chalk out designs. These designs can be stored as images andprinted out to be used as information radiators on thereal team white-boards. These could be restored onsubsequent web conferences for knowledge transfer,review or refactoring of design.
Web conferencing for code sharing
Another use of web conferencing can be for coderepository walkthroughs. Here the teams could keep notes about a certain piece of code and share it. TheIDE can be opened in desktop sharing mode for eitherlive debugging or manual code walkthroughs.
Web conferencing for kick-off meetings
The RUP projectnormally starts with a kick-off meeting thathad cross-functional participation
business analysts,developers, testers, UI designers. We use this kick-off to prioritize the features in the projectbacklog. In distributed teams, these webkick-off meetings were very vital. These could be recorded and played back again for referenceeliminating for the need of the continual physical presence of a business analyst, or a UI designer.
The web conference usage and recording the web conferences eliminates thelimitation of depending on the physical presence ofsome of the functional experts for developmentpurpose.
Status meetings via web-conferencing
Status Meetings provide a co-ordinationmechanism for everyone on the project and a platformfor each team member to make commitments in frontof the team. These meetings could be recorded and played again if the team member slipped on the task hecommitted. This benefited into self-organization ratherthan the project manager organizing the tasks forfeatures.
Video / Web Conferencing for Team member induction
A new team member can be introduced to the team through the web conference. Having him face-to-face with the whole team was a great experience for the new member rather than knowing every member just by his/her email id.
The new member can be provided all the project information by means of recorded meetings where the different aspects of the project were recorded via the web conferencing tool. Here, the tool can be used as an e-learning tool.
Emails
Emails are very effective collaboration mediums for distributed teams to discuss and keep the teams informed on various project risks and issues. Emails can we used to record, review and audit discussions
and decisions. Emails etiquette is important to get the best out of this collaboration medium. We will discuss that in a different article.
Instant Messengers
IMs must be used for one-to-one communication between team members. This could beused if
developers had to communicate about some coding aspects or design aspects or any other clarifications during the overlapping time zones.
Continuous integration and automated testing tools
Code should be checked in to a common repository. There should be no separate repositories for the distributed teams. Automated integration and testing tools will help team members in reducing skepticismabout check-ins and any fear of breakingothers code. This will increase the sense of collectiveownership rather than pointing fingers for code breaks.
The golden rule of thumb could be not to leave the officepremises until the last code that was checked did notbreak the build. If the build was left broken by eitherteam, it will be difficult and counter-productive for theother team to fix the build before starting work.The continuous integration (CI) tool and automated testing must be used for better efficiency.
Collaboration Technique Effectiveness
Flat project team structure
The composition of the team can be based on a flatorganization structure. There should be no
designations likeproject leader, project manager, architect, seniordeveloper, etc. Everyone would be a consultant and the rolesshould be swapped amongst the team members. Thedifferent roles that could be played are design, code,test, architect, project management, mentor or coach.
No single person would be designated for the samerole. The role should change on a regular basis. This will give the team a feeling of group ownership and roleswapping improved the different skills of a team member.
Coffee/Ice cream meetings
Coffee or ice cream meetings would becelebration time. On completion of a feature/iteration/phase, the teamcould go to a coffee outlet or an ice cream parlor tocelebrate the iteration release.Here the team not only canhave fun but also can provide retrospective of the various events or practices
followed during the execution of the feature. This team building exercise can help the teambuild a good rapport amongst each other and the teamdynamics might improve a lot.
Chocolates for breaking a build
Every time the continuous integration toolshowed a build break, the team member who was responsible should come to the center of thedevelopment room and put a chocolate into the build
bag as a penalty for breaking the build. This wasintended to build in a sense of caution while code check-ins. After the eventual fix, he would beappreciated by a series of claps.
Rotation of responsibilities
The team members shouldrotate the roles amongst all team members to make the experience interesting and also provide a learning opportunity to new team members.
Cross-location visits
The team members should be rotated across thelocations on a frequent basis to work within both the teams. This will help the two distant teams geltogether more strongly. There should be more one-to-onepeer relation through these cross-location visits.
Conclusion
Iterative/RUP development was originally considered to work more effectively in aco-located
atmosphere. With the world movingtowards distributed development locations, Iterative/RUP canwork well with distributed team environment as well but the key for the success his to manage and enhance collaboration.
RUP has definitely proved to be a boon forempowerment of analysts, testers, developers, customers andmanagement alike. Teams feel pride andownership to work in an environment that is self-organizing,co-existing in a peer-to-peer interaction.
Management feels charged with expectations of higherROI i.e. faster and better development. The customerfeels happy to remain in the loop, to be heard what hewants and is able to see progressively his productshaping to his expectations.
About the Author:
Mr. Vijay Krishnan is a senior member of Across Borders management team. Mr. Krishnan isresponsible for vision and operation of the company. Mr. Krishnan provides strategic consulting on Smartsourcing and organizational process/project management changes to clients worldwide. Mr. Krishnan holds a Bachelors Degree in Engineering from Bharathidasan University, Masters Degree in Computer Science from Saint Joseph's University, Philadelphia and MBA from University of Massachusetts, Amherst, MA.
Website: www.abmcg.com