build or outsource? 5 considerations for your software engineering team
TRANSCRIPT
Build or Outsource? 5 Considerations for Your Software
Engineering Team
Successful Outsourcing
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
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
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
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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