Clicky Web Analytics

outsourcing, offshore failure, software development, agile development, distributed software development, ruby on rails development, .NET development, offshore outsourcing, outsourcing failure

Entries from July 1, 2008 - August 1, 2008

Insourcing, Offshoring, Nearshoring, Dual Shoring, Multi-Sourcing, Rural Sourcing? What ever happened to good old outsourcing?

Jon Graham shared the following outsourcing advice for newbies... 

"The outsourcing movement has just reached puberty and will be maturing over the next few years. In the past, it was thought that only large organizations could afford to outsource, but that is not the case any longer. The small to mid size companies are getting into the game as well. However, for the outsourcing newbie's out there that want to take the plunge, there are a few things to consider in order to ensure success."

Whether you're looking at India, Russia, Ukraine, Vietnam, China, Brazil, Montana, or the Philippines, outsourcing isn't easy. Here's a list of tough questions you need to ask:

1. Process: How am I going to manage the work that I am going to outsource? What processes and procedures do I need to have in place? How often do I want updates? What level of information do I need? What delivery model am I comfortable with?

2. Tools: What tools can best help me manage the process I've defined. Do traditional individual tools work; mpps, word docs, emails, spreadsheets? How can I get real time project updates about vital project statistics/metrics? Is there single web-based, software development management (SDM) system?

3. Vendor Selection: What type of experience/skills/corporate culture does my service provider need to possess in order for us to be successful together? Is this a one project stand or is there potential for a long term engagement? What types of work has this vendor done in the past. Interview them as you would a potential employee.

The Old "Follow the Sun" Pitch

(This is not a new post. I just decided to change the title...)

A lot of offshore companies will tell you (primarily India, Philippines, China, and Vietnam) that if you work with them, the timezone difference will allow them to work while you sleep. They're an asset because you now have a 24/7 development cycle. Sadly, it's often a liability.   India outsourcing, China outsourcing, Brazil outsourcing, Costa Rica outsourcing, software development, Pakistan outsourcing, .NET development, Java developer

In most cases we've seen, unless the specs are really good, and the development team sees the big picture, a 24/7 development cycle becomes a 24/7 headache. The lesson is that you should either have good specs, or be prepared to pay for specs. A mature development team will tell you this from day one... it's a sign of maturity. We've seen too many floundering projects resulting from poor specs.

I met a guy that was looking for offshore Java developers. He did a lot of research and ended up working with a company in India. As expected, part of their pitch was that they program while the client sleeps, a real 24 hour development cycle. We've heard this pitch before, and in theory it sounds good, but it assumes that the developers don't make any mistakes. In our experience, problems occur when requirements are not clear and there is a lack of communication between both parties. The client ended up working with a "near shore" vendor, but the following advice could help prevent problems with your offshore team.

-Committment on both sides: Make sure you have a local and offshore project manager. The local PM will communicate with users or internal stakeholders and the offshore PM will communicate with developers. It's helpful if they both have experience working with distributed teams.

-The Key to Any Relationship: Whether it's a marriage, a football team, or a team of software developers, consistent and structured communication is the only way to prevent heart-breaking (not to mention bank-busting) misunderstandings.

-Proper Methodology: Agile or Scrum methodology is helpful because it's highly iterative and allows for changes

-Solid QA: The offshore team needs to have a solid QA process in place. Developers aren't the best testers, and they shouldn't have to be. Make sure your offshore team has heavily invested in QA. Ask about their QA process and how they ensure that their work makes the grade.

-Find Solid Developers: Past work, a pilot project, or an exam are all helpful to make sure you're getting a qualified resource. It's not always critical to get an incredibly experienced developer as long as they have a good attitude and are willing to learn. An honest vendor will tell you the strengths and weaknesses of their team.

Software development is a piece of cake... or is it?

This excerpt came from a post on Gunnar Skogsholm's blog about software project failure... Software development hard. Right from the beginning there are a million things that could go wrong. This list on comes from

Software is risky business. Here's what can (and usually does) go wrong:

  • team dysfunction
  • failure to understand software (process, costs, etc) 
  • lack of leadership or vision 
  • failure to understand, communicate, document the problem domain description 
  • failure to architect a solution 
  • failure to design a software application 
  • failure of project management 
  • failure to select good tools 
  • failure to select reliable technologies 
  • failure to implement the software 
  • failure to test the software 
  • failure of quality assurance       

Software development is...            China outsourcing, India outsourcing, Pakistan outsourcing, Ukraine outsourcing, Philippines outsourcing, software development, outsourcing failure