How to succeed in a web development project?

clyde

Self-proclaimed Expert
Apr 22, 2010
3,157
46
0
NEVER outsource to India.

If you had to choose between an Indian company and EU,UK,US company pick the later and pay them 30% more.

Learn my lessons 5 times over now.

Incompetent assholes.
 


I'm sure there's some excellent developers somewhere in India, but sadly, I have yet to experience them. Back when I did freelance, I'd simply refuse projects that had an Indian involved with the design, or whatever. It just simply wasn't worth the headache cleaning up their mess.

Every single time I was involved on a project that had an Indian also working on it, it was a nightmare. Code is sloppy, no comments, all over the place, file & directory structure is a complete mess, no organization at all, etc. Then I need to make my client happy, so have to spend hours of my time sifting through and cleaning up the garbage.
 
I have two people I work with in India and they are excellent.
And I am not kidding, truly, truly excellent - clean, readable code, great solutions, good communication, everything.

It might well be the case that you suck at outsourcing, which is very usual.

Read this for a better deal / experience regardless of country:
Blind Ape Seo » How to manage outsourced projects

::emp::
 
Every Fortune 500 companies, including US Outsourcing majors outsource their IT, including web development to India anyway... The problem is that the top grade programmers are way overpriced even in India.

And LOL at 30% more for US, UK and EU. It is a lot more.
 
PS: I took too long to edit the post

@EMP didn't know you were an IT project Manager.

Blind Ape Seo » Requirements and you <-- this is a good one..

Plus I will share couple more things:
Indian Programmers need a Business Analyst to be able to write good code. And they need a really good BA. Rhey usually code exactly the way the requirements are defined by the BA, so the BA can't go wrong. So you need to be able to write the requirements yourself, or hire someone to do it for you.

You can't just send off an Email with a rough Idea of what you want.

You need to break down your requirements to the finest details.
Create every possible use cases.

PS: At my day Job I have managed Great American Developers, Some great Indian Developers, BSAs, and some mediocre Indian Developers too. And I could manage to squeeze out real great code even from the Mediocre Indian Developers. It is all about the "Details" in the "Requirement Definition" and thorough Testing of the Functional Requirements. The American Programmers usually don't rely too much on the BAs (business Analysts)


Also, even today, in most Outsourcing engagement (Multi million multi year engagements), The Business Analysts are usually Americans, or if they are Indians, then they are usually MBA from top B schools and are paid a lot more than the Programmers, unlike in the USA where a Programmer and an Entry level BSA are paid the same.

In India, an entry level Business Analyst makes upto 4 times an Entry level programmer. So, there you go.

And example Requirement Definition will have "Click this Button or link to got to page 2"

Oh and Indians hate Flower boxes and comments. There are processes, like multiple level code review, in place to make sure that they Add comments, otherwise they won't.
 
It might well be the case that you suck at outsourcing, which is very usual.

Read this for a better deal / experience regardless of country:
Blind Ape Seo » How to manage outsourced projects

Nice article, emp. I guess it depends on the type of project, and the role you want the developer to play. For some things, it probably makes more sense to outsource to India, but as you alluded to, you have to remove ALL decision making from the process, down to the most minute details. One of the joys of working over cultural boundaries I guess.

If you just need a zombie who can punch out code, then assuming you find a good one, an Indian would probably work fine. However, you can get into trouble when it comes to larger scale or more in-depth projects. Most clients don't just want someone who can type code, but someone who is going to provide input, let you know what's possible, and give you advice on the best way to move forward from a technical standpoint. You're not going to get that from an Indian. But hey, I guess that's why us Westerners are paid more. :)

That, and from my experience, the majority of Indians aren't going to put in the effort to understand the client, their mentality, what their vision is, etc. Alot of clients want this, and if you find a good client, it's awesome for everyone involved. After about 6 months of working together, a new project can come in, you have a 60 minute consultation with the client, and bam, you're good to go for 40 - 60 hours of work. You know the client, their style, what they expect, and how their mind operates. Again, another reason it's sometimes better to go for a Westerner.

Indians are good for small, script kiddie shit, and that's only if you find a decent one, and don't allow them to make their own decisions in any shape or form.
 
I think a lot of the problems with outsourcing come from people who have done their own projects in the past and have never been involved in the formal process of software development. When you've only done your own projects, it is tough to differentiate the design phase from the coding, which is the simplest and least resource-intensive aspect of the project. When I started out, I though it was all lumped together as well.

Unless they specify otherwise, when you go to an oursourcing firm for coding, then they are typically only interested in the coding, and they measure their work by how close to the specs their delivered product is. If you don't give them the proper design documentation, a good outsourcer will tell you they can't do their work until you do.

This is where the problems arise, because there are many others who won't let you know this, and try to use something they've done in the past just so they can get your business. Or they'll stall for time trying to figure out what exactly you want, then charge you more to get it done because they have to go and pay someone else to go through the design process.