For 18 months now, we have engaged in an outsourcing partnership with Gatewaytechnolabs, a well-constituted software development company with around 500 employees in Ahmedabad, India. It has been a very challenging experience which has been, and still is, requiring a bit of special patience and concentrated effort. Our expectations towards outsourcing have not been met, though we are still confident that the end result will be satisfactory.
I will shortly describe our recommendations to companies who are currently in the process of evaluating barriers towards successful outsourcing.
But first, a quick pre-story:
Our blue-eyed adventure started in June 2006, when 3 crusaders from Freeway returned from a very exciting round-trip in India, where they for 1 week inspected several potential software companies. Full of enthusiasm – especially activated from our beloved Freeway delegation – we decided to go for a try, a very large try indeed…because we decided to outsource the development of Trendsales new platform. A new platform which should prepare us for the new “web 2.0”-age.. Our idea was to approach the project from an agile view. Agile in the sense of extreme programming and on-the-fly requirements specifications…a quite naive approach though, when looking back with a new set of “blue print” of the world..:) So, we started of with a 70 page overall requirements specification including some overall simple “rich pictures” of the system, and some very down-to-earth mockups of important steps of the parts of the system. The allocated team of developers counted 8 men (1 pm, 2 senior developers and 5 developers).
Our initial expectations towards project length was 6 months. This optimistic goal soon turned into ashes, as it after short while occurred to us that our agile approach was not align able with this kind of project. We start working on more detailed specifications with mock-ups. This documentation production happened alongside the ongoing development. After 1 year we evaluated and found out that we had lost approximately 3-4 months of development time due to the agile approach, which had only contributed to a lot of errors and lost time (and money).
After 18 months we are on a stabile track with a good, controlled scope and goal of the remaining projects, due to primarily more detailed requirement specifications and more daily control and follow-up. We have also learned to work with team, and the other way around. A common and comfortable dialog channel has been developed. Surprisingly enough, the dialog is a great barrier to this kind of project. Developing a good dialog is an ongoing and very difficult process, where both companies have to align. Communicating, both parties using a non-native language is like a two-sided coin – the outcome of a dialog can be either heads or tails 🙂
Possible barriers of successful outsourcing of your software development:
- Vague or less-detailed software requirements specification: You need to make a very descriptive and detailed SRS with process diagrams, graphical UI mock-ups etc. “Leaving no questions behind” is the best strategy
- Your organization is not ready to put in the resources: You have to spend a vast amount of resources into SRS and not at least project management and follow-up tests, and you have to be very patient. Expect to spend a couple of months of the total project as “learning money”
- Not understanding the cultural differences: The Indian man is very polite, and he is not keen to show weakness. This politeness is deadly. You have to be aware of, that a “Yes, it is done” or “Yes, I understand”, not necessarily has the same meaning as we know it from the English dictionary
- Not teaming up with specialists: If you don’t have inhouse specialists with the competencies of testing and ensuring the product quality of what is delivered, then this can be very deadly to you
- Not making the partner a part of your company can make both you and them drift longer and longer apart only toward more
There are obviously also some quite significant benefits, if you can overcome the barriers (or “fall traps”) of outsourcing:
- Flexible software development capabilities with short time contractual binding, with access to a large field of different competencies which can be (un)coupled from day to day
- I don’t think you will save money, but you can quickly establish a team and initiate projects
- If you have spotted a well-structured company with a good management, then you can also consider in investing in the company.
Over and out, for now..