Dark Side of Offshore Software Development, Part 2

DZone 's Guide to

Dark Side of Offshore Software Development, Part 2

In this second part, we look at how project mismanagement, unanswered calls, and the blame game can cost you.

· Agile Zone ·
Free Resource

Airbus lost $6 billion; the company’s senior management was forced to tender their resignations because of the project management jumbles surrounding the launch of Airbus A380. With 16 technical teams spread across four countries, the lack of proper supervision caused misunderstandings and losses.

Miscommunication led to designs by German and Spanish teams to be inconsistent with those of French and British engineers. They used different versions of the same CAD package that were not compatible. As a result, over 300 miles of wiring cables that ran the length of the fuselage did not fit.

This miscommunication has made it into the project management history and continues our series. With budgeting and scheduling issues out of the way, today we discuss outsourcing failures caused by communication, project management, and HR mistakes.

Project Mismanagement

“The project management was a disaster. They were poorly organized and coordinated. We often felt like we were dealing with a government clerk, not a project manager."

When you hire an outsourcing team to work on your product, you expect a project manager to coordinate the software engineers’ efforts and deliver regular progress reports. However, some software consulting companies do not realize the importance of proper project management procedures, plans, and approaches. As a result, custom software development gets swallowed up by endless streams of documentation and reports that protect the team from breach of contract penalties rather than delivering actual value.

Project management issues occur when you deal with:

  • Inexperienced teams with no software development models. They offer unbeatable prices but do not have the project management expertise to back up ambitious sales pitches. Instead of delivering high-quality software development services, they use your project as a trial run to gain experience.
  • Opposing business models. When you hire software developers to get your startup from the ground, the traditional waterfall approach will slow you down. Similarly, Agile methodologies may not suit industry incumbents with an established business process.
  • Cultural differences. Traditional offshore outsourcing destinations include India and the Philippines. Considering the economic circumstances and market relationships in these countries, they cannot offer the same project management approaches as European or American specialists.

How Can You Prevent Project Management Fiascoes?

  1. Study reviews and request a trial run. Negative reviews will provide an insight into the problems your project can run into, while a trial run will enable you to assess the project management methodology in place.
  2. Select the IT outsourcing vendor that shares your values. Coinciding business approaches will facilitate understanding and enable you to establish effective and transparent two-way communication.
  3. Consider alternative offshoring destinations. Ukraine’s software companies offer the same level of expertise as Indian developers but share Western values and culture with clients from the US or the EU.

Invisible Team

After a positive start, they stopped taking my calls. I contacted them continuously for a month, but they told me one of their employees wasn’t working there anymore. They then told me they got a new employee, but that resource only worked there for one month before leaving. As a result, no one worked on my project for two months. It also came to my attention that they were unable to pay their employees salaries, causing their employees to leave the company. This continued for six months.”

One benefit of hiring an outsourcing team instead of individual freelancers is the ability to scale web development services and shuffle team members. However, some offshore vendors cannot keep their talent from running for the hills. As a result, your project gets passed from one software engineer to the next, and each takes weeks to get up to speed and make sense of your requirements and the predecessor’s reasoning and technology stack selection. The finished product resembles Frankenstein’s monster of disjointed code lines and conflicting commands.

The reasons behind the revolving door of software engineers are obvious:

  • Increasing profit margin. Outsourcing vendors keep their prices low to gain an advantage over the competition, but their salaries are lower still. While junior-level developers use these companies to gain valuable experience, they never stay long and move on to greener pastures as soon as they get a chance to shift up the career ladder.
  • Poor corporate culture. The number of software engineers in traditional IT outsourcing destinations often exceed the demand. As a result, developers have to compete to get a good position, while companies neglect to provide them with comfortable work conditions, growth opportunities, and fair compensation.

How Can You Protect Yourself from Staff Turnover?

  1. Avoid IT vendors with under 50 employees. Most companies work on several projects simultaneously, and the more experienced developers they have, the bigger the chances of getting a professional to complete your project even if one of the team members leaves.
  2. Request interviews with individual team members. Besides traditional questions on prior experience and skills, ask about the time spent with the company and future career prospects. Learn more about the working environment and staff turnover from software engineers rather than sales managers.

Blame Shifters

The management shifted to necessitate senior-level meetings to locate the source of problems, which was time-consuming. We asked for more regular meetings from senior management, which could not be arranged. Deliveries were delayed and required follow-up calls, and we often called their personal cell phones to reach them after not hearing back.”

You don’t expect to deliver your SRS to the IT vendor and return in three months to get your product. However, you do not pay the offshore company to monopolize your time with meetings, Skype calls, and emails. You certainly do not expect to take on the roles of project manager, quality assurance specialist, and team leader. The worst-case scenario includes doing the work on your own while paying the company that refuses to answer your messages.

A variety of reasons can cause these scenarios, from cultural differences to language barriers and simple negligence. Newly-established IT outsourcing vendors are the most frequent offenders. Without an established project management strategy, they rely on Google search and Wikipedia entries to get them through the development process. As a result, your project turns into a time and money drain.

How Can You Reduce Micromanagement in IT Outsourcing?

  1. Establish a project management plan. Create a schedule for regular meetings and develop templates to include the attendants, questions to be discussed, preferred communication media, and duration. Keep to the schedule and make the team follow it.
  2. Add project management specifics and breach of contract penalties to the agreement. Do not stay with the company that consistently fails to establish communication and does not meet your management requirements.

We’ll stop here and let you have a break from the dark side of offshore custom software development. The third and last part of this series will take you through the rough patches of dealing with incompetent developers and persistent bugs. Stay tuned for technical problems your project can encounter with IT offshoring.

it outsourcing ,offshore application development ,outsourced product development services for startup ,outsourcing ,project management ,software developent

Published at DZone with permission of Viktoria Klochkova . See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}