Choose Your Developer!
You have a product that’s ready to go to development. But…where exactly is this ethereal development going to occur? You have some options.
Your Internal Team
If you already have a development team in place, they may be your go-to for getting work done. You’ve known them for a while and they have defined development practices in place and honed. They may be your perfect option, but they also might be less than ideal for working on this new product. Your product may require specific skills that are not currently present in your team, or you may have them focused on other work you don’t want to detract from.
Your Not-Yet Assembled Internal Team
Hiring internally has its benefits. You can ensure consistency, direct access, and full control of the work being completed. However assembling a development team takes time, know-how, and quite a bit of money. Interviewing and hiring can both be lengthy processes, but even once you have your team all onboarded you will need to allow space for the team to really find their stride. Ironing out processes that work for a particular team can take time.
Managing a development team also takes a blend of technical and interpersonal skills; falling short in either of these leads to ineffective teams. You’ll also find that when you hit a point in the development cycle that you aren’t in need of intensive development work, you will need to find work to keep the team occupied. This can lead to developing without a direct purpose and increase feature bloat in your products.
A Third Party
Third party teams can be an excellent solution, particularly in a product’s infancy. You can put your energy into finalizing one hire instead of compiling an entire team yourself, and the third party can offer a myriad of skills for the price of only a few engineers (not to mention the savings on personnel costs such as benefits and employment tax). The third party team has likely been working together for some time and will already have processes in place, meaning they can hit the ground running with your product’s development.
Stay Domestic or Look Overseas?
If you choose to go the third party route, you have the option to look for domestic or overseas labor. Generally you will find prices are higher with domestic teams, which may encourage you to narrow your search to overseas. Overseas teams do fantastic work - we are a hybrid team ourselves. However, especially if you have no prior experience managing overseas development teams, and particularly if you have no experience managing development teams at all, you want to approach this option with your eyes wide open.
Regardless of the location of your team, managing software takes a certain set of skills. A deeper understanding of the development process is needed for translating feature requirements into work tickets. When working with teams across your country’s borders, you’ll want to take differences in working culture into account. Local business practices and the ways in which teams communicate can be vastly different. Depending on the time zone differences, you may need to lean heavily on asynchronous communication to keep work moving, which takes more effort to ensure effective communication. Language barriers could mean nuance being lost in translation, so constant confirmation of mutual understanding is imperative.
How To Evaluate Third Party Options
Not all development companies are built the same. What works well for one company may not work at all for another. We advise asking the following questions when assessing for fit:
Does the team work using a waterfall approach or an agile method?
First, you need to ask yourself this question. Is it more important to you to have known future delivery dates for specific features? Or to get a minimal product out the door quickly so you can begin receiving and iterating on feedback? The first is waterfall, the second is agile. Waterfall is pricier and likely to be bid with a padded schedule, and while it offers more certainty in price for delivering a specific feature set, it may or may not end up being what you actually wanted. Working to a waterfall plan with an agile development team is sure to frustrate both parties, and working to an agile plan on a waterfall bid leads to higher prices and numerous change orders. Make sure the team you choose aligns with your plans.
Whose tools do they work in - yours or theirs?
Working in your tools allows you full transparency into progress and, more importantly, ensures your ownership of the work. When the time comes to end the contract with the development company, end-of-contract handover is a much smoother process when the work is already in your possession.
What skills are represented on the development team?
A comprehensive set of skills found within one team is a valuable find. Beyond direct development work, you’re looking for skills like design, quality assurance, and operations/management.
If you have a specific technical need, what is their experience with that technology?
When you have a specific technology that is core to your product, you’ll want to understand the development company’s prior experience with that tech. For example, if you know AI will be a core element, you’ll be looking for a team with Data Scientists and AI Engineers. Want to build a game? Make sure you have Game Developers available to you.
Who would be your main point of contact, and what is their role?
You want your point of contact to be directly engaged with the development work. This allows for faster responses to questions and reduces the probability of error as feedback is translated from one party to the next. The person you are looking for is likely an Engineer, Designer, or Product Manager - all roles that are intimately involved in the development process. Project Managers, while a great fit in some circumstances, are often liaisons between development teams and clients, adding one more time-consuming step in every communication process.
Who writes the requirements for the developers?
Are you expected to write the requirements, or will the third party handle it? What is their process for making sure the requirements given to the developer effectively communicate your needs? Just as with your main point of contact, you want someone intimately familiar with the project to do this work.
How often do they deliver test builds and work for review?
Look for continuous delivery - or implementation of CI/CD methodology. Any time tangible progress is made it should be merged into the code and delivered automatically. Development environments should see updates at least every few days.
Ultimately, you want to find a development company that you feel you can work well with. In your conversations, what was your comfort level with them? Did your communication styles align? You may have found a top notch dev shop, but if your teams don’t mesh you’ll struggle to get the results you’re looking for.
Making the Final Decision
Every team will have its own unique quirks and needs - what works for one spells disaster for another. Explore your options thoroughly and feel empowered to ask as many questions as you need to make your confident final decision. Bring trusted advisors and stakeholders - particularly anyone who will be directly impacted by the development team’s work - into the process. Together you can combine perspectives to pick the perfect match!
About Mile Marker
Mile Marker is your strategic partner for agile software development. Created for founders, by founders, we offer strategic software at startup speed. We specialize in aligning your technical work with your business goals through collaborative planning, offering a multidisciplinary development team, and ensuring ongoing support for your software. If you’re searching for a software development company or need a technical partner, start the conversation with an introductory call.