Archive for the Development Phase Category

Agile Development and Outsourcing

I have met several people in the last month that claim to keep development local because they can be more agile and get things done faster. I think this in many ways can be true, but in this article I would like to point out that a remote and outsourced model can also be very agile.

In 2006, I attended the Collaboration Technology Conference, where I heard the founder of 37 signals speak about his development model and how he had 8 remote developers building a collaboration application.  For those that were located in the same city, they would meet on occasion, but most of the time they would work from home. 37 signals has become very successful and many prominent companies such as Apple and Times magazine have hailed their products and how easy they are to use.

Another company that has many remote developers is MYSQL. In an article in Fortune, the CEO of MYSQL spoke about their 320 employees in 25 countries, of which 70 percent work from home. MYSQL has also been prized for being a very innovative profitable company with a growing market share. Both 37signals and MYSQL are considered to be both Agile companies that have accomplished success with remote development teams.

How do these companies do it?  I believe that learning how to be agile in a remote development model is possible. For those companies that learn how to do this effectively, they truly can succeed at a lower cost.  Here are some tips I have learned and applied that have helped my development projects become more agile and successful:

1. Have the Right Mental Attitude

From my experience in managing offshore development teams, I found that the first hurdle management and team members have to overcome is to believe that developing products remotely can be successful and that the outsourcing project can be successful. Once this barrier is overcome, then things are a lot easier.

2. Work During the Same Time 

The second barrier that needs to be overcome is that people need to start working in the same time zone. If the product manager is asleep while the developers are working, this will lead to mis-communication issues. Decisions need to be made on the spot and if they take 24 hours to make, then for sure you will have delays.  In one of my current projects, we had to make 4 critical decisions during one day of development, if decisions had not been taken, we would have stalled development for at least one day. When you do not have real time communication you end up having to document a lot more and developer end up having to do a lot more reading and less coding. Everyone in a development team should make the effort to work together at the same time.

3. Invest in Collaboration Tools 

Invest in some collaboration tools that will allow real-time desktop sharing. You will use real-time desktop sharing every day. I suggest using AIM Pro. AIM Pro is free and it uses Webex’s desktop and presentation sharing that is very high quality and fast.  Also, using Skype for voice and presence is vital for quick voice discussions.

4. Get a Good UI Design Package 

Finally, I suggest getting an Interface design package, I gave you several options in my previous blog. Using such software will help you become more agile and will speed up the developers understanding of what the system has to do to perform correctly.

I hope these tips will help your remote team become more agile. Remember, you can be as successful outsourcing development as if you are working locally. You just need to build your capabilities.

|