søndag den 22. januar 2012

Development department Offshore outsourced

In more than 11 years, I have practiced the use of development resources in countries where a developer costs less than is the case in most European countries.

The motivation was and is that the number of developers is low in countries where my current workplace is located. Using highly trained and highly skilled development resources is a requirement for the quality it is desired to deliver in. But it does not go in hand with our customers' wallets, if applicable Danish resources. And then suddenly it is not seriously and professionally.

An opportunity to look at offshore occurred late in 2001 when a major task was to be delivered shortly. A few searches circled the resources to be used in.. Not freelancers, but a real business venture in Thailand, with resources that had the necessary skills. I was under time pressure and chose to take the chance.

My approach at the time were showing signs of inexperience. I expected to be delivered:
  • Same standard as from my colleagues in the office
  • With the same understanding of business
  • With the same urgency
  • With the same well-engineered code
What I got was:

  • Questions of a technical code level of detail I was not accustomed to
  • Many questions to the user's workflow and value for the user by the desired functionality
  • Everything was delayed and dragged
  • Requirements to me for approval of test protocols
  • A code package with a correct but too complex architecture ....this was just a 200-hour task incl. all.

Delivery lived in every way up to the customer's requirements, but the project had taken 3 times as long and hourly consumption was 7 times as high as planned. The supplier paid the cost at no additional charges or as per contract.
Arrgh! But it was incredibly instructive. So the second and third time the train was in the same way. My thesis was that it was teething.And that was exactly what it was.
Today I have a lot of long lasting, expensive, stressful and inefficient projects behind me.A very expensive experience.But I also have a number of successful projects behind me. A number of projects which offer exactly what the customer has requested, delivered on time, delivered with the cost agreed.Common to them is:

  • Planning
  • Analysis
  • Planning
  • Documentation
  • Acceptance by customer
  • Planning
  • Documentation
  • Form the test protocols
  • Verify
  • Development
  • Test
  • Approval
  • Planning
  • Education, training, education
  • Rollout
  • Approval
In most projects I have had all these elements from early times.But the developer has been sitting right next to me or right next to the responsible system consultant.What I did not understand until after 4-5 projects was that the level of detail was missing. It had previously been obsolete, due to the fact that a chat over coffee or just a call, would identify possible interpretations.The understanding of business processes as I have, my developer also have, so wedo not need to write all long documents about business understanding. I have no time because there are other tasks are to be performed.
WRONGThere is no time make shot cuts. A little further down the path lies gold coffin of knowledge which is vital to the project. And that is the real deal of short cuts.There must always be a level of detail that can not be interpreted.If you, as a system consultant, stand with your forefoot of a task, you can not deliver half finished and half detailed description of all or part of a task to an offshore outsourced developer. He simply has to guess too much. And assumptions are not based on facts.
Back to the first projects.In the first project I was under pressure in terms of the hours that were available, and date of delivery. The pressure, I sent forth.The problem was that, my lack of detailed documentation was the offshore team to deliver up on. They assumed at 70% of the details. And did it good. For the afflicted true in large parts of the task missing details. First delivery of the first sprint, was coherent as they had perceived it. First review of the solution for this sprint.
Absolutely nothing reflected the customer's requirements. And my documentation was causing it. Behind the keyboard again and after long skype and messenger conversations we solved the work after hard and frustrating months of work. After some years i realized what the root cause was. I thought I could get an offshore outsourced team to perform the task on detailed job description which I have not prioritized. I thought i could someone to do my job, without telling them what the job was. Give me a car. No details what so ever. Client might have said green Mercedez. I actually disrespected the resources on the offshore outsourced team, by not giving them the details. And blamed them not to hit the target.
So i changed vendor. And changed again.
My world is different now. But I feel and take part in wrecked projects where the same lack of understanding of detail and task definition has not been present for all or part of the project.
I still change vendor and or resources. But now i do it based on totally different criteria's like skills, experience or terms and conditions. The world i still spinning around and nothing is static.
In this blog, my experiences and thoughts that revolve around development, development methodologies, project methodologies will be published and discussed.
For what ever it is worth, I hope it clarifies a few things for you as a reader. And hope that it breaks down the taboo about talking about western snobbery and ignorance. For that is what I had in abundance when I started with Offshore Outsourced Development.
Good debate!