Comment It is a mixture of both... (Score 1) 653
The thing to understand about programming, is that it is a 'give and take' situation. The programmer presents a model for someone, and it needs the user to bounce back information if something is not done. The major problem also is that it takes weeks of talking and outlining exactly what is needed and also requires the programmer to give a model and show it to the customer to make sure it works that way. Given the time difference between India and the US, the real time 'give and take' sessions are reduced to innocuous e-mails or messages and vague interpretations which often leads to incomplete or incorrect implementations.
I have seen less educated programmers on this side of the world who have pumped out reasonable programs mostly because they have the customer-programmer interaction, which facilitates proper changes, albiet the coding is still haphazard or terribly implemented.