Let’s be honest – there is as lot of controversy around this subject. A lot of ink (and screen space) has been spent on the idea that as a startup, you must control your software development process and code. You must have a technical co-founder in your team who can code and bring on a core development team right away. Other points of view have their strong adherents too. They will tell you that in early stages you don’t need the distraction or that you need to conserve cash and the salary for top engineers is too costly for startups to bring in-house. They will tell you that the hiring process is time-consuming and risky because it will lead you away from product focus and into costs and risk.
In truth, there is no answer that is right for every startup, in every market, at every stage. But, there are a few guidelines you can begin to think about as you work through your strategy:
1. Is the core of your business and startup primarily a technology play?
There are few “pure technology” startups, not because there are no new ideas, but instead because there are few technology-based startup ventures that are defensibly free of existing technical platforms and concepts. Most applications today are highly configurable, flexible and commoditized. If you can see an idea that is cobbled together from several existing applications, the chances are high that someone else can too, and even if they haven’t, the barriers to being a “fast follower” into the market are not likely to be what they once were – less than a decade ago.
The question you need to ask is not whether or not your business model is based on software because most new businesses run their core business processes on applications. The question is instead: If your business operations and customer-facing approach are expected to be fully online and automated, how unique will the processes and operations embodied by your application actually be? And to be clear – it is ok to say, “I don’t know.” If you are familiar with Lean Startup Movement, you will understand that until you have a validated product in front of customers with a real need and money to spend on solving their problem, you can’t really know.
The thought here is that if you have a validated idea for a very unique technical offering with demand that can scale to a very large degree of willing, paying buyers – you may indeed have a “unicorn” – and as we know, there aren’t (honestly) too many of those… But, if you do, then you certainly do have a need for a very sharp, internal core development team, that you need to compensate well enough to ensure their stability over the long run. That doesn’t mean you can’t/won’t outsource non-core components of the suite of applications that is likely to be involved, but it means that as a startup, you’re going to have to face a need to spend some real money and time assembling the right engineering team and getting your core application (Version 1.0) out the door.
For many startup entrepreneurs, this is a hard question to answer because there is both a belief that their idea is truly unique with a large market potential and a burning need to sell that idea to investors to fund it at levels that will allow the expenditures required. But if you are realistic, you probably realize there are some routes to market that don’t require as much investment and risk:
- If you haven’t validated your market and business model, you should consider building a Minimum Viable Product (MVP) that is essentially a test of your core offering to put in front of customers. At this stage, you can consider your initial application a “throw-away” that is put together to allow customers to see the concept in their context, but with less “bells and whistles” and perhaps with less robust automation (it might need some manual processes to be run as services instead of in the application) that it would have if it was fully-validated and developed as a marketable final offering. If you are not a technical founder, and/or it is going to take some considerable effort to get initial, paying customers to your door – an outsourcing partner that can take a lot of the load off your shoulders. They can consult on what is available that can be brought together quickly to embody the business model and provide a stronger initial MVP than a startup core team could easily accomplish with reasonable time, effort and cost. The learning provided by an MVP can be invaluable to assuring that full product development costs will be well-spent and in gaining enough market attention to reach the investment needed.
- Assuming you have basic market validation, but not a fully-developed software offering to release, you will need to “scale-to-market.” As a startup, this is not a trivial exercise. In fact, it is a critical step in the lifecycle of any new business. During this stage, the business needs to find a repeatable, sustainable way to reach new customers and become invested in their needs enough to ensure they remain customers over the long term. For a startup, this requires a full implementation of agile methodology within the product and dev team that will allow it to respond incrementally and quickly to customer needs. This implies that in many, if not most, operations that are based primarily on services through applications, continuous releases and DevOps implementations are going to be a clear advantage. You are probably going to need “just enough” of a technical team to assure continuity and operational guidance for scaling, but not so much that the costs or time to acquire, train and integrate new resources will become a barrier to scaling in itself. In this case, an outsourcing partner that can offer a scalable (up and down), dedicated team of resources can become a real asset. It is not the only way to get through this phase of the startup lifecycle, but can conserve cash and allow startup operations to focus on sales and customer facing services during this critical step.
- If you have stepped back and realize your market has technical aspects but is not really based on unique technology or entirely software driven, perhaps you shouldn’t focus your initial team and effort on finding a technical co-founder and a development team. Perhaps you should focus more on becoming a learning team and navigating the build, measure, learn cycle of the lean startup methodology than the technical nuts and bolts of software development. Keeping your startup core team light and agile is key to success in this situation. Again, an outsourcing partner can fill the need quite well if they are fully integrated into the team. Yes, it will take some time to find and validate an outsourcing partner at this level, but it can free up the startup core team to a great degree and control costs with both a lower absolute cost and a more transparent process of scoping and costing work.
2. Can you (really) do the work required to build and maintain a (technical) team, over the long haul?
If you’ve successfully started and ramped out several startups with significant software development assets, you already have an answer to this one. You are battle-tested and still in the game. Failures along the way are ok, but if your batting average is moving toward very few points scored or assists, this is a still a good question to ask. Every venture has its own risks, special aspects that require thought and strategy to get through.
Scaling a team is hard enough in the beginning. When you are developing your core team, every member counts. Their attitude, willingness to collaborate, assist in decisions and live with consequences is critical. As you scale your team, if you have a significant component of your operations in software, a lot of the hiring and team development will happen in the development team. If you are in the Bay Area or one of the startup centers that have developed outside Silicon Valley, you can count on the process of hiring being longer than you expected and the total costs (recruitment, salary, benefits and perks) being higher than you would prefer. It is a built-in cost of being a startup where the resources and access to funding are at their best.
An outsourced team can provide a stable pool of resources, dedicated to the tasks at hand, but they can present their own problems if you don’t chose wisely. If you select your outsourcing partner solely on the initial bid cost of a set of requirements, you are likely to get:
- A low hourly cost per resource, but not necessarily the best total cost of engagement.
- A skilled team, but one that is located in an opposite day segment. Communication cycles can take hours or days by the time a clear decision is made.
- A team that is separated, not only by working hours but also by language and culture, requiring intermediaries to be added to communication. Communication fidelity can degrade causing many loops and delays if it isn’t blocked.
- Long cycles of documentation, discussions of functionality and implementation, and finally redos of work that should be complete.
- When travel is needed and practical, long round-trips with less than optimal productivity. Travel to your location can be nearly impossible in some cases because of costs and visa restrictions.
In your own team or an outsourced team, building a sense of ownership within the development team is key. If you are limited by the cost of resources and in a competitive hiring atmosphere, it can be very difficult to maintain a stable and productive internal team with a clear sense of ownership. This is also a case where hiring individual contractors to fill needs can create some real problems. If you saddle your team with contractors that can come and go on a whim, it can seriously harm productivity and quality. You can, however, build a sense of ownership within a dedicated, nearshore development team. They can work with your team in real-time and have the commitment that their work is valued as a part of the whole. They can (in most cases) travel to your location and you can travel to them with relative ease. Working closely together, without intermediaries, in real-time contact throughout the workday makes a big difference.
Finally, if you are a business founder, not primarily experienced and skilled in technical leadership, building and maintaining a technical team can be very distracting. How do you pick the right resources for the long run? How do you maintain them as productive members of the team? How do you keep their skills and interests aligned with your goals? These are serious issues that can be the difference between maintaining a tightly integrated team and spending a large part of your time trying to keep the team focused and together. An outsourced team can have problems too, but if you have chosen your partner wisely, you have a natural ally who will help overcome any problems that come up. They are as invested in your goals as you are because their business interests are intertwined with yours.
3. What is more important to the success of your startup – product management or technology?
As a startup, you have to make critical decisions about focus every day. For a long time, the advice was to have a match between an entrepreneur and a technical co-founder. To that end, there were (and are) social gatherings in startup communities aimed at giving business leaders and engineers a chance to find “a good match.” With the rise of startup accelerators and the Lean Startup Movement, the focus is more on product management and customer engagement. Methodologies have cycles, but at this point, if you can’t show a clear, methodical customer focus and a cycle of virtuous learning – it can be hard to be taken seriously.
When there is a need for strong technical leadership in a startup core team, it doesn’t necessary mean a full, in-house team needs to be put together too. There needs to be a balance between the “ownership” principle necessary for a committed team and technical team that sucks up all the air in the room – leaving no space for the development of product management and customer integration. If a service-based startup has a technical team that is much larger than the operations, sales and product development teams, especially early in development, it can create some very distracting conflicts.
Using an outsourced team for at least some of the work in these cases can create a separation from the work of fulfilling a real functional need on behalf of a customer and technical discussion on issues that are largely transparent to the customer. Both problems can be very important to success, but if a large percentage of the team becomes engaged in the technical discussion, and loses customer focus – problems can cascade that can become very time consuming to correct. A proper outsourcing relationship offers a way separate issues and maintains a consistent, productive cycle of new functionality flowing to customers.
4. Even if you can, should you grow your startup team quickly or shift team composition when you need to?
Bringing on new members of any part of a startup team requires time, consideration, training – many steps that won’t always end in a successful transition for the new team member or the team. Cutting team members, shifting them to new responsibilities, or changing team competition can be even more disrupting. There is a fairly established point of view that hiring at a pace of more than one new team member per month can cause serious productivity issues in startups. Cutting team members and reallocating team resources to other teams can create even deeper divisions.
When ongoing software development is critical to maintaining customer engagement but not the core service offering, outsourcing development can create a natural division between maintaining resources at the level needed and customer-focused operations. Development team cohesion is still critical but, it is also part of a successful contractual arrangement with the outsourcing vendor. Integration of the outsourced team is key, but the vendor must take part of the weight if the partnership is to be successful. Shifting resources, adding team members to an outsourced team is still not transparent, but the outsourced vendor (should have) has more experience making the changes necessary and is focused on making them successfully.
5. Should this be an “all or nothing” discussion? Can you manage a situation with the best of both worlds?
This may not be a discussion for the early startup, but it is worth consideration. We’ve alluded to it but let’s be clear – you can have some of both. A few conditions for success:
- Clear, contractual roles but full involvement of the outsourced team. If the outsourced team is simply dictated to by the in-house team and not respected or consulted for input on issues – it will be very hard to gain the full value the outsourced team has to offer. In many cases, they will simply stop trying to contribute their expertise and positive contribution.
- Real-time collaboration and communication between individuals on both teams without intermediaries. If the two teams are prevented from working together by barriers, real or imagined, productivity and quality will suffer.
- Clear, product-level responsibilities for the outsourced team. If the outsourced team is just filling low-level, repetitive tasks, they can’t become truly involved in the lifecycle of the product or have a sense of ownership.
- Management-level commitment to both the continuity of the in-house team and the involvement of the outsourced team. If the in-house team feels threatened by their outsourced team members, communication will suffer, productivity will drop dramatically and quality will fail to meet its goals.
- An outsourcing vendor who is willing to be involved; is experienced with the startup environment and what is necessary to have a strong, successful relationship.
- Be aware of documentation, code quality and technical fit. Your internal team needs to be responsible for these areas and involve the outsourced team to the level that these issues are a constant part of discussions between the two sides of development.
Are there more questions, more conditions for success? Certainly. But these are some of the key considerations to put into your thought process if outsourcing all or part of your startup technical work is an option for you. A successful company, competitive and agile in the market, is the end goal and there are many steps in the process.
Scio is a provider of outsourced, nearshore software development services for our customers in North America. We serve startups, established businesses and enterprise customers in a range of verticals with teams of skilled, experienced developers. Can we help your startup be successful? Contact us and let us know the challenges you face, the issues you are dealing with. We would be happy to help you find answers.