Over the past 10 years I have been fortunate enough to work in varying capacities and roles in a number of different software development team configuration and environments. I have had considerable experience of working on distributed teams, establishing off-shore teams, leading distributed teams and setting up international software development teams.
In this post I share my experiences and knowledge gained to hopefully make life a little bit easier for all parties who are about to engage in remote projects. I will stress that the advice is based on what has and hasn’t worked in the environments I have been involved in, and may not have the same affect for you.
Outsourcing is not a “Cheap” solution
It’s vitally important to address this common misconception first off. Many organisations believe that by being able to leverage the services of outsourced, off-shored or even locally distributed teams they can reduce costs significantly. In my broad experience, this certainly not the case, although there were many other tangible benefits, cost reduction never made it into the top 5. When we established Denizon 10 years ago our objective as with any business start up, was to keep costs low, and we knew that by working from our own homes and collaborating via the internet, was certainly going to be the best option.
Reducing Cost for us was a factor, but this was primarily based on the fact that all the founding members were not even based in the same geographic region. We were and still a distributed company spanning 6 countries and 4 time-zones, with members in United Kingdom, Ireland, Estonia, Germany, Malaysia and the United States. Establishing a virtual office was far better alternative than trying to pick the best location to establish an office taking into account emigration, set up costs and a myriad of other associated costs. However, in honesty I cannot tell you if it has worked out cheaper in the long run.
When we have managed projects helping other organisations to establish off-shored or outsourced development centres the forecast financial cost benefits and the actual cost benefits delivered have never equated. In the majority of cases they have been marginal at best.
At Denizon we enjoy many other benefits such scalability, flexibility, productivity, efficiency , agility , sustainability and environmentally friendly. A cost advantage is never really considered.
Consider more than one location
I have lost count of the times, we’ve been engaged to help establish a distributed team is that the concept they have is in reality just establish an office in another location. So effectively close an office in London to establish another in Bangalore, Sofia or another location where labour costs are fantastically cheap. The big problem with this approach is that it very quickly does not scale, and you very soon find out that the talent pool in the fantastically cheap location you’ve chosen is extremely shallow and you start experiencing Human Resource challenges and logistical issues rapidly!
Scaling rapidly becomes an issue and your top management staff seem to collecting air-miles and hotel reward points at a rapid rate of knots. What most organisations tend to achieve when following this approach is the same set of issues in just a very different geographic location. Further more, those fantastically cheap rates tend to disappear rather rapidly once other companies start setting up in the same location.
We’ve seen this being replicated time and time again, often resulting in organisations simply up rooting and having to move to yet another location, in search of the mythical reduced cost. We’ve witnessed this happening in Czech Republic, Romania, Estonia, Latvia, Lithuania, Ukraine, India, Pakistan and it continues to happen.
The way the world works is changing rapidly and organisations need to adapt rapidly to the needs to employees or run the risk of losing out on talented workers. IT departments are under strain to provide flexibility and offer employees the capability to work from home, with this in mind it makes sense to consider this approach when planning to take on outsourced/offshore service providers, you will also gain access to a far larger talent pool of individuals. Providing them with the flexibility to work from home utilising there own equipment not only enables you to reduce your overhead cost but also provides the much needed to capital to source and hire exceptional candidates. If planned and co-ordinated correctly this will also enable your organisation to work on projects 24/7 by staff all round the globe.
Implement a matrix management structure
Organisations need to adapt and adopt a matrix management structure and to clearly understand the advantages and disadvantages of the matrix management structure. By deprecating or reducing in effective command and control style management structures and empowering your outsourced employees to take responsibility and authority for your organisations international presence will pay dividends especially for small to medium sized businesses.
It is essential before embarking on an offshore or outsourced software development option to consult an organisation who has successfully implemented this type of arrangement themselves and continue to do so to understand and mitigate the potential risks and implement the successful strategies. Denizon have over 10 years success in implementing distributed team structures for many organisations not only ourselves.
Embrace & Encourage diversity
Adopting a distributed team strategy will expose your company to a number of different cultures, ethnicity, religion, age, abilities and languages. Your company will need to adopt a unique culture within itself. This will be great for new innovative ideas and alternative approaches to problem solving, however there will be the ever present threat of cultural clashes.
Your company will need to recognise a number of new public holidays and days of cultural significance. It will need to be able to adapt it working patterns, which may be disruptive.
The benefits of multicultural distributed teams is that they help foster innovation because of their broader knowledge of global trends. Further, they are less likely to suffer from “group-think” mentality; their diversity helps them tackle problems from different perspectives, thus producing a better range of solutions tailored for specific regions and markets.
Distributed teams may be more productive by virtue of not being at the same place. It may sound counter-intuitive, but such teams simply spend less time chatting, socialising and discussing trivial matters.
While geographical separation can lead to more productivity, it can also create misunderstandings, tension, alienation, and greater stress and anxiety. Consequently, it becomes necessary to mitigate these negative side effects with initiatives that foster positivity and collaboration on a personal level. Improving communication in remote teams can be a daunting task, and building personal bonds among team members tends to be challenging. In order to work round these challenges your company will need to at least 2-3 times a year organise some kind global event whereby all staff can attend and have some personal contact time with each other.
Don’t underestimate training
Education, education and education is vitally important for any organisation. This is especially true for distributed teams. Many technical organisations believe that by focusing on technical proficiency will improve overall competencies, however this can’t further from the truth. You will need to focus on the soft skills within your team to help make vast improvements. These may be focused around general themes of foreign language skills, writing emails in standard forms, guidelines on how to complete documents and any number of soft skills.
Focus on your communication systems
The key to a great organization is communication. The best communication system is the simplest. The key is not to over complicate your company communication systems, and avoiding complication at all costs. Ensuring your company’s software applications are as simple as possible is vital.
Many companies wrongly believe that by focusing on utilising software applications from one specific vendor will help ensure uniformity and simplify systems and processes. However, through experience we have found this not to be the case.
We have experienced a lot more success by implementing open source applications. By continually evaluating various open source solutions and trial and error we have effectively developed our own solutions. For instance our source control systems are based predominantly on Git and Subversion . Our project management systems are based around Feng Office , Moodle , Mingle and a number of internally developed applications and integration components.
Focus on your recruitment process
We have explored a number of options over the years on how to find great service providers. However, we have experienced the most failures when we have used recruitment agencies or other type of employment agencies. We have had to focus on and fine tune our own methods. Fortunately we have made our efforts simpler by ensuring our staff and contributors enjoy the experience of working at Denizon. You have to remember that everyday is a new day for your company, and the experience of working in your organization is under constant evaluation from your staff.
Your recruitment is not a process whereby you collect a number of CV’s and have a number strategies in place to interview candidates. We believe our best recruitment agents are the individuals that work with us. Your staff will find the right type of candidates for your company, by introducing friends, family, acquaintances and ex-colleagues. We have found that talented people will inevitability associate with talented people.
A unique background as business owner, marketing, software development and business development ensures that he can offer the optimum business consultancy services across a wide spectrum of business challenges.
Latest posts by Gary Woodfine (see all)
- C# Tuples - June 11, 2017
- C#Local Functions - May 21, 2017
- Using AutoMapper in Domain Objects with DotNet Core - April 24, 2017