In a previous article we answered one of the most frequent questions our clients are asking us: should they choose out-of-the-box software or opt for a custom development solution?
If you've decided to go down the route of developing your own software, you're right to be asking, how you should start?
Your first option is to try to work with freelancers. Another choice would be to form an internal team of IT specialists, otherwise known as insourcing. The last choice is to hire an outside software development partner to deliver the product. This is also known as outsourcing.
Let's see how each option ranks against the rest, based on the most important criteria you have to look out for when developing a software product.
Let's start with costs, as this is often the most important criteria for the client.
Out of the three options, the cheapest is easily the freelancer. Most freelancers in Hungary charge between €15 and €45 per hour.
If no other aspect is important to you, go with this choice!
Forming an internal development team is a lot more expensive. Today – based on experience and location – a developer earns between €1500 and €6000 gross in Hungary.
Based on our observations, even in an ideal situation an employee is only productive in at most 50% of its time. The rest of the work time is spent looking up information, research and other non-productive tasks.
If we calculate in training, holidays, sick days, office overhead and other benefits, their hourly rate comes in around €35 and €65.
At first sight, an outside development partner may seem the most expensive. There's a huge spread in hourly rates when it comes to development companies, on the Hungarian market you can find anything from €15 to… well, the sky's the limit. But usually it's between €30 and €90.
But unlike with a freelancer or with insourcing, a development partner usually has a specialist for every area of development.
This is important because for two reasons. First, if you're insourcing, you're going to need multiple developers, designers, project manager and testers.
Ask yourself: can you make use of their full capacity? Or will day spend most of their time unassigned? Or will they be waiting for each other? In case of outsourcing, this does not represent a problem.
On the other hand you don't have to invest your time to manage all the freelancers or developers in your team. Think about it: how valuable is your own time?
When putting together a development team, one of the most important aspects to consider is how much added value they can add to your product, besides developing it?
Think of this as sort of a consulting service. Can they help when you don't know the exact direction? Can they advise you when something can be done better or simpler?
Freelancers, even though they are good professionals, cannot be expected to know your field of work or understand your internal processes. So you can't expect this kind of service from them.
An internal team will need time until they'll have a clear picture of how your business works, but since they are part and parcel of all your activities and daily life, they will be the ideal choice when it comes to added value.
A development partner will be situated somewhere between the two. They aren't part of your organisation, but most of the time they have somebody on the team who has prior experience with your field of work or in a similar project. These partners will often be able to give you impartial and valuable advice.
It's always an important question when regarding development: how much time will it take until deployment?
Freelancers often divide their time between multiple projects. If they're on holiday, there'll be nobody to replace them. So, if your project is time critical, they won't be the best choice.
An internal team is a safe bet when delivery time is important, since they can give their full attention to the project. Although even in this case, holidays have to be organised wisely.
It's not so easy to take sides when it comes to outsourcing. A smaller company faces the same issues freelancers do. A larger firm with over 10 developers can form dedicated development teams, who can make progress on the project without interruptions.
Sadly, in our experience, a reliable freelance developer is as rare as a bald eagle. The problem most often springs from the simple fact that they overreach. Sometimes they work 3 or 4 projects at once, which means that deadlines inevitably go out the window.
Sometimes, a freelancer can even go AWOL in the middle of the project if they find a better paying or more interesting project to work on.
Most people choose to insource because this seems to be the safest option. But the same way there are lots of IT projects, there are lots of IT companies out there as well. And as we know, there's a shortage of good IT professionals. The average time spent at one company, is almost a year less for IT companies, than for other business sectors. Searching and training a new employee on the other hand can be very expensive.
An outsourcing partner can lift this weight from our shoulders. Of course, they can also incur delays if an employee leaves the company, but replacing and training them won't be your responsibility and cost!
When developing a software, it is important to take into consideration the type of training and support you're going to get.
Developers tend to no like these types of tasks, so if you choose to work with freelancers, you shouldn't expect very detailed training or fast support.
They also don't like to document their software very well, or at all, as a fact of matter. Of course, this is the easiest way to skimp at the clients expense. To be fair, we'd also like to add that clients also like to make savings by not asking for documentation, but problems arising from this will most likely be encountered at later stages.
If support is important, insourcing might be the best choice. If you go down this avenue, all the knowledge will be kept inside your business. Though you still have to make sure documentation and knowledge sharing processes are defined and governed properly.
When it comes to development companies, we can come across both extremes. So make sure to outline the parameters of training, documentation and support at the very beginning of the projects. Don't forget to include these in the contract as well.
We'd like to mention another aspect to consider when choosing to work with a freelancer, an internal team or an outside development partner. And this is an aspect that is rarely considered: connections.
A development company usually has loads of contacts that they can access for you during a development project. Think of a project coordinator who can help access funds to finance your project, or a change management specialist to help you prepare for digitalizations.
Remember, that when working with freelancers or insourcing, you'll have to form these connections yourself.
Only you can decide which of the three options suits you best. And you'll only be able to choose if you define what are the most important criteria for you.
It's almost certain that cost-wise, freelancers are going to get the tick. If we'd like to manage every aspect of a project, then forming an internal team will be a good choice. But don't forget, that in this case, only you'll be responsible for the outcome of the project.
Outsourcing to a development partner will be a good choice if you'd like to share the burden of responsibility or if you feel you need the partners experience and connections.
If you decided to outsource, drop us a line, we'd love to talk about your next project.