The current situation
IT departments have increasingly been moved to India over recent years. Coding is considered a low-skill job now.
Out in the Bay Area there are plenty of folks who would love to create a little bit of protectionism around their I.T. jobs, but we are far better off letting a lot of those jobs go. Low-skill jobs like coding are moving offshore and what’s left in their place are more advanced project management jobs. (New York Times from 2003-07-12)
Time to reconsider your own position.
No matter how cheaply an hour can be bought in India or any other country, there will always be demand for
real problem solvers.
In order to make sure that the coding part of a project consumes as little time as possible, one has to go for the most productive tools.
Why not choose the most productive of all programming languages, APL?
One must also go for the right approach: analysing, specifying, coding, testing and binning all done by different people (also called CASE) is expensive and just does not work. We know this!
APL and agile programming
In September 2005 I became a member of Optima’s “Agile Programming Team”. Optima is a British consultancy working for the largest British Pension Fund.
We worked in teams of two (pair programming), but one on the team was an end user. And that worked!
This method ensures that what is delivered is what the end user needs. She is involved in the implementation of the business logic as well as designing the user interface.
By using words from the end user’s vocabulary for variables and functions and also by having cover functions for APL primitives like AND and MATCH, or defined functions with proper names like isOneOf it became possible for the end user to actually read and understand the code.
Okay, there were also some funny symbols, but they just ignored them.
Of course this is a useful concept only when implementing business logic. There is no gain in using a cover function for Match in other, more technical parts of the application.