build or outsource? 5 considerations for your software engineering team

23
Build or Outsource? 5 Considerations for Your Software Engineering Team Successful Outsourcing

Upload: michael-dunham

Post on 09-Jan-2017

124 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Build or Outsource? 5 considerations for Your Software Engineering Team

Build or Outsource? 5 Considerations for Your Software

Engineering Team

Successful Outsourcing

Page 2: Build or Outsource? 5 considerations for Your Software Engineering Team

Is Your Organization Software-Driven?• Many organization run

their core operations on software applications – to the point where operating without them would be nearly impossible. • More are

going that way every day.• Uber is a prime example

of a software-driven service. Credit: Uber.com

Page 3: Build or Outsource? 5 considerations for Your Software Engineering Team

What Does Software-Driven Mean?• Applications provide access to

core operational functions• Customer services,

communication, and interaction are primarily application-based• Supply-chain interaction is

integrated by services into internal applications• Monitoring & measuring

operational performance is dynamic and data-driven

Credit: Uber.com

Page 4: Build or Outsource? 5 considerations for Your Software Engineering Team

Transformation• Doesn’t happen in a day for any organization – new or

old. • Companies that manage successful transformations

focus on four core areas:• Make software development and operations core

competencies in the organization• Reorganize teams and processes around outcomes, not

functional areas• Understand the importance of collaboration and

communications• Create real-time feedback loops based on objective

measurements, not gut feelingsCredit: SiliconAngle

Page 5: Build or Outsource? 5 considerations for Your Software Engineering Team

Transformation• Add continuous incremental

improvement and what do you have? • An agile organization• More than a buzzword• Rethinking of how people work

and business thrives in a competitive, customer-driven market

• At the heart of some of the most innovative, disruptive and competitive companies in business today

Page 6: Build or Outsource? 5 considerations for Your Software Engineering Team

Transformation• Whether you’re a small,

medium or larger business, these concepts are probably on your radar already• We’ve discussed

some of the choices companies face already

• So, let’s say that for your organization, you know the advantages and you are headed toward a DevOps style software engineering team

Page 7: Build or Outsource? 5 considerations for Your Software Engineering Team

What’s the Biggest Question?• In-House or Outsource?

• Many issues that could drive the decision – but here are five key considerations:

1. What drives your core business to your customers? • Technology? Services? Productivity App? S0cial App?

2. Your current IT/software development team – how do you assess them? Where do they need to go?

3. What is your biggest organizational concern? • Customer/product focus? Team culture and organization?

4. Do you have time-to-market constraints?• Pressure from product runway, competitive forces, time is money, etc.

5. Growing Staff?• Right skills at right cost? Availability and constraints? Time required?

Page 8: Build or Outsource? 5 considerations for Your Software Engineering Team

1. What Drives Your Core Business?• Many businesses consider their operations to be

technology-based• In the past, it could mean any application – off-the-shelf,

customized-proprietary, or completely custom• Often required in-house engineering to assure reliability and provide

maintenance• With virtualization, SaaS, PaaS solutions – flexible

operational capabilities are available with little local expertise

• For this discussion, let’s assume you have or will have at least one core, business model-linked, custom application• Let’s also assume that if there is an application in place, you

are aware that at some point (if not continuously) it will need additional functionality and perhaps rethinking

Page 9: Build or Outsource? 5 considerations for Your Software Engineering Team

1. What Drives Your Core Business?• It is the presence of a significant and strategic

software development project or custom software asset that drives the discussion of in-house or outsourced software engineering• Without that pressure, the discussion is largely academic

• The presence of core custom software in your business model doesn’t need to lead to immediate engagement of a headhunter• In most cases, custom software embodies a specialized

business process or service• Custom apps generally don’t require entirely new technology

– options for modern architecture and technology are widely available

Page 10: Build or Outsource? 5 considerations for Your Software Engineering Team

1. What Drives Your Business?• If your business is software-driven

it is experienced, software engineering that will assure that• Your custom and proprietary

applications fit together properly, can be extended, are reliable, can be scaled and maintained throughout the product lifecycle

• The skills required aren’t exactly common, but they are widely available• However – they require a wider view

of technology than most mid-level developers and IT teams are likely to have

Page 11: Build or Outsource? 5 considerations for Your Software Engineering Team

1. What Drives Your Business?• Building and maintaining an in-house engineering

team with a wide view of technology and options isn’t a small task• If the services you offer are not in themselves – highly

technical and innovative – you have the option to work with a vendor who can offer scalable, flexible software engineering teams and partner with you over the long run• The advantage is that a vendor can bring together and

maintain an experienced, integrated team from within their team quickly with a flexible range of skills and resources that is hard to match if you are resourcing directly• You need to ensure they are not a body shop, fronting

contractors, and they are focused on providing experienced software engineering teams

Page 12: Build or Outsource? 5 considerations for Your Software Engineering Team

2. Your Current IT/Software Dev Team• If your organization has

• Not begun to seriously implement a DevOps style team• Been maintaining a standard technology stack for an extended period

of time• Been focused primarily on office productivity and help desk

• Transitioning to a software engineering team will not be a simple task• Agile engineering teams require cross-functional members with

experience that allows them to switch between roles seamlessly• Best case: Carve out roles for your existing team that they can

transition to over time• No matter how your current team is setup – this issue requires time

and planning to overcome

Page 13: Build or Outsource? 5 considerations for Your Software Engineering Team

