Posted by: Vipin | December 13, 2009

In-house or Outsourced: Which is the best way to develop software?

This is really a million dollar question!  To me, both are right and at the same time both can be wrong also!  The success and failure depends on the way you develop software.  The structure of the team, their communication, the domain, documentation level and style, language and cultural barriers, etc. are the major influencing factors.  Sounds simple, nothing new, but an open secret.

If you look around, hundreds of companies are outsourcing their development activities to many of the developing nations.  When you ask, many of the outsourcing companies say, availability of the skilled manpower, cost effectiveness, more time to look at their own core competencies are the major reasons for outsourcing.

Now let’s look at the reality.  How many of them are really successful? As far as I know, those projects are really successful to the extend both parties have understood and done their parts well.  Many of the times, the expectation differences, language, culture and behavioral aspects play a significant role in the success of an outsourced project.  More than technology, coding or testing issues, the above factors play a vital role.

Now let’s examine certain factors about in-house development. Why in-house development is more successful?   We can see, the transparency, easiness of communication, common understanding of the project and more or less a live involvement of the team on the project on a continuous way are some of the major points.

So how do we leverage the benefits of in-house success factors on an outsourced project?  If we can develop the software on a collaborative way, involving all the stakeholders on a continuous fashion, then we can surely achieve more success.  When we don’t have to depend on the weekly status reports to understand, what the other team is working and do a postmortem to take up the corrective actions and so on, things will change.  A real-time and automated reporting will make all the difference.   This is even true in the case of a fairly big in-house team.

No single approach is sufficient.  We need to take advantage of both.  Today we have Internet and Web 2.0 platforms.  Why can’t we look for a hybrid way of collaborative development, which will assure you much better success rates! When a company like IBM has proved it right by implementing the same way using the new “Jazz” platform for the development of many of the Rational products’ roll out, I think it is the right time to have a real deep look into the new “Jazz” platform.  Combination of “agile” methodology and “Jazz” platform could become a sure-shot for success!

Novice Corner:

Jazz platform:  Jazz is a new technology platform from IBM.  It is designed to transform how people work together to build software, making software delivery more collaborative, productive and transparent.  It is a scalable framework to dynamically integrate and synchronize, people, process and assets of a software development project.


%d bloggers like this: