HIRING DEVELOPERS TO BUILD YOUR SOFTWARE PROJECT
Any company these days will require software developers to some extent. Either simply to build their website or, on the other extreme, to build their entire product.
Getting software developers to work for your company follows multiple paths, each with its advantages and disadvantages that make them better suited for very specific situations.
Understanding the benefits, risks, and costs of each strategy is essential to enable company managers to reach their goals most efficiently.
In this paper we’ll be looking at the challenges companies may face when hiring and managing a team of developers to build their software products.
Before thinking about getting a team of developers to build a piece of software, there must be a very clear understanding of what the software will be required to do.
In that regard, Project requirements can be in the initial stage:
– closed requirements, meaning before the project development phase starts almost all details about what needs to be accomplished are well defined and are not meant to change throughout the project development phase,
and projects can have
– open requirements, meaning it is expected that features may be added or removed during development.
Companies that provide non-software products and services will generally aim to have closed requirements since they don’t expect the software to be constantly changing.
On the other hand, companies that are focused on software, or at least highly dependent on it, are almost certain to have open requirements, mainly because in a fast-moving market they will need to be constantly changing and perfecting it.
BUDGET – Fixed Vs Pay as you go
For closed requirements projects, it’s possible and desirable to aim for a fixed budget approach in which an external software developer house is contacted, given requirements, and asked for a fixed quote. Whether the project goes well or badly, it’s up to that service provider to make sure it is delivered on time and for the agreed price.
While for open requirement projects, although the fixed cost approach is certainly possible it’s not usually very practical since whenever changes are required during development, it’ll be a real pain to negotiate additional work with the service provider. Unexpected changes will most certainly result in much higher costs.
This happens mainly because additional workload will create uncertainty in the service provider’s schedule and uncertainty is always expensive.
Also, even after the initial phase of development is finished, if changes/upgrades are required, unless that workload is agreed upon beforehand, it’ll likely result in delays since your company, as a client of the service provider, at that moment will then be competing with others for the service provider’s schedule slot.
So more commonly in open requirement projects, the budget is generally calculated based on work hours that the task takes. Teams are usually hired for longer periods, which can be extended. The cost risk is pretty much the extension of work contracts. If projects are not properly managed the hiring company may find itself very easily with either an incomplete project or with a complete project and a team of developers with no additional work to do, but still getting paid.
BUILDING A TEAM
The team building process can be split into three basic decision categories:
1. Finding talent;
2. Hiring developers;
3. Project management.
1. Finding talent
Finding Software developers can be hard for non-IT companies alone because there are usually no staff members with technical knowledge to know what to look for. In such a case, the alternative and most often used route is to outsource this task to standard HR firms or consultancy firms.
For companies that already have technical staff, it’s usually safe to attempt finding talent on their own, being the disadvantage of doing this in-house that the engineers may need to allocate precious time to HR activities that could otherwise go into development.
Although HR firms can charge hefty fees for hires (15% to 30% of the annual salary of the hired employee as a flat fee), these are only charged in case someone is hired through them, so all the work cost of screening potential candidates that don’t result in hire is absorbed by the HR company.
One common problem however with your average HR company is that many headhunters have little to no technical know-how. As an example, often when the firms are looking for Objective-C developers, what is basically done is simply check if “Objective-C” is written the CVs of applicants, without fully comprehending the associated technologies or how those languages relate to the projects candidates previously participated in. This may result in firms getting spammed with candidates which are not really all that relevant.
IT Consultancy firms however tend to find the developers for themselves and share them between different clients’ projects. Often the finding cost is already diluted between multiple clients unless client companies specifically ask for a rare set of skills.
2. Hiring developers
Once the right professionals are found, it’s time to hire.
Unlike companies whose products are software or software dependent and may benefit from hiring directly developers as employees, for non-IT companies there’s no point in hiring developers directly since it’s unlikely there will be a steady flow of software development work to justify permanent contracts.
Then there’s the question of who should hold the contracts with the developers, which may seem a superficial difference but can result in a lot of unexpected problems if not well thought of.
Most states enforce strict regulations on employee rights, which if violated even by accident, can result in pricy court battles. So by hiring a consultancy firm that holds the employee’s contract is in some regards the best way of reducing legal risk. Instead, the hiring company only needs to worry about the much simpler agreement it (should) have with the consultancy firm.
The downside to not holding a contract: Client companies pay a logistics and associated risk fee and they have less control over business negotiation with the actual developers that at some point may become very important team members.
So between these options, there’s no clear better approach. It depends mostly on how much companies are efficient and working within their domain. Hiring directly can be more cost-efficient in the long run IF everything goes well, which usually only happens for long-lived companies in the field of IT. While hiring through a consultancy firm can be a more worry-free experience due to reduced complexity and assuming contracts are well thought of.
There is however another great advantage in hiring via consultancy firms if companies consider hiring remote teams from countries where living costs are lower (such as what we at www.ascendanti.com can provide). Lower living costs mean hiring, logistics (and in some cases taxes as a result) is generally much more cost-efficient as long as professionals’ know-how has the same high standards. So in that regard, if a company is based in the US, it can be tempting to outsource work to European countries *, that for the most part have well-funded universities creating well-prepared professionals.
3. Project management
For project management similar thought process applies: for companies that have non-software development dependent products and services, it’s simpler and safer to outsource that task and focus on requirements.
If however there’s a steady need for development activities or worry about IP secrets *, keep project management on the company side always, even if the team is hired via a consultancy firm.
* to safeguard your IPs it is a good practice to avoid having your workforce in countries that are much more likely to allow and in some cases even incentivize rampant IP violations, being China the best example of a place where this is known to happen.
HOW WE WORK AT ASCENDANTI
When it comes to getting a client’s project done, Ascendanti can act as both a Human Resources firm and a Consultancy firm. We analyze our clients’ specific needs and recommend the best strategy to match the intended results. This may mean fully developing the project for the client or instead assist the client in setting up a team to do it.
We will look at a client’s
- project requirements: if they are fixed or will they need to be flexible enough to change or expand them during development;
- based on the requirements, if no technologies are chosen yet, we’ll recommend the best combination. But if the project is already partially underway when it reaches us, we’ll still evaluate the advantages and disadvantages of switching technologies based on our experience and recommend those changes to benefit our client;
- if we don’t have in-house the technical staff that is required for some particular technology the client’s project uses, we will find that talent and hire him/her;
- project management may be provided by Ascendanti, always in frequent contact with the client, or it may be taken up by the client if so is desired;
- although we may hire technical staff through Ascendanti, we are always open to allow their contract to transition to the client’s company in the future.
- and finally, we focus on establishing remote development teams in Western Europe, always close to the best universities.
THANK YOU FOR READING AND CONTACT US TODAY
Hope you found this article useful. Contact us today to schedule a call and we will take a look at your company needs and discuss the best approach to meet your software development goals.