It's hard to attract great software developers. Not only are they rare, but also in high demand. Building an in-house software team additionally requires patience, diligence and a long-term thinking. With outsourced team you can immediately bring in developers with a very specific skill set into the project, and business-wise, it often makes a lot sense.
So you hired an offshore development team and your hopes are high. How do you make sure a project is a success? There are some basic rules of thumb to follow when evaluating the early stages of working with a tech partner. That's undeniably:
- company portfolio,
- technical expertise,
- good client's feedback,
- reliable software development methodology and framework.
I wrote about all these in this post.
Is there something more you can double-check to make sure an outsourcing partner is going to deliver the product successfully? Pay attention to the following soft skills.
Curiosity beyond answering a standard RFP
A well-written Request For Proposal (RFP) helps you evaluate if what your potential tech partner offers is aligned with the needs of your business. During this early stage you can already make sure you're leaning toward an experienced and reliable software firm.
Developing scalable and working software needs great cooperation and understanding of the business environment. Ironically, achieving simplicity can be the hardest in a development process. It requires asking plenty of questions which at first might seem trivial. But because you want your software to be easy to use, as it is important touchpoint for your customers, the development process should be well engineered.
Never miss a chance to discuss in details what your needs are (make sure to sign a Non Disclosure Agreement (NDA) first). If the company you approached is brainstorming and gathering requirements of a future software product, and often goes beyond the RFP by asking a lot of questions - it's a good sign.
Questioning is a powerful tool for unlocking deeper insights that affect future performance, eliminate pitfalls and help design a working solution from the start.
Asking questions is also the simplest and most effective way of learning. And "never-stop-learning" approach is what makes great developers, who are curious by nature.
They never accept things as they are and are willing to experiment. While this can be observable in one-to-one conversations, it can also strike through the whole company culture. A continuous learning culture, visible via company website, tech blog, or IT community engagement encourages employees to develop knowledge and competence that not only bring value to company itself, but also clients.
Good communication skills
The ability to communicate effectively is an essential skill in business and in IT. If your potential tech partner's communication skills are not as good as you'd want them to be, chances are that they won't deliver what was promised. Good developers are not just working alone or with each other, but they mostly work with clients.
What you can initially spot in the company's portfolio - various past projects that fit your needs and a tech stack to match - shall translate into how your tech partner is communicating with you during your project.
By years of commercial experience they should gain the ability to understand various businesses and solve complex and simple problems alike, by making decisions based on the available information.
Communication skills can be assessed on various levels, not just by a common sense that you simply like how things are going and feel understood. These red flags are easy to spot on the beginning of the relationship with a tech partner and they help you avoid disaster:
Wrong remote communication setup
Do you feel like you have no insight into the work you're paying for?
Developers need to be adaptable and respond to changes quickly. Low responsiveness is a sign that there is something wrong with how your outsourced team set up the interface via which they communicate with you.
Engineering a digital workplace environment can be challenging, but there are many tools that proved working great in effective remote communication. The set of tools often depends on a team, nevertheless it's good to have a dedicated Slack channel for your project communication and have full access to code repository and project management tools.
These allow you to track changes and see if the team tends to your needs timely. Feel free to suggest or use these proven tools for remote communication:
- Slack - written communication and a central comms hub
- Trello, Jira - for agile project management
- Skype, Hangout, Zoom - for standups with clients
- Join.me , Zoom - for pair programming and project presentations
- Git - for a flexible source control system
- GitHub, Stash - for code reviews
Lack of transparency
Do you feel like you're out of the loop?
As a client you should be able to check out the progress on the iteration or on a project level. It is very important on the beginning of the work relationship with your tech partner. When the time passes and the trust is built up, it might become no longer necessary.
Assumptions that clients will just get the development process failed many. Good developers will at least once every two or three weeks demonstrate a working version of the product with fixes and/or improvements. They would also adjust the process to meet your particular needs if challenges arise.
Strong work ethic
Make sure that developers team you hired can manage their time and tasks by themselves, so that you don't need to micromanage them.
Good developers will be self-organised and also highly competent. They would use the right libraries and frameworks rather than code from scratch.
Their code would be as clean as possible, with a high level of attention to details, testable and with a minimum number of entities such as classes, methods, functions, etc. You don't need to be a programmer to double-check if the team has a solid development knowledge. Asking them about their approach to minimising project failures would tell you enough to evaluate the quality of a future software application.
Great developers often review each other's code to maintain an optimal internal design and to avoid mistakes. They are good team members who know who needs to join the team at which stage and free you up from work, leaving you the time to take care of your business matters.
Choosing between external software developers can be difficult, and that it is very much a question of confidence. Next challenge is evaluating your tech partner on the beginning of your work relationship.
This extremely important time can make or break your project success and it's worth to pay attention to soft skills of your hired team, to be sure things are set to success.