Managing An Outsourced Team
Introduction
I have worked in the software engineering industry for the past 27 years and have been employed by a large variety of companies in many different sectors. Since starting in the software engineering I have noticed that a large number of changes have occurred since I started working all those years ago. Typically the development team would be located in a single office based in the same country. Companies were usually divided into smaller individual offices with small teams working together. The manager would be located in his or her own office as a reflection of their higher status! The early days of software engineering was very exciting as I lived in Cambridge UK. Cambridge was to be later nick named Silicon Fen after the more famous Silicon Valley based in the USA. Cambridge benefited from the the World's leading university, the University of Cambridge and a lot of ex-Cambridge graduates started up their own computer companies. I remember the first computer that my grandfather bought for me, 32 years ago, a Sinclair ZX80. Having recently been to a Cambridge bookshop that had published a BASIC program for a computer game I was eager to start my first programming experience. Unfortunately, after entering a dozen lines of code I got an out-of-memory error message. In those days the first ZX80 computers were only equiped with 1KB of memory. The laptop I am using now has 6GB of memory, 6 MILLION TIMES as much memory! So things have changed a lot in the past 32 years!
The Modern Office
The modern office today is very different to 32 years ago. The technologies for communicating between team members have greatly advanced. Probably the single most important development since the middle of the 20th century was the arrival of the Internet. This allows immediate communication between your team members working in any country through emails, instant messaging, video conferencing and Voice over IP (VOIP). The owners of international companies were quick to see the benefits of these new technologies. Why pay a large salary for someone based in the UK or USA when an Indian worker is paid 1 tenth the salary? In reality the savings made by a Western company employing an outsourced team are not so large (as I shall explain later), but with careful management savings can still be made.
What Is Managing An Outsource Team Like?
I first started managing an outsourced team 3 years ago and am still learning from the experience. My current manager introduced me to the idea as he was already a very keen advocate of outsourcing. So how does managing an outsource team compare to managing a team in the UK? Firstly, having good communication skills is essential. Managing an outsource team isn't everyone's cup of tea. On a typical Monday morning I can be bombarded with communicator queries from the Cambridge, Pune (India) or Chennai (India) test teams or my Pune (India) or GdaĆsk (Poland) devlopment teams. Sometimes I might get 3 queries at the same time! My company uses the Agile software development method which I think works very well. We aim to have a devlivery of software from the outsource teams every 2 weeks. We call these 2 weekly intervals "sprints". Each day I telephone my team lead in India or communicate with my team lead in Poland and conduct a scrum meeting. In reality I don't follow the correct guidelines for a scrum - I.E having a scrum master, product owner and development team all together at the same time every day for every scrum meeting. There are a number of reasons for this. Firstly I initially tried managing a team of 4 developers in a scrum every day. Now this might work well when you have all the developers in the same physical office, spending about 5 minutes per developer, but I find when managing teams remotely you need to spend more time communicating issues. So now that my Indian team has grown to 6 people I find it easier to use a single technical lead to communicate with and delegate the scrum management responsibilities to him. This has the benefit that I spend less time managing the Indian development team. Now, when it comes to the Polish development team, I tend to use instant messaging rather than talking on the telephone. The reason for this is that my Polish team lead prefers to communicate this way which is fine with me. In the Cambridge office I manage a principle software engineer and find communication easier because we are located in the same office. So sumarising, to run a smooth running outsource team I recommend the following:
1) Have a daily scrum meeting. I go for Monday to Thursday. Friday's are busy doing releases.
2) Have a clear list of tasks to be delivered on a regular basis (2 weeks in my case).
3) Delegate management responsibilities if your team if your direct reports exceed 4 people. Studies have shown that people can only cope with communicating efficiently with up to 5 people (+/- 2 people).
Should a Company Use Outsourcing?
To answer this question I would say yes, it has generally proven to be a beneficial experience for my company. However, the cost benefits are not so clear cut as the accountants would like you to believe! Firstly, although an Indian worker might work for 1 tenth of the cost of a Western worker this gap is closing rapidly. The Indian economy has been growing much faster than the UK for example and the outsourcing companies are starting to charge more and more money. In addition, an outsourcing company has a lot of costs in training their staff and replenishing staff because of the high turnover. When managing a remote team it is essential that the manager ensures that at least at least 2 of the outsource workers share the same skills. If the manager doesn't ensure this, as soon as an outsource worker leaves all the training and knowledge that is accumulted by that worker is lost! So when you factor in how much the outsourcing company actually charges my company then the Indian worker comes out as about 1/3 of the cost of employing an UK worker. Another cost to consider for your company is the management overhead in employing a British or American technical lead. This I estimate to be at least 20% of the technical lead's time for each direct report. In addition I consider the quality of work produced by an outsourced team not as high as work produced by an inhouse UK or US based team. The reason for this I'm not entirely sure about because I know some Indian workers are techically very good an even better than their conterparts here in the UK or US. One thing I consider to be better in outsourced teams is the motivation level. Workers in less affluent countries tend to work longer hours, are more motivated and are more polite in general. So my personal experience of using outsourced workers has been a good one.