Insights | You Thought Offshore Outsourcing Would Take Your Job!

You Thought Offshore Outsourcing Would Take Your Job!

By Andy Hilliard | November 4, 2013

You_Thought_Offshore_Outsourcing_Would_Take_Your_JobSomeone recently complained to me about how he thought offshore outsourcing of software development was causing jobs to go away in the USA. I don't think that's true but here's what may have a bigger impact on programming jobs – automation.

Developing complex software systems with a team of programmers is hard. And the re-engineering of legacy applications is even harder. The promise of automation is that you can somehow specify the software's functionality in a higher-level language and/or diagram and generate the source code automatically.

Automated testing can then verify that the correct functionality is achieved. Enhancements and new features are made at the higher-level language and a fresh version of the application's code is generated - removing the requirement for hand-crafting the code.

Despite a history of automation appearing to threaten jobs, it can actually enable jobs for programmers, especially in North America. That's because automation can make American programmers so productive that their higher hourly cost is bearable since they are more productive than offshore programmers at a lower hourly cost. Automation also enables programming projects that were previously cost prohibitive and impractical.

Earlier in my career as a programmer I saw automation come and go several times without much impact. First was the Computer-Aided Software Engineering (CASE) craze in the late-1980s. The idea was to visually create diagrams on a computer screen that could then generate the source code of the application. The emphasis on generating business logic with CASE tools side-stepped the need for good user interface design. And in those days, we were just making the transition from command line interfaces to graphical user interfaces (GUI).

Then I used a tool for the visual drawing of user interfaces for Sun workstations that used X-Windows and Motif. This helped create a nice looking GUI by generating code but it took time for the tools to support new GUI widgets and of course some of the tools had bugs.

The flaws in the first generation of tools were not of vision but implementation. They were difficult to customize and adapt to emerging technology. Generally software technology changed too quickly for the old tools to keep up. Concepts like agile development, separation of concerns, or aspect oriented coding were difficult or impossible to implement. The best these approaches could do was get you a running start at some functioning code and then you made manual changes to customize the code further, thereby breaking the connection with automated code generation.

Automation that addresses these shortcomings is now at hand in the form of a new generation of model-driven engineering (MDE) tools.

One exciting opportunity for the application of MDE and code generation is the automated reverse engineering of a legacy application. Automated parsing and refactoring techniques are applied to create a highly visible design model that exposes and documents the application's "as is" functionality. Once the "as is" functionality is extracted from the legacy code and rendered in an easy to understand and easy to modify model the transformation can go in several directions. First, better structured and maintainable code can be generated from the model. Even better, is you can add new functionality and features to the application model before code generation and take advantage of the improved maintainability at the same time you generate the new application.

Is it all 100% automated and untouched by human hands? No, but improvements in programmer productivity are in the range 5 to 10 times faster than a strictly manual approach and 60% to 80% less expensive as reported by a new Accelerance certified partner company that applies these tools to client projects.

This dramatic increase in productivity makes it practical to re-engineer your business-critical software applications and systems that are suffering from expensive maintainability issues and the urgent need for enhancement. And if you have a software application like this you know that no one wants to touch it at all!

So the issue is not that you will lose your programming job to automation. It's that modernization of many legacy applications is a job you really don't even want and can never even have. You won't be replaced by an offshore programmer or a team of programmers because only automation makes this kind of reengineering and modernization practical.

Solution-oriented outsourcing like this uses a combination of automation and expert software engineering talent. Contact Accelerance if you this is the kind of outsourced solution you need for your legacy application modernization challenges.

More from Accelerance

September 25, 2020

Spotlight on Belarus: “Project Rescue” A Digital Transformation Success Story

The company I was working with had made a smart business decision – to start investing in digital transformation to build tools and resources that would increase their connection with customers.  

September 25, 2020

Spotlight on Bulgaria: The Height of Software Development in the Balkans

You can drive up Vitosha mountain for a great view of Bulgaria’s capital, Sofia, spilling across the valley floor below.

September 25, 2020

Spotlight on Armenia: From Ancient Innovation to Cutting-Edge Software Technology

For a country of just under three million people, Armenia has made a remarkable impact on history. The Soviet’s MiG fighter jets? Designed by an Armenian. The brains behind Apple’s iOS mobile...

Whitepapers

September 25, 2020

2020 Guide to Outsourcing in Eastern & Central Europe

Learn About the Key Advantages to Outsourcing in Eastern & Central Europe:

August 15, 2020

2020 Guide to Software Outsourcing Rates

Gain insight into the latest rates for software development outsourcing resources with our proprietary benchmarking guide that offers:

July 27, 2020

2020 Guide to Software Outsourcing in Latin America

Qualified software engineering teams are not easily found. 

How can we help you succeed?

We make outsourcing successful with innovative partner selection services and tailor-made consulting solutions to ensure your desired outcomes.

Let’s Get Started