IT is all about adaptation and
change, if you can’t handle it, you’re in the wrong industry.
October 2013. My fifth trip to
India and like my previous trips it was as eventful, colourful and fun as ever.
I really love visiting this country, the people are really cool, the food hot
and the culture vibrant. It’s a great place to visit for work in IT and I have
had many wonderful experiences being there. This following series of blog posts
will deal with some of my major observations of working with IT Delivery
projects in India, and the challenges and observations that I have made over
the last 10 years being involved with them from initially as a .NET/COM
developer through to Solution Architecture and DevOps
First up let me say that there
are lot of great things about offshoring that work and work very well. Managed
services work, call centres and help-desks are great candidates for offshoring
because, by and large, the processes they follow are (usually) well-defined and
the steps to resolve and assist with issues are highly prescriptive. Application
delivery however is a very different beast and this is what I am going to
concentrate on.
In a typical IT application
delivery project you are always going to require some base, non-negotiable
fundamentals for success such as:
- Strong management support to streamline and plan work
- Close collaboration and good working relationships between teams – in Agile that goes without saying
- Good architecture and well-defined requirements – complemented by governance processes to manage gaps and change.
- People who can think laterally to solve issues and solve them early, quickly and efficiently
- Good investment in development and environment infrastructure to ensure there are no excessive downtimes waiting for software to build and deploy.
- An embedded culture of continuous improvement and automation to future-proof against risk and maintain a high quality of work
- Plenty more but that will do for now.
Running a delivery project
offshore is no different however it is amazing at how of all the items I listed
above, how poorly done they can be when their importance is scaled done or the
corners end up getting cut in an effort to rein in costs.
Cutting corners on an IT Delivery
project is always be a very stupid thing to do, but this is exacerbated so much
more when you throw offshore delivery into the mix. Simply put if you believe
that being able to deliver software offshore for your customers will be
fundamentally cheaper for you as a business than doing it onshore, or you can
cut corners such as not invest heavily in supporting infrastructure and staff,
reduce travel budgets, or not hire experienced architects, testers, developers
and DevOps staff because people will just “work harder” or “work smarter” then
you are delusional.
One of the most important things
to ensure success is the implementation of effective communication between
teams and the right infrastructure to support it such as video conferencing,
tools like Lync and frequent travel back and forth. Failure to do this creates
an “us and them” culture that spreads like a virus. If it is not addressed, the
environment can turn very toxic as the bad blood spreads from the teams at the
lower end of the spectrum, who are usually the most fearful of losing their
jobs, bubbling up to the top causing reactionary and defensive tactics on both
sides to avoid accountability
Typically the end results of this
are onshore teams will try their hardest to put down, discredit and
deliberately (in extreme cases) sabotage work done by offshore. Conversely
offshore teams will become hell-bent on proving how much better they are than
the onshore teams by constantly raising issues, escalating even the most
trivial problems to management and being deliberately vague and obtuse, even
lie, to avoid doing work or taking responsibility.
In short nobody wins, and if
these toxic attitudes are left unchecked to fester then all hell breaks loose,
projects fail, and people leave the company. I’ve seen numerous cases where
onshore staff turn highly aggressive in telephone conferences as the pressure
builds, finger pointing emails begin flowing back and forth, and everything
descends into an ugly mess. And all this within the same company – thankfully
clients were never witness to things like this!
And it is really stupid because it is so easy
to rectify by doing a couple of simple things such as:
- Have a lot of onshore/offshore travel so the teams mix and integrate. Once every few months is not enough, people should be flying back and forth every two weeks so relationships are formed and people get comfortable with each other.
- Don’t place employees on these projects that have difficulty dealing with offshore teams. For some people cultural barriers are just too much to overcome and they will be affronted with the feeling of being forced to adapt and change “their ways” to suit others. These people need to be weeded out immediately
But considering this stuff has
been documented 1000 times over, and a lot better than what I can do, I’ll instead
delve into some other areas
Coming up next time: The Cost Delusion