Last week we just finished up the kick off for a new project in the AgilityFeat Costa Rica offices.  This is a fast growing area of business at AgilityFeat and one I am very pleased about, so I would like to take a little time to describe to you how a kick off week might work for your team.

Co-location with the Product Owner

Initial conversations about a project are best done in person around a whiteboard.

For this project, the client sent their Product Owner to San Jose Costa Rica to work with our team.  Initial co-location with the Product Owner is an absolutely essential part of our model.

Many distributed teams get off to a bad start because they don’t have a clear understanding of the product to be developed.  Often times the toughest questions need to be asked in person, and the most efficient way to ask those questions and rapidly incorporate feedback is to do it in person.

As much as we love skype and all the other tools that allow our teams to work efficiently when distributed, there is no substitute for in person communication.  Given the relatively low travel costs between the US and Costa Rica, it is well worth it to make sure things get off to a strong start.

User Experience and Design

Our UX lead Mariana works with the client's Product Owner Lindsay on wireframes

Our teams are not just about development.  We also bring user experience and design experts to the table.  This serves two purposes.

First, we want to add as much value to our clients as possible at an affordable price.  And a successful software product requires a good user interface that is easy to use and attractive.  Many companies don’t have user experience experts internally or even graphic design staff and so we provide that with all our teams as a matter of course.

Second, even if your team has graphic designers already, there are big communication benefits to engaging our UX and design team.  All of our developers speak English very well, but occasionally something will get lost in the translation.

Our Costa Rican UX and design team members are completely fluent in English and have spent time in the United States.  So not only are they helping you to improve on your product vision, they are also ensuring strong communication back to the rest of our team in Costa Rica.

Creation of the backlog

One of the important jobs for our UX lead and our project leads is to help you write user stories.  This will be a big focus for the project kick off week, so that we have a good understanding of what you need done in the near term.

We also want to establish good agile practices for user stories and acceptance criteria right from the start, since that will help to create common understanding of a feature and reduce any language barriers.

Communicating the project vision and goals

Video chat with the client

One of the most important things we did this week was stepping through the client’s existing application and code, and make sure that everyone understood the current functionality and challenges.  This informed the vision and goals for our work together.

It was highly valuable to do this in person, as we were able to iterate through initial technical challenges quickly and we learned things about the code base that were a surprise even to the client.

Team training

When necessary we will also provide training to our teams as necessary as part of the initial co-location.  For this week’s project kick off, we are ramping up new Ruby on Rails team members.

Dave Haeffner training the team on Cucumber and BDD

So Dave Haeffner and I delivered a 2 day course to the team on Ruby on Rails, Cucumber (for automated browser testing), and Behavior Driven Development practices.  The developers we trained already had strong development experience, but these were new tool sets and so we made sure that the team would be using best practices from the start.

Technical pairing

David Kovsky and Manuel Alvarez pairing up on some code. This initial pairing will pay off later.

To further ensure a strong start and best practices, we brought down two additional Ruby on Rails experts with us from the United States.  Ben Taitelbaum and David Kovsky are here not only for the kick off week, but also will stay in Costa Rica for the first two-week iteration.  This way they will be able to pair program with our Costa Rican developers Manuel and Allan for a full iteration.

As part of that, they are also establishing best practices for how they will pair program when working remotely after the first iteration.  Using github for commenting and code reviews, skype and hipchat for communication and sharing will ensure that they stay in close contact for the first several iterations.

After a couple of iterations of pair programming, the US developers will roll off the project and so the client will have a team that has been intensively trained but at an attractive nearshore price point.

Establish Team Cadence

Team dinner in San Jose after another solid day of work

While we were all together, we set up all the regular meetings that our team will have with the client.  These agile processes will ensure that we stay in close communication even when the team is distributed most of the time.  We setup daily standups, demos, retrospectives, planning sessions, and story review sessions all on a regular schedule to ensure frequent communication.

Team building

Another great benefit of co-locating with your nearshore team is simply getting to know one another.  It’s easier to learn someone’s accent in person, and it’s easier to identify with him or her and have a collaborative relationship when you have shared meals together, talked about your families and learned more about each other, and perhaps even gone to the beach together!

Kick-off Retrospective

David Kovsky adding in an idea for the retrospective

Finally, what iteration of agile work would be complete without a retrospective?  Before our product owner returned to the United States this week, we held a full team retrospective and discussed how everything had gone so far.

During that retrospective we celebrated the successes of the work, and established commitments to each other to make sure that we are doing high quality work and communicating well.

Retrospectives are an important part of a distributed agile team’s work, because we want to constantly ask ourselves how we can improve.

Co-location makes all the difference

Distributed work of any kind is hard, but the talent shortage in the United States and the price advantages of nearshoring in Latin America are very compelling.  Therefore we have to find ways to make it work in the best way possible.

At AgilityFeat, we believe that agile principles and practices combined with the time zone benefits of Latin America make distributed work not only possible, but highly effective.

The best way to make sure your project gets off to a great start is co-locating with AgilityFeat in Costa Rica!  The costs are low and the payoff will last throughout the project.

A happy team at the end of the kickoff week! From left: Manuel Alvarez, Allan Duarte, David Alfaro, Ben Taitelbaum, David Kovsky, Lindsay Hicks, Arin Sime, Mariana Lopez

For more information about working with AgilityFeat, please contact me at 434-996-5226 or