The short answer is yes, probably, but only if you are not clear on how to make the correct partner selection.
The reality is that software development is still a ‘dark art’ for a lot of founders, executives and business decision makers and yet it can be absolutely critical to the success of your business.
It is analogous to the proverbial car mechanic that we simply have to trust because we just don’t know enough.
There are countless horror stories of companies getting badly burnt by outsource partners because making that decision is not easy.
I have created a list of common fears that we see often and have suggested how you might address them to give yourself a better chance of making the right decision.
Fear: I won’t have control of the process.
Ask for a deep explanation of the processes that are used, don’t just accept it at face value — much of it is likely to mean very little to you.
Look specifically for:
- How much visibility is provided into the process?
If needed we will literally give our clients access to our project management tools (In our case Jira) to see what tasks are moving through the system and at what velocity. Transparency is key to a strong relationship and this is an area that you should feel comfortable in before you make a partner selection.
2. How communications are handled?
In some cases we have a standup with our client every-single-day, but never less than weekly. This is critical to working in an agile, engaged manner.
At NONA we believe deeply in and have adopted the need for remote workforces and in fact I myself am a remote CEO, but humans require a measure of face-to-face interaction so, make sure that your partner builds at least some travel into the plan to invest in the personal relationship. At the end of the day software development is just people engaging with other people with the common goal of building amazing things together!
3. If the partner is in a different timezone, how is this handled?
We have clients all over the world and staff that sit in hugely varying time zones. Make sure that the structure of how the work is organised supports high communication cycles regardless of the timezone differences. This doesn’t mean that 24 hour access should be required, and in most cases it’s not, but it does mean that communication needs to be predictable, always.
Fear: Outsourcing equals poor quality.
There is a massive range of quality and cost in the outsource market and this is not a bad thing. What is important is to be very clear about what you are looking for. If you are looking for a quick bashed together prototype then it’s probably fine to go with a $20/h outsourced dev team with large culture and language gaps, whereas if you are building something that forms part of your core business or product then you probably want to be more selective and consider some of the following things:
- How is the team contracted and composed? We believe that team culture is essential when building high performing software teams and we don’t believe that this can be achieved with freelancers or contract workers. We believe that it makes a big difference to have all staff 100% full time employed by us, regardless of where in the world they might be.
- Get someone that you trust technically, whether it be a member of your team or someone external to assess the partners capability as thoroughly as they can. This should include at a minimum:
Code sample reviews
Design / UX Reviews
Examples of software that the partner has build that are live and in use
Security and documentation principles and processes
Continuous integration and deployment processes
This assessment doesn’t need to be drawn out and exhaustive, but it is very important that it happens. It’s easy for us to talk about how good we are but we need to be able to provide objective proof and examples of that. This process will also give you a window into the communication style of the partner and how well they address and discuss complex topics.
Fear: How do I know that I will get the value from paying more than just hiring my own team.
Continuous improvement and learning is essential and costs a lot.
Supporting developers and designers to stay on top of trends and at the sharp edge requires deliberate action. Find out what the partner is doing to ensure that their teams are continuously improving, learning and being the best at their craft.
At NONA one of the things we do is to build in dedicated learning days into our sprint cycle that are thoroughly designed and prepared for. This culture of continuous improvement and knowledge sharing also results in improved team retention and higher team engagement. These are things you should care about because they translate into better developers and designers and therefore better quality product for you.
We have had many team members share that they have learned more in the first ‘x’ months with us than they did in the previous ‘y’ years in their last role. This is very valuable to you as a client so make sure you are satisfied with how the partner is approaching this.
Building, leading, optimising and retaining great software teams is very difficult.
You do have the option of building your own team in the early stages of your project and in some cases this can make sense but this is a very difficult thing to do well, here is why:
Good software developers are in huge demand and are very difficult and expensive to attract and retain. Make sure that you understand what the partner is doing to create the kind of culture and working environment to suit the kind of people that you want working on your project.
You can in theory do this yourself with an internal team but don’t underestimate this as it is akin to running a whole separate business. This requires significant experience as well as constant input in time, cost, and headspace. This can be the difference between success and failure.
If you select the right partner, you will get far more value than just the knowledge of the team dedicated to your project. In our case, we have a total team of around 30 people that are working on different projects with different challenges and different learnings. We deliberately create an environment for the knowledge to be shared between everyone which you benefit from as a client. You are in effect getting access to a very deep knowledge pool but without having to pay for and nurture the same.
Ask the partner how they go about cultivating knowledge sharing within their teams and how that translates to value for your project.
Fear: I’m worried that my application will be built and then I will be locked into that partner with no chance of taking this over internally, ever.
This is real and it happens, but it shouldn’t.
It is wise to ask this question directly and to expect a good and well-constructed answer.
We believe deeply that we will build software as well if not better than most internal teams, but we also acknowledge that there comes a time where our costs don’t make sense anymore. This is why we are very particular about the technologies that we use and that they will not lock a client to us just because we made them build something in a stack purely because it’s what we know.
In our case we generally elect for React on the front end, Node on the backend and AWS serverless on the server side. For mobile we’ll generally go for React Native. You should care about this because it makes it a lot easier to hire internal developers to do maintenance, additional features etc when the time is right because the developer community for these chosen technologies are already massive and growing quickly.
In numerous cases we have, once the time was right been deeply involved in building an internal team for our clients to take over from us. This included helping with recruitment, interviews and in some cases playing the role of CTO for as long as was required.
The point here is that you want to find a partner that understands the business value of the different stages in the process and has got your business needs in mind all the way through. Again, don’t just take anyones word for it, get references and case studies to get objective proof.
So, working with an outsource software development partner can be a terrible idea but, if selected well it can be a major asset to your project and your business. I hope the above has been of use in helping you assess and choose a partner with top tier technical ability and real business insight!
Good luck with your project!
If you would like to share your experience, discuss this further or better yet to add to these thoughts, please drop me a line on firstname.lastname@example.org