Archive | November, 2014

Distributed Development Enablers-Part 2

18 Nov

In the previous post, we examined People related enablers. In this post, let us look at Process related enablers.

  • Co-Located Meetings
  • Inception/Project Kick off Workshop

The importance of Inception workshop, though held perhaps only once in the lifecycle of the project, cannot be overemphasized as some of the key decisions which impact almost all aspect of the project are made in this meeting. These include business and technical scope, key project drivers such as time to market, cost, quality and so on. Moreover, arriving at a common understanding related to business vision, as-is and to-be processes, end user journeys, risks, dependencies, and assumptions also happens in this workshop, which is spread over multiple weeks. Not to be forgotten is the fact that relationships between stakeholders are cemented in this period, as most stakeholders get an opportunity to spend time with each other during and after business hours.

Obviously, it may not possible for the entire team, to participate in person in this workshop due to travel and logistical constraints. The exception would be when the team is quite small, and there is adequate travel budget. Nonetheless it is absolutely critical that all roles across all locations be represented in this meeting, in order to maximize the effectiveness of meeting the key stakeholders in person. No amount of documentation can be a substitute for the richness of conversations in person, and this benefit becomes even more important when team members are distributed. The team members who have attended Inception are in a much better position to pass the context to the rest of team in the respective locations.

The option of those not attending the Inception in person, participating in this meeting through Video Conferencing should be seriously explored. The time and effort invested towards this is bound to pay off big time.

Should the project span multiple releases, the option of those who have not attended the Inception Workshop going for Release Planning meetings should also be considered.

Inception Workshop turns a Group into a Team. This fact should be leveraged to the maximum possible extent, especially when team members are distributed.

  • Joint Stand-Ups

The importance of stand-ups meetings in effective working of an Agile team in undisputed. Stand-up meeting provides an opportunity for the entire team to get together and focus on the work at hand, progress towards the goals for the iteration, and risks and blockers, if any. This practice assumes even greater importance when the team is distributed, as the need for the entire team to be aware of who is doing what work, dependencies and blockers, if any, is critical.

Given this fact, the team has to strive to do standup meetings which include all members of the team. This can be quite challenging if the time difference between the locations of the team members is big. This is one of the main reasons to ensure overlap working time between the locations.

As far as possible, video based tools should be used for the joint stand ups. Dialing in to a teleconference number will obviously be the next best option.

As in case of co-located stand-ups, the team members should be to speak with reference to the story card wall. In case of a distributed team, an electronic card wall should be used as a reference, as it is the single source of truth for the entire team. Electronic story card wall is particularly useful in cases where team members are dialing in to the stand ups from their homes.

  • Joint Retrospectives

Just like stand-ups, the importance of this practice is heightened when the team is distributed. For things that have not gone well, it is very easy to fall in the trap of blaming the team members who are not part of the retrospective, if the retrospective is not held in a joint manner. Even a single instance of this has potential to cause serious dent to the trust between teams.

Given that the entire team is not in one location and consequently the nature of communication being complex,, the team needs to provide adequate time for the meeting. The complexity arises due to all team members being required to vote on action items, maintaining anonymity during ‘safety check’ etc.Strong facilitation skills are also called for due to the above mentioned reason.

A tool which helps in radiating information real time and which acts as the ‘single source of truth’ is a must for retrospectives of distributed teams. There are several tools available which serves these purposes, and many of them are free for use. E.g. Ideaboardz, Scrumble etc.

  • Periodic ‘Dev’ Showcases

By definition, a Showcase is supposed to be done at the end of iteration to demonstrate working software to the Business stakeholders. A practice which helps distributed teams to reduce unpleasant surprises and to build trust and confidence is for the teams to showcase their work in progress to those who are distributed, without waiting for the end of the iteration. It can be done on completion of each story, but it need not always be that way. Even showcasing code and interfaces through use of mocks, if necessary, adds a lot of value to the entire team. These Showcase meetings can be kept short and crisp and once the teams get into the cadence of doing these on a regular basis, the time taken for these will be minimal and non-disruptive.

This practice is particularly useful when iteration length is 2 weeks or longer. And it improves the predictability of iteration end demos.

  • Maximize Overlap Hours

One of the biggest challenges for distributed teams is maximizing overlap hours across locations. The challenge is accentuated when time zone differences are significant, like between India and US West Coast, and also when onshore team members ‘push’ their offshore counterparts to adhere to what is convenient for them.

It is critical that everyone, regardless of location, is ready to demonstrate flexibility towards maximizing overlap in working hours. The advantages of synchronous communication while being at work far outweigh the compromises, within reasonable limits, which team members would need to make. The goal obviously should be to maximize overlap with a bit of sacrifice and compromise by each team member. Teams can come up with creative ways to do so-some team members, by rotation, coming early / going late, teams across locations taking turns to come early / go late, being flexible about taking calls from home etc.

Not only does maximizing overlap hours help towards improving communication and collaboration, but the willingness to compromise and be adaptable helps tremendously in creating the ‘one team’ feeling.

In the next, and last, post in this series, we will examine Tools & Infrastructure related enablers.