Developing software for your company is almost a requisite to stay afloat in the 21st century.
Companies like Google, Facebook, Netflix, and Amazon have shown us what it means to develop quality software tools that millions of us interact with on a daily basis.
Your company deserves some quality software and since we know that there are processes in your company that you can automate. Doing so gives us an edge on smaller businesses who don’t have the means or interest in taking their business into the virtual space.
The question is, should you build a team of inhouse software developers or look outwards to contract a team?
Both options are a great way to obtain software but there are some key differences we should be aware of, and these differences will affect the price of the project.
Estimation vs. final cost
Unfortunately buying custom software isn’t like buying the new MacBook Pro — you do not know exactly what you will get or how much you will end up paying when you buy.
When building an application or any type of software, there are many ways to do it — some of those differences will be negligible while others can be catastrophic and cause a team to redo a lot of work.
There are many reasons why a project estimation may completely fail and a company may be very dissatisfied with the final product.
Let’s go through some general reasons a project estimation could go wrong.
The project was unclear from the start
Without clear requirements, coders will inevitably be unable to give proper results. Software engineering talent cannot replace clear leadership.
While some features can be developed and be generally applicable to most software, it is important to have a leader be able to make informed decisions when developers have questions.
Software engineers do not know all the little ins and outs of your business, and nor should they need to if a good project leader is handy.
The product owner doesn’t have time to oversee it
Perhaps the person paying for the project isn’t the one delegating the tasks to developers. If the product owner is not able to dedicate time to overseeing the project they are in for a surprise when the final product is delivered.
If the person paying for the product doesn’t have time to check in on the product and test it, red flags should be waved and you can expect estimation costs to rise to compensate.
Getting the right team
There’s more to a team than just developers. Whether you are deciding to build your team or to contract a team, having them be well rounded in leadership, business and full tech stack knowledge (frontend, backend UX and UI) is very valuable.
It may sound like a lot, but given how intertwined these projects all are, it is very important for most of the team to have at least basic knowledge in each area.
A quality assurance (QA) plan is also an often overlooked feature when ensuring a project successfully comes to fruition. The last thing you want is a product to go live without all the features being extensively tested.
Project estimation for an in-house software team
Generally, when we think of outsourcing, we think the price will be cheaper. In most cases, this is true.
A team of in-house engineers will be more costly to hold on to year after year. Between salaries, 401K, and other benefits, it’s just cheaper to hire contractors.
However, if you are fortunate enough to put forth the budget to hire a team internally you will be developing a team that will stay close to you for a substantial amount of time.
It is important to keep in mind that it’s difficult to provide an accurate estimation of what a project will cost for inhouse engineers given a number of factors:
- If you are hiring a team from scratch they will have no experience working together and may not be on board with the same project management procedures.
- Will you hire a lead developer to code and manage others? If so, how much development can a lead developer do when they are simultaneously leading a team?
- Do you need a project done by a certain date? How many developers will it take to achieve that?
- Keep in mind the time it takes to train and hire is substantial — also remember to factor in holidays or vacations to your schedule.
Outsourced / Contracted team
It’s true that even when hiring out you can not expect the estimation to equal the final cost.
If its the type of project the developers are familiar with they can usually give you a pretty close approximation to the number of hours.
The advantage of contracting a team (among many others) is that many of the project management issues that you would need to develop internally with inhouse developers would go away, assuming the team is already seasoned in tackling projects for companies.
They know how they work and can give you a time window corresponding to how many developers will be working on the project, the cost per hour of those developers as well as taking into account things like QA and testing.
We use great productivity tools to ensure we stay on track and on budget — among which are Slack and a Jira project to make sure everyone is up to date.
However, there still are some ways in which the project’s estimation can veer away from the initial estimate:
- The level of complexity of a project. This will typically be worked out beforehand but it is good to keep in mind that specialty projects will require developers to estimate how long it will take to integrate technologies they are not used to working with (machine learning, etc.)
- Third-party costs.
- Poor requirements and leadership on the business’ side (especially if this is the first software project they’ve embarked on) will lead to a grossly undercalculated estimation.
Contact us for an estimation on your project
The best way to know if contracting a company is the best option for your business is by starting to talk to them and seeing what they can offer you.
Reach out to us for a consultation and we can give you a competitive estimate on your current project.