Collaboration Tools& Techniques for Distributed Teams using RUP



Similar documents
AGILE - QUICK GUIDE AGILE - PRIMER

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Agile Scrum Workshop

EXIN Agile Scrum Foundation

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Agile Development Overview

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

Point of View. Realize the potential of Global Agile in financial services Capitalize on a global talent pool for smooth implementation

Agile QA Process. Anand Bagmar Version 1.

Certified ScrumMaster (CSM) Content Outline and Learning Objectives January 2012

Plan-Driven Methodologies

Certified ScrumMaster (CSM) Content Outline and Learning Objectives January 2012

EXIN Agile Scrum Foundation. Sample Exam

Community Development and Training Centre Semester IT 245 Management Information Systems Chapter 3 Internetwork E-Business Electronic Business

ScrumMaster Certification Workshop: Preparatory Reading

Scrum. SE Presentation. Anurag Dodeja Spring 2010

Capstone Agile Model (CAM)

A Glossary of Scrum / Agile Terms

CSSE 372 Software Project Management: More Agile Project Management

Agile Information Management Development

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

Agile & Scrum: What are these methodologies and how will they impact QA/testing roles? Marina Gil Santamaria Summer 2007

Chapter 3. Technology review Introduction

Optimizing Agile with Global Software Development and Delivery

Issues in Internet Design and Development

Agile Methods for Analysis

Measuring ROI of Agile Transformation

Course Title: Managing the Agile Product Development Life Cycle

Systems Analysis and Design

Sometimes: 16 % Often: 13 % Always: 7 %

Quality Assurance in an Agile Environment

D25-2. Agile and Scrum Introduction

Answered: PMs Most Common Agile Questions

Vision created by the team. Initial Business Case created. Cross functional resource meeting held. Agile alignment meeting

Get back to a productive virtual meeting.

Laboratório de Desenvolvimento de Software

Agile Scrum Training. Nice to meet you. Erik Philippus. Erik Philippus (1951)

Introduction to Agile and Scrum

Scrum. Speaker: Dan Mezick URL: NewTechUSA.com. Copyright 2002: All rights reserved

Agile software development

How Silk Central brings flexibility to agile development

T14 "TIMELINES, ARTIFACTS AND OWNERS IN AGILE PROJECTS" Hubert Smits Rally Software Development BIO PRESENTATION 6/21/2007 1:30:00 PM

Evaluation of agility in software development company

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Agile Based Software Development Model : Benefits & Challenges

Scenarios for Pair Coaching Exercises

Agile Software Development and Service Science

The Agile Manifesto is based on 12 principles:

Agile Testing (October 2011) Page 1. Learning Objectives for Agile Testing

Agile Beyond The Team 1

SmartBear Software Pragmatic Agile Development (PAD) Conceptual Framework

The style is: a statement or question followed by four options. In each case only one option is correct.

A SIMPLE EQUATION CLOUD COMMUNICATIONS = BUSINESS SUCCESS SHARE THIS:

Successful Distributed Agile Team Working Patterns. by Monica Yap

Word List method-related capitalization and punctuation

By O livia K a sik a nd O ma r Silve r

The Keys To Distributed & Agile Application Development in the Cloud

ISO 9001:2000 Its Impact on Software

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Basic Unified Process: A Process for Small and Agile Projects

White Paper IT Methodology Overview & Context

CDW Video Conferencing Straw Poll Report

A Roadmap to Agile Development: A Strategy to Increase Adoption Success

Kanban. Marek Majchrzak, Andrzej Bednarz Wrocław,

Agile Software Development. Stefan Balbo / Patrick Dolemieux

Agile Methodologies XP and Scrum

By Alan Bustamante & Rahul Sawhney

Offshore SOA Service Factory For production of cost-effective, shared services

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Course Title: Planning and Managing Agile Projects

A Survey on Efficient Agile Development Methods

How can I be agile and still satisfy the auditors?

Suggestions to Enhance Communication

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

Global Software and Services Firm Reduces Costs, Builds Community with Unified Communications

Leveraging Agile and CMMI for better Business Benefits Presented at HYDSPIN Mid-year Conference Jun-2014

Mitigating Coordination Costs in Global Software Development Using Scrum

Microsoft Office 365 for Business

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Scaling Scrum. Colin Bird & Rachel Davies Scrum Gathering London conchango

Software Development Methodologies

Applying 4+1 View Architecture with UML 2. White Paper

Agile Processes and Distributed Projects: Dream or Nightmare?

Scrum According to Rational Unified Process

Kanban vs Scrum Making the most of both

Adopting a Continuous Integration / Continuous Delivery Model to Improve Software Delivery

Scrum and CMMI Level 5: The Magic Potion for Code Warriors

Leading Self. Leading Others. Leading Performance and Change. Leading the Coast Guard

Lean Agile Scrum Business Value Development and Delivery using Agility. Brenden McGlinchey Software Done Right, Inc.

WHITE PAPER. Distributed agile and offshoring antagonism or symbiosis?

Session-1: Business Enterprise Applications- Overview

Introduction to Agile Practices

Statistics New Zealand is Agile Continued Implementation of AGILE Process at Statistics NZ

