02 July 2019
How to verify the tech skills of a software development company before outsourcing?
Not everybody is (and has to be) tech savvy. Therefore, verifying the tech skills of a software company you’re about to outsource to – when you have no idea about this whole IT mumbo jumbo – may sound like mission impossible.
Throughout my years as a CTO, I’ve gathered a lot of experience with non-technical clients. I prefer an honest approach when it comes to doing business, so I always encourage people at TSH to find time and patience to explain even the most complex processes to our partners. Unfortunately, not everybody is so lucky to cooperate with competent software houses. And if you’re the company owner with no technological background, looking for custom software to support your new idea, you might get a bit overwhelmed with the available options. But fear not, I’m here to help!
After reading my guide, when the time comes to verify the tech skills of a software development company, you will be prepared and know exactly what to ask for.
Let’s set the scene – right now you need to outsource software development. You’ve probably made a shortlist of a few companies you either found online or were recommended by someone you know. You’re putting all your money, time and effort on this project, so you want to be absolutely sure that the company you pick will be technologically competent. How to make sure that your choice will be the right one?
From my experience, to verify the tech skills of a software development company properly, you should divide this process into two stages:
- Research before the meeting,
- Proper questions during the face-to-face meeting.
So, what’s the first step?
Before the meeting
You’ve already short-listed a few potential software development companies and now what? Company A seems fine, Company B worked with businesses from your industry, but your friend swears by Company C. Take all options into consideration, and enter the first phase of verifying tech skills with good ol’ research…
First and foremost, check the portfolios on official websites. When you dig into the previous projects, look for the company’s proof of experience – working in certain technologies, industries, countries and so on. If you find case studies of cooperating with businesses similar to yours, that’s a good sign straight away. Having said that, I encourage you to remain open-minded – sometimes similarities can be found not necessarily in the same industry. If the software house that you’re X-raying made a system with an interactive map for the medical industry (let’s say the location of medical facilities), they can easily apply this knowledge in the project with an interactive map of car dealerships. Or restaurants. Or transportation services.
References from customers
Companies collect testimonials like Pokemon. Search their websites for any customers’ quotes, interviews, etc. If you’re particularly interested in a certain implementation, maybe it’s a good idea to contact the customer and ask for their straightforward opinion about their cooperation with the software house. I am sure most of them wouldn’t mind sharing. If you don’t want to do that, there’s another place where you can verify tech skills of a software development company…
As far as the IT industry is concerned, every respectable company relies on building a strong profile on Clutch.co. It’s a data-driven business guide where you can find reviews and project descriptions delivered NOT by the software houses but by their clients. And approved by the Clutch admins. Read thoroughly through their opinions, and you will find a lot of relevant information – it’s a proven track of successfully (or not) implemented projects and tells you a lot about company’s approach to the client.
Involvement in the IT community
The involvement in the IT community (both local and global) and the public presentation will tell you a lot too. What are the signs that the company must know SOMETHING? Its people are invited to high-end conferences, they organise workshops and meet-ups for local developers or online webinars for anyone to attend. Look for open-source tools, e-books, guides, publications, awards… If others choose to learn from the software house, that probably means they are professional.
Blog or other publications
Regularly updated blog with original content written by the team members only proves the aforementioned point. I’m not telling you to carefully read every post, but skim through the titles, look at the topics. Sharing knowledge is a good practice among the IT community and a way to gain respect. Why would you trust anyone who has nothing interesting to say?
Make sure to find a piece of information about how the company works. The modern standard is the agile development process. It’s based on methodologies like Scrum with regular sprints, project updates, communication tools – everything to make sure that you’re up-to-date with what’s going on in the project. When the software company says they work in agile, be prepared to ask them what it means to you and what will be your role in this process (every company understands this methodology a little differently). If they how to explain it in a non-technical way, then there’s a good chance that the collaboration will be fruitful.
Prepare information on your project
Here’s a little test you can do yourself. I can promise it works every time. Prepare a package with as much information about your idea as possible, including problems, questions and suggestions you might have. When you’ll be scheduling the orientation meetings, send this package to the company, so they can read through the file beforehand. What for? We’ll come back to that later.
If you have a technical consultant…
Bonus round! If you know a person, who knows a person, whose twice removed cousin from their mother side is a developer – use them as a consultant. They can additionally help you with the following points that would otherwise be checked by a technical person.
GitHub is probably the most popular development platform used by millions of open-sources creators, freelancers and businesses to show off their coding skills, create code repositories and manage their work. Don’t worry if reading it is like solving a Rosetta Stone – a developer will quickly tell you what’s what.
Requesting a demo can mean two things. Firstly, it may be a practical presentation of a similar solution created by the company to see how the product works (and how its features might benefit your project). Secondly, “demo” may equal sample code. A lot of entrepreneurs ask for the latter, but in my opinion, it doesn’t make any sense. Sample codes are always prepared for weeks, perfectly polished and formatted – which means you learn nothing. A much better idea is to verify the open-sources.
Own tools / open-sources
With a little help from your developer-friend, you can research whether the companies you’re verifying contribute to – or, even better, create their own – tools or open sources. Since it’s close to home, I’ll use our TSH original – Kakunin as an example. When you enter Kakunin’s Github page, you’ll find every little detail: the code is available from A to Z, nothing is taken out of context, you can see how often it is updated, what’s added, who contributed, etc. My tip: always take a look at the documentation – that way you’ll know what to expect in your future project.
Technologies the software company specialises in
Developing languages, frameworks, tools… They change all the time, and the company must keep up-to-date with the latest technology. You don’t want a product built using a so-called legacy version that will soon be left unsupported. What’s more, different products require different solutions so that excellent company you picked might not be operating in areas, your project will explore. Ask your “developerish” friend if a particular technology stack would be tailored to the needs of your business project.
Some of the companies include something called “live coding” in their recruitment process – you give the developer a task to code and you are able to watch on the screen what they are doing in real-time. I must admit, at The Software House we’re not very big fans of that method. Why? I believe that developers skills are not about coding some small things but how they handle the whole architecture and deal with issues in a larger context and perspective. Usually, people who are the best at live coding are students that deal with that kind of challenges on their universities.
During the meeting
Short-listing – check. Background research – check. Information materials – check. Consulting with your developer-slash-friend (if you have one) – check. Right, it’s time for step two: setting up a meeting with the lucky nominees. It doesn’t really matter where you’re going to meet.
If you go to the company’s headquarters, you’ll be able to see their office, feel the vibe of the team and see how they operate on a daily basis. If you invite the companies over, you’ll see who’s dedicated enough to bother to come (especially, if they are based in another country).
So, both scenarios have their pros. However, this article focuses on your ability to verify the tech skills of a software development company before outsourcing, so let’s get down to business. You sit down, exchange pleasantries and small talks, and then…?
Understanding the business logic
Do you remember that information pack, I’ve suggested you should send before the meeting? Now it’s time to carefully listen to what the company’s representatives have to say about it. Ask them about business logic and the result of this whole information-pack-preparing bonanza will unfold itself. If the company read your documents, they will adjust their answer to fit your project, identify the potential risks, maybe suggest better options. Based on the questions THEY ask YOU, you can immediately tell if you’re talking to professionals. If they have no issues, it clearly means that they neither read your materials nor understood anything.
If you work with fragile data (e.g. end-users’ personal information), don’t forget to ask about quality and security procedures, including GDPR. If the company is bulletproof (not literally), they will have all the necessary security measures and a proper policy ready and available for you to go through.
Although this might not be a technical verification per se, however, it tells a lot about the software company – pay attention to how they communicate with the client. There are four things to consider.
- Firstly, organising communication during the development process. The time schedule of meetings, tracking tools, documentation, reporting, and designated people who are going to be responsible for keeping in touch with you (Project Managers, Heads of Departments, Team Leaders, etc.) – in short, how will you be able to control the software house’s work on a daily basis.
- Secondly, problem-solving skills. You have to realise that in EVERY project sooner or later an error will appear. You can come up with a random issue scenario (e.g. application has responsiveness problems on certain operating systems and users start to point that out) and ask how would they approach the problem. A concrete plan of action, advise and a will to find a satisfying solution is a good sign.
- Thirdly, can you feel the vibe tonight? Every business partner is different and sometimes things just don’t click. Make sure that the people you’re gonna work with share your values, work ethic and sense of humour. The best way to test this is to ask a question regarding a technological aspect of your project you don’t understand and wait for a response. If the company is calm, respectful, and makes sure you grasp the concept no matter of your poor technical knowledge – well, swipe right because it’s a match.
- Finally, pay attention to their approach to you and your project – do they seem to genuinely like it? It’s very important to have a partner that shares your enthusiasm about what you’re doing
It’s nice to know people you’re gonna work with. If possible, try to meet the team of developers who are potentially going to work for you. Even without technical knowledge, you can verify a bit:
- Work experience
Did the developers work on a similar project before? How long do they work in a given technology?
Is there a massive rotation of employees in the company or do they rather hire loyal and long-term developers?
Who receives the senior or leader title and for what achievements?
Does the staff expand their knowledge during training and workshops? Is there a mentoring program organised inside the software company?
- Picking a team
Check if you will have a permanent team in the project, or is there a possibility that some of them will change during the process (you don’t want that).
- Working schedule
What are the working hours? Do developers work from the office or remotely? And if you operate in a different time zone – how does the software company adjust to that?
Of course, this is just a tip of the iceberg, so if you want to learn more about hiring a good developer, read a guide by our CEO.
Software development is more than writing code
If you’re creating, let’s say, a mobile application from scratch, you’ll need more than developers. It will have to be tested for proper functioning, bugs and responsiveness (testers from the Quality Assurance team are responsible for that). Then it’s the app’s appearance and proper functioning/navigation. User experience and user interface is the job of a Product Design team. Ask to see their previous projects and consult what features have to be included in your product, as far as the end-users satisfaction is concerned.
What happens when the project is finished?
Last, but not least – the software company will complete the product and… what happens to it then? Finishing version 1.0 is rarely the end because you need to respond to user feedback with bug-solving procedures, customize the app to new browser versions or update with new operating systems, etc. What about hosting? A straightforward “in this software house we offer this and that” answer is already a good sign. If you have no clue where to start, it’s advisable for the company to suggest your own hosting options so you can save the project on a server you control. Ideally, the software house will advise where to find the best hosting options outside their serves and offer proper support and maintenance. If anything happens, you’re not dependable on your partners and have 100% certainty that your product will be safe.
Verifying the tech skills without tech skills is possible
In this article, I provided you with a lot of practical tips you can use to verify the tech skills of a software development company before outsourcing your product to its developers. But before we finish, I’ve got one last piece of advice.
The word “no” isn’t always bad.
If the software house you’re verifying uses the word “no”, it means that their people have their own opinions and that the company trusts their technological decisions. Such counsel will be very valuable if you decide to listen. After all, we are all driven by the satisfaction of the end-users, aren’t we?