“Management has announced that project management and application design will be done locally while coding will be done offshore.”
This announcement conveyes a number of messages.
The tone implies that coding essentially is some type of basic work. The thinking has been all done; now the results have to be written out in full and typed into a terminal, just like entering data from a fax or letter. Unless application design is done to a very fine level of detail, writing source code requires a lot of intellectual work to convert common language specifications into a running program.
The announcement implies, too, that coding is some kind of low level work. The architect has designed the building. Now the building company takes over, and while the construction of foundation, walls, and roof requires specific skills that an architect might not have it is quite clear there is a difference in the attributed value of work, both intellectually and financially. Writing source code requires very specific knowledge of ever changing APIs and frameworks. Apart from that, software architecture and implementation never are as independent as planning and building a house. While the latter is a pretty tried and true standard affair the former means solving a new problem with new means almost every time.
Since the company employs business engineers that capture requirements and produce a specification, architects that design the internal structure, and developers that write the software, “coding” must be what developers do, and coding is going abroad. Not too happy a perspective for “coders”, whose value has been downgraded while being informed they will be made redundant. The offshore “coders” probably don’t see themselves as data entry personnel, either. In example, I found Indian programmers at least as capable (and ambitioned) as their local counterparts.
The offshoring of “coding” work encourages management to relabel developers as architects, which might be what they are – or not. Often, the following questions are never answered: What does an architect typically do? What qualification must an architect have? Does the company provide formal training, or are architects simply being appointed? This non-definition of what an architect is leads to the employment of architects who never have been doing any serious programming, which in my professional opinion is a sine qua non prerequisite.
Management does not quite understand what their software developers do when they talk about about “architecture” (“planning the system down to the details”) and “coding” (“typing in source code”), especially in the context of offshoring. Of course development work can be split up like that. But then architecture would comprise 80% of the effort, and not much could be saved by getting 20% of the work done at low cost. Additionally, problems and insights during implementation often prompt an adaptation or change of architecture, requiring a more iterative approach than the waterfall modell “design here, code overseas” provides.