2. Your Current IT/Software Dev Team• With an experienced, outsourced software engineering

team • You can ease the transition by taking on work in parallel and

helping your team ease into their new roles over time• It takes collaborative planning and a partner-level attitude,

but it can be an effective way to move quickly, with less stress on your team

• Your existing team represents an investment and knowledge that is not easily replaced – especially in service-oriented businesses• It should be understood as a requirement from the beginning

that your outsourced vendor has a role in assuring the transition of your existing team

Page 14: Build or Outsource? 5 considerations for Your Software Engineering Team

3. Your Organizational Bias• Every team, product, and

market has a bias – a culture• Examples

• Financial products and services have a bias toward financial return and stability

• Games need to be ”first to market” with a concept and high ”stickiness”

• In agile & lean cultures there is a bias to customer focus and iterative improvement

• In tech hubs like Silicon Valley and Seattle, there is a bias toward rapid growth and capitalization of new ideas

Page 15: Build or Outsource? 5 considerations for Your Software Engineering Team

3. Your Organizational Bias• Understanding what drives your organization is critical

to achieving success in strategic ventures• If your team is very technical and “hands-on” trying to do

anything other than hiring at least a few technical leaders (if not the whole team) will be a tough, up-hill battle

• If your team is more service-based, especially on the consumer side, you are more likely to be driven by customer engagement and satisfaction• To a service-based team, engineering work is important, but

primarily an enabling factor in success

Page 16: Build or Outsource? 5 considerations for Your Software Engineering Team

3. Your Organizational Bias• The key issue is communication between stakeholders

and the engineering team • Without a lot of jargon and overhead• If an outsourced team can hit the ground running in less

time and a partner-based attitude it is a plus – freeing up the core product team to work on finding the right balance of features and value for their customer base

• Know your battleground and pick your battles • Creating adversaries at the beginning of a strategic initiative

isn’t a way to win

Page 17: Build or Outsource? 5 considerations for Your Software Engineering Team

4. Time-to-Market• Time-to-market pressures almost always favor

outsourcing• Resourcing and maintaining an in-house team takes time

and effort• Each member brought on can take from 6-9 months to find,

hire, and integrate into a productive team• An outsourced team, with a broad range of engineering

experience, can be brought in and put to work in less time and at a lower cost• You are money ahead, even if cash burn is not a factor• Maintaining your team and providing the right skills and experience

is now the responsibility of your outsourcing partner

Page 18: Build or Outsource? 5 considerations for Your Software Engineering Team

4. Time to Market• Figuring out the runway necessary to get a new software application

into production is difficult• You have to balance between “like to have” and MUST have feature lists to

achieve user satisfaction and strong perceived value• Every feature takes time to get right (some more than others). It is a game of

priorities with user opinion as the judge• Rush a product to market too soon, without a clear vision – and customer

acquisition and retention become an issue• Overload an application with features and the core value becomes hard to see

or too small to justify• A software engineering team with Lean Product Development

experience can be a real bonus for a product initiative. • Getting any engineering team set in that direction can be very difficult – if they

don’t have a background in LPD – and it can cost you time you just don’t have

Page 19: Build or Outsource? 5 considerations for Your Software Engineering Team

5. Growing Staff• Adding staff, at the right cost,

with the right attitude, and the right skills can be a difficult task that takes away from your focus on the tasks at hand

• The region you are in can have a very large impact• Tech hubs tend to have much higher

wage pressure and competition for experienced engineers

• Costs in tech hubs are higher in every category but there are quality of life compensations that makes them very attractive to the type of resources needed

Page 20: Build or Outsource? 5 considerations for Your Software Engineering Team

5. Growing Staff• Using an outsourced team can

relieve some of the pressure• Allowing your team to maintain

offices in a competitive atmosphere with a larger venture community and other companies that could become allies

• On the other hand, if you are not located in a dense metro area• It may be very difficult to find the

right skills, even if you pay for relocation

• Qualified staff may be difficult to retain

Page 21: Build or Outsource? 5 considerations for Your Software Engineering Team

5. Growing Staff• Outsourced teams are not a panacea. They can be just another

problem if they are not a good match for your needs• They can be a viable option however, if they are setup to handle the kind

of relationship you need• Growing staff implies you are not going to hire a 4-5 person team

all at once for a lot of reasons• Most outsourcing vendors don’t have the bench or staff available to

flexible and allow your team to scale up and down as needed with the right skills

• Flexible scaling is a feature of more customer-aligned software engineering outsourcing – rather than traditional, project-based teams

• Project-based teams have more fluctuation in their workload and have a harder time being flexible when a customer needs to rebalance their team

Page 22: Build or Outsource? 5 considerations for Your Software Engineering Team

Bottom Line• There is no “one-size-fits-all” perfect answer

• An outsourced, software engineering team is a viable option to consider if your needs are aligned and the right partner is available

• Costs, time constraints, skills needed and project scale are different in every case• Knowing your options is key

• You can find teams to match different stages of product development and company situation• But you need to be clear from the beginning where you are and

what you expect of your vendor• Switching horses with any team, internal or outsourced is not an

exercise you want to go through

Page 23: Build or Outsource? 5 considerations for Your Software Engineering Team

We Have a Bias• Scio is a provider of

nearshore, outsourced software engineering teams• Flexible model of

engagement matched to our customer base in North America

• If this an option you would like to explore please contact us