DevOps synthesizes methods, processes and tools with the goal of improving your company’s velocity at which you deploy applications, which serves your customers better. Teams using DevOps best practices and tools to create production software are much faster than organizations using traditional infrastructure management and software development methods. In 2016, RightScale’s “State of the Cloud Report” estimated that 70 percent of SMBs were adopting DevOps methods. Every indication is that percentage has increased.
For companies that already understand the value of software development outsourcing, partnering with a capable outsourcing vendor for DevOps is a natural next step. For companies who want to embrace the benefits of DevOps but haven’t yet, aligning with a qualified DevOps outsourcing company is really worth considering.
Consideration No. 1: Pick the Right Project
If DevOps is new to your company, or the DevOps partner is new to your company—or both—it’s very important to pick the right project to begin work together. Also, it’s possible that the project you target will influence the selection of your DevOps outsourcing partner.
Here are some questions you may want to use in selecting the right project:
This question…. | is important because… |
Which software, if successful, will show the clearest benefit (i.e.: ROI) to the company? | Software with clear business benefit will generally get better buy-in from the user community, and higher quality participation. |
Which software has the clearest goals and scope of work? | It’s always easier to achieve the goal, when the goal is clear. |
Do any projects require the use of new, unproven technology? | Unfamiliar technology can be a dangerous variable in your work and risk estimates. |
How many other systems will the newly completed software need to integrate with? | Integration testing is time-consuming and requires a high levels of coordination. |
Which projects are expected to have the longest duration? | Unforeseen variables naturally occur in long running projects — personnel changes, other business distractions, loss of momentum, etc. |
Which projects are expected to require the largest number of participants? | More people involved equals more complexity. |
What employees (IT and business stakeholders) will be part of the projects? | DevOps requires good collaboration and speed. IT and business area participants must be able to fulfill their roles accordingly. |
Consideration No. 2: Vendor Communication
In selecting the right outsourcing DevOps partner, the ability to communicate well is one of the most important considerations. A partner who communicates poorly can derail a relationship that has all the right methods and tools in place for success. design iterations and project sprints simply cannot happen if your outsourcing partner lacks the proper communication skills. Conversely, an outsourcing vendor who is truly acting like a partner in the relationship, communicating well and often, can help you overcome any number of unforeseen issues along the way.
Evaluate how well prospective vendors respond to your due diligence questions. Their responses could tell you a lot about how they’ll interact with you during the project. Are they clear? Do they interact in professional ways, or does it seem a bit random and disorganized? Are they prompt and timely in their interactions, or are there “black holes of silence”?
If you see evidence of poor communication during the due diligence process, you’ll almost certainly have problems when you’re actually engaged in working together. As you check references, try to determine if other customers experienced problems in communication and interaction—those can pose as red flags when it comes to selecting your vendor.
Consideration No. 3: Vendor Location
Global software development outsourcing is a proven success for many companies. However, you must be attuned to the vendor’s geographic location compared to yours. Would time zone differences be an issue? This may affect the geographic location from which you’ll select your outsourced DevOps team. In a recent survey, one-third of U.S. companies that outsourced to India considered the 10-hour (or more) time difference to be a big challenge. DevOps activities cannot be artificially hampered because of time zone issues. The best DevOps outsourcing companies have a business model that allows U.S. time zone companies to interact easily with the vendor’s “A team” supporting your project. Be wary of companies that assume that all Skype and conference calls will be done off-hours to your normal business day—or plan to have secondary members of their team available during your normal work hours.
Consideration No. 4: Vendor Technical Skills
As you examine a prospective outsourcing DevOps partners technical capabilities, consider these questions:
- Do they have the relevant skills and tools experience I need?
- Is this a core competency of the company, or the expertise of a small select few inside the company?
- How does this company go about attracting new talent with these same skills?
- What certifications do they hold?
Automation of good process makes it possible to eliminate bottlenecks in the software development cycle, so you can truly “sprint through your Sprints.” Automation tools must be used with consistency by you and your outsourcing DevOps partner. Perform an inventory of the available tools:
- Will you be able to seamlessly (and automatically) promote code?
- Can you perform test-driven design?
- Can you perform test-driven development?
- Can you easily associate features and fixes with promoted code?
- How will you perform regression testing?
DevOps teams will have programming language expertise that includes Python, Ruby, PHP and Java. Remember: DevOps means infrastructure as well as applications, so a true DevOps outsourcing company will have employees with expertise in infrastructure-oriented software and tools such as Windows PowerShell, Docker, Puppet, Ansible and SaltStack. You may also want to look for expertise and certifications for networks, databases, and operating systems.
DevOps outsourcing companies should be experienced with the continuous integration (CI) method—the CI tools which support the associated processes. CI tools help merge source code updates from all developers on a specific software build, notifying the team of any failures in the process. Popular CI Tools include CruiseControl, Jenkins, Travis CI, TeamCity and GitLab.
The best partners employ a programming staff that have achieved certifications that are important for your DevOps project needs. In addition to certifications around the tools and language mentioned earlier (such as Puppet Certification, for example), you will want to look for certifications in:
- Scrum Master
- Project Management (PMP)
- AWS Certified SysOps Administrator – Associate
- AWS Certified DevOps Engineer – Professional
Consideration No. 5: Vendor Commitment to Training
As you evaluate a prospective DevOps outsourcing company, ask yourself: Is continuous training a part of their business model? A good partner invests in their programming staff’s training on a continual basis. We like to see evidence that their programming staff regularly renews their certifications—and the outsourcing company should be actively advocating this.
Consideration No. 6: Vendor Experience and Size
To succeed with DevOps outsourcing, you need a partner who has relevant experience and is a size that complements your company size.
Experience. The ideal DevOps outsourcing team will have experience in your business vertical (example: discrete manufacturing, banking, etc.). It also should have expertise in the system functional area of your target project (e.g. finance, e-business order processing, warehouse management, etc.). Of course, the demonstrable experiences should include work using Agile and DevOps techniques.
Size. The right partner should be neither too large nor too small. The outsourcing company needs a pool of programmers large enough to keep with the intended work pace of your project. Conversely, we caution IT managers to be wary of extremely large outsourcing companies. Your project and company must be “big enough to matter” to the partner you select. If you are seen as too small in terms of the revenue opportunity, the outsourcing company will defer attention and their top talent to larger customers who are more able to influence decision-making.
About the Author / Steve Mezak
Steve Mezak is founder and CEO of Accelerance, a leader in global software development outsourcing, as well as the author of “Software Without Borders,” co-author of “Outsource or Else: How a VP of Software Saved His Company” and a CIO columnist.