Near shore development has a major advantage over outsourcing to locations around the globe for US companies. The advantage is that all parties work in relatively the same time zone. Teams collaborate more frequently because everyone works the same hours as opposed to being hindered by 24 hour communication delays.
Let me illustrate the point more clearly with a simple picture. Look at the globe to your left. You see North America where Open Mountain is located and you see Latin America where our near shore partner Avantica is located in Costa Rica. Now let me ask you, what countries are NOT visible? When it comes to real-time collaboration, countries that see the sun at the same time are at work at the same time, which means that issues can be discussed when they need to be and without delay.
In my posts about my experiences working with Avantica, I talk about collaboration a lot, but I don’t really define where it helps. Nor do I provide any guidance on what we do based on years of near shore development experience. Here are a few areas where we collaborate along with tips for enhancing the experience:
Product definition
The first step in the software process is to define what we’re building. Product owners define requirements. Interface designers provide graphics and work flows. Everyone works together on user stories and functional specifications. Our experience is that it helps to push the various parties to think through as much of the details as possible before we start coding. This ensures the engineers are working on valuable functionality and reduces the risk of re-work or of missing important aspects of a feature.
We find the best way to collaboratively manage product definition is through online document tools such as Google docs or Zoho. Everyone references the same user stories, which is important for keeping everyone aligned. The team avoids issues that come from developers reading an earlier version of a specification they saved on their desktop. When we review documents in meetings, we see changes being made real-time and that validates we all have the same understanding of the decisions.
Tip: Use Google sites or some other online Wiki tool to collect information in addition to online document tools. Some documents will come from designers using desktop tools like PhotoShop and FireWorks. You will need a central location to store all your product documentation and an online Wiki serves as a functional central repository. For the documents that are created online, you can embed a link to those in the Wiki.
Tip: If you are the project manager or SCRUM master, you should periodically save important information locally. Online documents are easily changed by others and not all providers support tracking changes.
Project Management
Managers must know what each team member is working on and how long that work is taking to see how well the team is tracking to schedule or the burn down. Tracking is harder to do when everyone is not working in the same building. Project management software such as Rally Software or Version One enable teams to collaboratively track progress in a central location that everyone sees. These tools support Agile processes well and enable all team members to contribute status updates in an organized fashion. Basecamp and Zoho offer good general tools for project management as well. Our teams find that making updates part of the process keeps everyone well informed and allows management to see what areas need attention.
Tip: Track bugs in the same tool you use to manage projects. In the beginning of a development cycle, features drive the work. But at the end of a cycle, it’s all about bug management. Using the same tool for both gives you oversight for the entire life of the project and also encourages developers to communicate bugs during development using a familiar process.
Team SCRUM
Our development teams tend to meet 3 times a week. True Agile development zealots will tell you that you should meet every day if only for 15 minutes. Either way, nothing beats regular discussion for managing a project. Near shore makes this more possible. Far shore teams tend to limit meetings to once a week, which then turns the meeting into a status report, or they meet more regularly by extending the working day for the US team members. We recommend meeting with Skype at least 3 times a week to allow the team to ask questions and reveal what they are working on. In fact, if you achieve this, you will find all your other collaborative efforts are enhanced and supported by these regular discussions.
Tip: Use a low cost screen sharing product such as Acrobat ConnectNow or GoToMeeting to encourage code walk-throughs and interface reviews. Start the Web conference each meeting so that if an engineer has an inkling to share, he can do it right then and there. Imagine that, working with an outsource team and yet still talking to the engineers on a regular basis and still having the opportunity to review code.
Leads Meetings
Discussions with the team lead remind me of those back room discussions from political arenas. You know, the meetings where all the real decisions are made. That’s not really the case with software development, but often critical issues can be effectively resolved with a quick meeting of the key minds. Some managers set up a regular time each week for this. If that works for you, great. We save leads discussions for escalation. Leaving them off the schedule means they happen only when they need to and that makes sense since issues should in general be discussed openly with the entire team.
Tip: Use video with lead discussions to enhance communication. Facial expressions and visual cues are extremely helpful when reviewing difficult issues. Plus, when your lead delivers a snarky response, it helps to see if he is genuinely not happy or just yanking your chain. Believe me, both happen although some leads aren’t as funny as they think they are (sorry guys). Skype with video on a MacBook is awesome for this. There is no setup and starting the video is as simple as clicking an icon. Below is a chat from just this morning where we reviewed a few last minute changes to our release.
Video tip: When you speak, look at the green dot on your computer and not at the video of your lead. This is like looking at the camera, and not the monitor, when you are on TV.
Thanks Christian (guy in the larger image) for letting me (guy in the baseball cap) post your picture!