HOW TO MAKE YOUR EMPLOYEE ONBOARDING PROGRAM STRATEGIC AND EFFECTIVE FOR BETTER NEW HIRE ENGAGEMENT, PRODUCTIVITY, AND RETENTION

Agile Software Development

IMPLEMENTING SCRUM. PART 1 of 5: KEYS TO SUCCESSFUL CHANGE

Vision Statement for Innovative Software Development in a Large. Corporation

Software Project Management using an Iterative Lifecycle Model

Mastering the Iteration: An Agile White Paper

Product Development with Scrum

Transcription:

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 of software 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 convert business requirements into functional requirements in the form of features. These use cases will form the basis for the black-box acceptance test cases written by the testers and the technical models / responsibility specifications written by the technical team. The technical models and responsibility specifications will form the white-box design for code. Also, the UI design team / business analysts will build the screens based on these functional inputs and adherence to the system use cases. The distributed team might also consist of business analysts, developers and testers. There could be customer development team and testing team in the base unit. For the purposes of this article let s assume the project is utilizing the Rational Unified Process (RUP) development practices and phases (Inception, Elaboration, Construction and Transition). Each phase had multiple iterations of 4-6 weeks each. Functionality will be added to the product incrementally and a demo was exhibited to the customer at the end of every iteration. Collaboration Tools Project Portal Project Portals are located in the intranet and is local only to the teams; it is secure and forms an effective tool for communication of different aspects of the project. We can use portals as a central repository of artifacts namely daily progress status, burn-down charts, transcripts of team member chats, calendar of events, links to use cases and personal time-offs etc. Also, it can be used to post lessons, retrospectives and other knowledge gained during the iteration execution. It can also be used as a team blog as well as personal blog for the project team members. Web conferencing Web conferencing is a real-time, interactive collaboration tool used for multiple purposes like voice, video conferencing, document sharing, application sharing, etc.

Web conferencing for white-boarding We can use web conferencing extensively for virtual white-boarding to understand and chalk out designs. These designs can be stored as images and printed out to be used as information radiators on the real team white-boards. These could be restored on subsequent web conferences for knowledge transfer, review or refactoring of design. Web conferencing for code sharing Another use of web conferencing can be for code repository walkthroughs. Here the teams could keep notes about a certain piece of code and share it. The IDE can be opened in desktop sharing mode for either live debugging or manual code walkthroughs. Web conferencing for kick-off meetings The RUP project normally starts with a kick-off meeting that had cross-functional participation business analysts, developers, testers, UI designers. We use this kick-off to prioritize the features in the project backlog. In distributed teams, these web kick-off meetings were very vital. These could be recorded and played back again for reference eliminating 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 the limitation of depending on the physical presence of some of the functional experts for development purpose. Status meetings via web-conferencing Status Meetings provide a co-ordination mechanism for everyone on the project and a platform for each team member to make commitments in front of the team. These meetings could be recorded and played again if the team member slipped on the task he committed. This benefited into self-organization rather than the project manager organizing the tasks for features. Video / Web Conferencing for Team member induction A new team member can be introduced to the team through the web conference. Having him face-toface 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 skepticism about check-ins and any fear of breaking others code. This will increase the sense of collective ownership rather than pointing fingers for code breaks. The golden rule of thumb could be not to leave the office premises until the last code that was checked did not break the build. If the build was left broken by either team, it will be difficult and counterproductive for the other 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 flat organization structure. There should be no designations like project leader, project manager, architect, senior developer, etc. Everyone would be a consultant and the roles should be swapped amongst the team members. The different roles that could be played are design, code, test, architect, project management, mentor or coach. No single person would be designated for the same role. The role should change on a regular basis. This will give the team a feeling of group ownership and role swapping improved the different skills of a team member. Coffee/Ice cream meetings Coffee or ice cream meetings would be celebration time. On completion of a feature/iteration/phase, the team could go to a coffee outlet or an ice cream parlor to celebrate the iteration release. Here the team not only can have 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 team build a good rapport amongst each other and the team dynamics might improve a lot. Chocolates for breaking a build Every time the continuous integration tool showed a build break, the team member who was responsible should come to the center of the development room and put a chocolate into the build

bag as a penalty for breaking the build. This was intended to build in a sense of caution while code check-ins. After the eventual fix, he would be appreciated by a series of claps. Rotation of responsibilities The team members should rotate 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 the locations on a frequent basis to work within both the teams. This will help the two distant teams gel together more strongly. There should be more one-toone peer relation through these cross-location visits. Conclusion Iterative/RUP development was originally considered to work more effectively in a co-located atmosphere. With the world moving towards distributed development locations, Iterative/RUP can work 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 for empowerment of analysts, testers, developers, customers and management alike. Teams feel pride and ownership to work in an environment that is selforganizing, co-existing in a peer-to-peer interaction. Management feels charged with expectations of higher ROI i.e. faster and better development. The customer feels happy to remain in the loop, to be heard what he wants and is able to see progressively his product shaping to his expectations. About the Author: Mr. Vijay Krishnan is a senior member of Across Borders management team. Mr. Krishnan is responsible 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