Outsourcing has become a common practice for companies seeking specialized expertise or cost-effective solutions. While there are many benefits to this, navigating the hiring process for freelance developers or outsourcing teams can be challenging, especially for those who lack technical backgrounds.
We are often called when our clients face challenges. Over time, we’ve worked with clients who were unhappy with their progress but weren’t sure what had gone wrong or how to fix it. We stepped in, assessed the project, identified the issues, and provided the insights and steps needed to get it back on track and meet project specifications and deadlines. In most cases, our team is involved in tracking progress, or we add engineers to help speed up development.
Having had the opportunity to witness both successful strategies and problematic practices in these scenarios, we’ve compiled a list of crucial questions to help non-technical decision-makers differentiate between a reliable developer and one who may pose potential risk.
1. Where is the code stored?
Understanding how and where the codebase is stored is crucial for a project’s continuity and security. Verify that the developer uses a version control system, such as Git, to track code changes and maintain a history of previous versions. This makes collaboration, branch management, and rolling back changes much easier. A suboptimal practice is storing code solely on a server without version control, as this can lead to manual file exchanges between developers, increasing the risk of mistakes and making changes difficult to track.
2. Who has access to the code?
Clarify who has access to the source code and inquire about the measures in place to safeguard it against unauthorized access or manipulation. You or your direct employees should always have access to the codebase. Sometimes freelancers can stall when it comes to giving access or information to new developers. Make sure you retain access to the codebase and that access can be transferred smoothly if the team changes.
3. How transparent is the team?
Transparency is crucial in addressing complications promptly and planning further actions. During the hiring process, consider asking hypothetical questions such as, ‘How would you communicate if we’re not meeting deadlines?’ or ‘If issues arise during development, how would you approach them?’ This helps evaluate a candidate’s ability to anticipate and communicate potential challenges. If you are currently engaged with an outsourcing company, ask yourself: Do I know how far my developers are with their work? How often do they update us? Are these updates accurate, and are the features actually delivered?
4. Do you use a project management tool?
Ask about the tools and methodologies the developer uses to track progress, manage tasks, and facilitate collaboration (Jira, Trello, Asana, etc.). A good project management system improves communication and provides a written record of expectations, responsibilities, and progress. This provides a written record of what is expected to be done, fostering accountability, and protecting both parties by offering a clear overview of the project’s progress and goals.
5. How do you communicate?
Smooth and efficient communication is the backbone of any successful collaboration. Knowing which channel to use is key. Confirm that the team has a dedicated channel, such as Slack or Discord, for quick discussions and issue resolution. Email works well for important updates and decisions that need to be documented, while meetings are best for topics requiring real-time discussion. Too many meetings waste time, while undocumented decisions can easily get lost.
6. Can you provide client references?
Requesting references allows you to gain insights into the developer’s track record and reputation. Contacting previous clients provides valuable information about their reliability, communication skills, and ability to deliver high-quality work. Hesitation or an inability to provide references may be a warning sign.
7. What is your approach to security and data privacy?
Protecting your data and sensitive information is paramount. Ask who will have access to your data, systems, and accounts. It is advisable to refrain from using shared accounts; instead, opt for an individual account setup for each person. Additionally, maintain the security of your passwords by using a reliable password management application.
If you fail to plan, you are planning to fail.
Benjamin Franklin
8. How do you handle scalability and future updates?
A good developer plans for growth and future updates from the start. No solution will remain perfect forever, but experienced developers make informed decisions based on today’s needs while leaving room for tomorrow’s changes. Ask how they plan to handle new features, increased demand, and changes in technology without creating unnecessary complexity.
9. What development methodology do you use?
A good development team should have a clear and structured way of working. Whether they follow Agile, Scrum, Kanban, or another approach, the methodology should support regular progress, clear priorities, client involvement, and adaptability when requirements change. Ask how they plan, track, and communicate progress throughout the project. Without a defined process, expectations can quickly become misaligned with what is actually being delivered.
Need a second opinion?
If you’re unsure about your current development team or project progress, we can help. Reach out for an expert analysis of your system, development process, and next steps.
