We live in a time when there are numerous options for outsourcing your development work. Post on LinkedIn about a coding job that you need doing, and you will get 10's to 100's of responses. But how do you pick an outsourced development team?
Since 2015, Carnedd director Edward Aslin has worked as a technical lead, a fair chunk of this time as a consultant. As such, he has worked in quite a few development teams. During this time, he has seen the running of development teams done well, and done badly.
How a development team is run directly translates to the quality of the code produced, and in turn affects your return on investment.
If you are considering hiring an outsourced development team to work on a project for you, The below list, while not exhaustive. Is a set of questions that you can ask. The answers to which, can help you distinguish teams with a higher likelihood of producing good code, and a successful project.
If your development team are not properly motivated, your project is doomed from the start. So finding out how a company motivate their dev team is important. Due to the fact skilled developers are in demand, you would typically expect bigger motivators than you would see in other sectors.
It used to be you could motivate a development team by offering them free snacks and a football table; it does not work like that any more. The bar has been raised. The 2020 Stack Overflow Developer Survey suggests that you motivate developers by giving them good work-life balance, flexible working, strong culture and remunerating them well.
Make sure the company you are outsourcing to motivate their staff, with methods which are inline with what developers actually want.
Staff who work over time make mistakes. There is only so long any individual can stare at a screen and do what is effectively a complicated puzzle. Proper rest and downtime is required, to get the best code out of people.
Staff who work unpaid overtime not only make mistakes, but resent their employees. Neither of these things make for happy contributors to code bases. Look for an agency which has not built its business around expecting staff to work for free, and realises the value of well rested, happy developers.
Dont just want to take their word for it? Check out websites such as Glassdoor.
Linked closely to the first two questions. Poor retention rate is also an indicator that things are not quite as they should be in the team elsewhere.
In a typical dev team, switching of developers on projects can be disruptive and time-consuming. It will eat into the hours you are paying for, and it will result in technical debt, directly effecting the quality of the product produced.
Don't just want to check out their word for it? LinkedIn can quickly reveal average retention rates.
Git is a form of version control. Used properly, it is like a time machine for your code, and it facilitates multiple developers working together on a project simultaneously. Version control, such as Git, is a cornerstone in all good development practise.
If a development team is not using Git, you can guarantee there is very little workflow or process elsewhere in the team, projects will take longer, and be prone to software development issues that were resolved for most people in 2005...by correct implementation of Git.
Don't just want to check out their word for it? Check is the company has a GitHub Company Profile (or similar), with public packages in.
The classic response here is
You want a development manager, to have done their time in the trenches, and to still be actively coding and staying relevant. Writing a bit of a code as a hobbyist, or writing some code long ago, does not qualify you to run a team of developers.
If a technical manager cannot code, they cannot review their developers code. They cannot tell the difference between a well-built product, and one made of string and bubble gum. They are far less likely to have a profound appreciation for the intricacies and the trade-offs, that have to be made every day. As a result, they are less likely to oversea the build of a quality project, and deliver it on time and budget.
Don't just want to check out their word for it? A quick glance at the company profile on linked in can reveal the work history of key members of staff, and if they actually have the creds.
Building a product is one thing, maintaining it, and a relationship with the client over a number of years is a very different thing altogether. You do not want to work with an agency who will build your project, and then "throw it over the wall". Providing minimal support for a short length of time before ghosting you. This is particularly common when a product is not built well in the first place, as it’s very difficult to monetize the maintenance of poor quality code.
A supplier “ghosting you” comes wit notable problems. Passing projects between agencies like this is time-consuming and pricey for you. Find an agency which has a track record of building products, and long-term relationships with their clients.
The best development teams are made up of a diverse mixture of people. Diverse in gender, education, experience, neurology. But you can only make a development team like this if you are a truly inclusive work place. Saying
Yet not making the required changes to make the workplace inclusive to all is why a lot of development teams tend to be dominated by university educated white men.
To accompany the university educated, you want self-taught coders, you want coders that came to coding later in life after doing something else, you want people with different perspectives on life, you want people that think, look at and solve problems differently to anybody else.
Dont just want to check out their word for it? A quick glance at the company profile on linked in can reveal the details of staff past and present
It is a very "old school" mindset to be averse to automation in the development process. Nowadays, it is the best practise to automate everything. It saves busy work, prevents human errors and free's developers up for the bigger challenges that they face in the creation, and long-term maintenance of a product. Yet numerous older developers can be reluctant to change.
There is no right or wrong way to do this, as there are many forms of automation. What matters it that the team are embracing it, and not doing all the donkey work manually whilst charging you for it.
The ability to communicate technical ideas, to the none technical. Is a crucial skill for a successful development project. Ask potential partners how they do this.
When outsourcing to a development team where the language and culture does not match your own can often lead to problems too. Little details are often lost in translation, and these little details can have big consequences on the success of a project. Ask a potential partner to demonstrate how they prevent this from happening.
Insights & Updates Direct To Your Inbox
(Welsh) /Car-Neth/. Translation: Cairn.
Stones placed across inhospitable landscapes to lead the way.