Outsourcing Software Dev - Impact on DevOps

14
Impact on DevOps Successful Outsourcing

Transcript of Outsourcing Software Dev - Impact on DevOps

Page 1: Outsourcing Software Dev - Impact on DevOps

Impact on DevOps

Successful Outsourcing

Page 2: Outsourcing Software Dev - Impact on DevOps

DevOps

• Important, but often misunderstood– Concatenation of “development” and “operations” – Good reference points: Entries on Wikipedia &

Agile Admin– Grown out of agile, lean and other methodologies as

a way to move development and IT operations out of silos into a collaborative team that works seamlessly to deliver software and services incrementally to end users without artificial barriers.

Page 3: Outsourcing Software Dev - Impact on DevOps

In a “Traditional” Agile Dev + IT Ops Situation

• Dev Team uses agile and incrementally releases working software– Product Owner gives acceptance

• Production version of software passed to IT Ops. – IT Ops manages release operations

• End users do not get value from incremental releases or a chance to feedback– Dev Team is only called for bugs and major issues. IT

op handles requests & reports

Page 4: Outsourcing Software Dev - Impact on DevOps

In a DevOps Situation• Dev and IT Ops work as one

team to manage and release software– Responsible for end-to-end

process of development, release, and management of software assets

• Teams work with collaborative mix of automation, configuration, integration, and quality assurance. – Dev widens the scope of their

testing and QA to ensure software is operationally ready

• Software released to users in smaller, incremental releases as it is ready. – Users can feedback

directly to Dev Team. • A culture change within

organization allows a continuous loop of improvement and change in organization

Page 5: Outsourcing Software Dev - Impact on DevOps

In A DevOps Implementation• Dev and IT Ops work as one team

to manage and release software– Responsible for end-to-end

process of development, release, and management of software assets

• Teams work with collaborative mix of automation, configuration, integration, and quality assurance. – Dev widens the scope of their

testing and QA to ensure software is operationally ready

• Software released to users in smaller, incremental releases as it is ready. − Users can feedback directly to

Dev Team. • A culture change within

organization allows a continuous loop of improvement and change in organization

Page 6: Outsourcing Software Dev - Impact on DevOps

What Does This Mean for Outsourcing?

• Basically there are two types of projects– Discrete

• May be developed using agile (or not), but production release is handled by IT Ops. Releases few and generally larger.

– Continuous Support Mode• Dedicated Dev Teams & IT Ops work

together to provide smaller, incremental updates to software & services

• Both types can be outsourced– But generally, most companies

have only outsourced discrete projects. • Offshore providers without

direct communication because of language and work-hour offsets between dev team and product team lead to higher detail in specs, more team supervision and intermediaries.

• Lowers communication and collaboration between Dev and IT Ops teams.

Page 7: Outsourcing Software Dev - Impact on DevOps

What Does this Mean for Outsourcing?

• As DevOps has become the “gold standard” for critical apps deployed on networks– Outsourcing providers have matured, added skills and

services– More able to integrate into DevOps situations with

dedicated teams• Service providers with DevOps experience & skills

− Provide teams that can take responsibility for wider scope in test automation & integration, automated release processes, configuration management & other tools of data center

Page 8: Outsourcing Software Dev - Impact on DevOps

DevOps Implementations Vary Widely

• Many tools, practices, stacks & processes in use in industry. – Implementations are diverse, but similar in

aim and broad points• Individuals with experience in similar

situations can adapt to other implementations relatively easily because although tools may be different, the culture of achieving reliable results with high quality is the same.

• Client implementations may be at different levels of implementation – outsourced teams can bring wider experience and knowledge to table

Don’t look for unicorns. Look for good, comparable experience, the right personality and skills for the long haul.

Page 9: Outsourcing Software Dev - Impact on DevOps

Communication & DevOps• DevOps requires a high level of real-time collaboration and

communication– Tools are only part of the solution– If team members cannot communicate directly in real time– If intermediaries & hierarchical chains of responsibility push teams back

into silos• DevOps will not be successful

• In DevOps situations outsourced, dedicated teams should have – Overlapping work hours with IT Ops and product team– No technical, language, or cultural barriers to direct communication

with other members of the whole DevOps team• Teams in the same geography or nearshore are the best situated to meet these

requirements

Page 10: Outsourcing Software Dev - Impact on DevOps

Bottom Line on Outsourcing in DevOps Situations

• A dedicated, outsourced development team in a DevOps situation shouldn’t be any different than an in-house team– The must be able to blend in seamlessly to make DevOps

successful• Why consider an outsourced team?

– Skilled, experienced teams take time and money to develop– If the provider can take responsibility for bringing together a

qualified team at a reasonable cost, with the right skills and personalities it is a plus• Fits well for starting new initiatives, when you don’t want to go

through reorganization and hire cycle with existing staff

Page 11: Outsourcing Software Dev - Impact on DevOps

What to Look for• Key points to consider when

picking a provider for outsourced teams in DevOps situations:– Start with same requirements

recommended for outsourcing dedicated teams

– Team members must be experienced, skilled agile practitioners but their implementation does not have to match yours in every detail. Skilled agile practitioners can adapt. • If team members are not skilled at

agile, it will be harder to grasp different implementations of DevOps

• Team members should have DevOps experience

• Don’t concentrate on the same stack you are using

• Focus should be on the level of quality and reliability you use and need

Page 12: Outsourcing Software Dev - Impact on DevOps

What to Look for• Service provider should be able

to operate as a vendor & partner.– Able to share risk and reward,

provide immediate value with resources, infrastructure and practices needed without a lot of heavy lifting

– Able to come to an agreement for a startup period with the new team on your premises or with some members of your team on theirs• Plan, test and run a "shake-down”

of environment and procedures

• Select a provider that can provide a team− Available during the majority of

your working hours− With no barriers to direct

communication with your team members

− With no barriers to travel and interaction that are difficult to deal with (within a day’s travel time & without visa or travel restrictions.

Page 13: Outsourcing Software Dev - Impact on DevOps

What to Look for

• Ensure provider has infrastructure, security and IP protections that met your requirements

• Don’t expect less of your outsourced team – If your internal team senses that the new team

has less responsibilities or is less capable, inter-team relationships and trust will suffer.

Page 14: Outsourcing Software Dev - Impact on DevOps

Bottom Line

• There are good, experienced service providers for software development in organizations with implementations of DevOps– Dedicated agile teams, with agile and DevOps experience can

increase your ability to scale without causing undue disruption.

– Finding the right provider may take more work and investigation. Consider visiting the team as a part of final evaluation.

Scio Consulting International is an experienced, proven nearshore provider of dedicated teams to projects in DevOps implementations for our clients in North America. We would be glad to discuss your project and environment and show you how our teams could work with you.