How Does Automation in Continuous Delivery Affect Outsourced Software Development?

How We Got Here

Over the last few decades, there have been tremendous business incentives to move jobs to lower cost regions. This has been particularly true for software engineering - why not pay a lot less on an hourly rate for a developer in another country? Testing is a prime example - if you need to click through a website to make sure it all works on every operating system and every browser, cheap manual labor starts to look pretty compelling.

Over the last decade, many of the challenges of offshore development have become more commonly known. Hidden costs of offshore development include communication delays, cultural challenges, timezone problems, and uncertainty over the relationship between hours and value. Perhaps most significantly, it forces business leaders to ask questions they are ill-equipped to answer, such as “what is the true capability of a software engineering team?” or “how do I truly evaluate if a team that costs twice as much on an hourly basis is actually twice as productive?”

In manufacturing, the answer to this problem is turning out to be a combination of technological innovations and new processes - in particular, the use of automation. A manual job that was outsourced to another country is brought back to the US as an engineer running an automation system. What makes automation so attractive is not a simple matter of hourly cost savings - it’s a complete shift in quality and output when robotics are brought to bear. You simply can’t buy a handmade smart phone or laptop - human hands are insufficiently accurate.

From Manufacturing To Software

In the world of custom software development, Dev9 has combined industry-leading tools and processes to create a unique software development solution based on principles of automation. This allows Dev9 to provide custom software solutions at a fraction of the overall long term cost of a manual solution, while simultaneously delivering at the scale needed for customers.

Consider a website that needs to support millions of users accessing the system simultaneously. Perhaps it’s an entertainment site, or a travel booking system. The business wants to be able to test new features all the time - perhaps by exposing a small percentage of users to a new feature for a day to see if it impacts sales.

The most basic metric for measuring the quality of a Continuous Delivery-oriented team is the time it takes to do a deployment, including a complete test pass. A good Continuous Delivery organization will measure this in minutes. Traditional manual/waterfall organizations will measure this in weeks or months.

In a traditional engineering organization, the business would work with a development team and then that team would hand off the work to be tested by a large manual team. The process of adding even a simple change can take weeks or months. With Dev9, a small, highly proficient engineering team builds both the software and the test automation framework. This allows for rapid deployment with software robots performing tests at scale.

Even smaller projects benefit from automation. Consider a simple application, expected to be deployed to Mac OS, Windows, iOS and the countless Android devices currently on the market. A solo developer can benefit from a fleet of software robots, helping build, test, and distribute that application.

To be crystal clear, there is still a role for manual testing, but that manual testing is for higher value questions, like "is this feature intuitive" or "does this look good," not "does this workflow work on eight different browsers" or "will this software work if we have ten thousand users?"

Customer Demand For Precision

When customers engage with Dev9, a project starts by laying out a pipeline for software development, testing, and deployment. This pipeline is based on a combination of best practices, target platforms, scale, and a thorough analysis of any existing systems.

Common drivers for new projects include a need to scale, a desire to move to a cloud-based platform such as Amazon Web Services, a need to adopt new user client technologies such as mobile or Internet-of-Things devices, or just simply a need to move off an archaic system.

Whatever the client initiative, a common driver for seeking out Dev9 is a need for a high quality solution with a desire for a very collaborative, goal oriented team.

Ironically, once the automation pipeline is in place, it’s the ongoing relationship and collaboration that drives longer term engagements. Once a client gets used to working with a high performance, automation-focused team, it’s very common for clients to extend that working relationship to other projects and opportunities.

This pipeline and the associated processes are often described in the industry as Continuous Delivery. It’s not that the software is deployed multiple times a day, but that it is always ready for deployment.

Smaller Collaborative Teams

This is probably the most important aspect of Dev9’s model. By using smaller teams and leveraging automation, the real conversation turns back to solving business problems. If a standard team shifts from a remote team with 5 developers and 10 manual QA to a single integrated team of 7, that’s a huge optimization of management, people, and effort. It’s a lot easier to get the small team aligned, focused and delivering.

Probably the most basic metric for measuring the quality of a Continuous Delivery-oriented team is the time it takes to do a deployment, including a complete test pass. A good Continuous Delivery organization will measure this in minutes. Traditional manual/waterfall organizations will measure this in weeks or months. Imagine the opportunity costs alone in waiting for months to roll out new features.