In this article, we’ve listed the legal hacks we have identified as essential to hiring software engineers and getting the results you want in your software development business.
Naturally, the contract you sign with your team of engineers is the best place to start – getting your agreement in writing will set your expectations, so you can build your team and relationship on a strong foundation.
Here are some key elements to address prior to signing contracts with your engineering team and what your contracts should include:
- Scope of work – define it as clearly and as detailed as possible – some questions to address in this section of the contract:
- are they Erlang software engineers or Python or? What is the type of programming they will be performing?
- Will they be working for your company or on a designated project for a client of yours?
- Will they be working on a project, a specific stage of a project, a certain component?
- Is there work engineering or programming exclusively or does it include other tasks too: reporting, budgeting, project management, team leadership, etc.?
- Place of work – remote, using your premises or hybrid? Do you have specific policies in place that cover the different types of work arrangements for your workers or visiting freelancers and consultants?
- Remuneration
- Fixed project fee – use this fee structure if you have a fixed budget, time-sensitive project, with a pre-set delivery date, task specific, clearly defined
- Time and materials (hourly, workday) – perhaps you’re working agile or don’t have all the specifications defined with your own client; still, in order to keep control over costs and performance, it is important you determine such elements.
- Dedicated team? if this is a dedicated team for a specific client project, then make sure you go a little deeper into how the team is structured, how changes can occur within the team, what happens in case of impossibility of performance, etc.
- Term – determined or undetermined – this needs to be discussed in detail with your team, because depending on the duration of your collaboration together, you will have certain termination rights.
- Intellectual Property – you want to own the software, not just the end-product, but every step of the process – au fur et à mesure that it’s being developed – while it is important to state this clearly in your contract, also keep in mind that the following items cannot be transferred to or owned by you:
- Open-source software used in the development process.
- Pre-existing/developed IP that was used to create the software and that is already owned by the engineer or a third party – this needs to be clearly distinguished in the contract, as well as the rights conferred (license) and any applicable rules pertaining to the use thereof.
- Concepts, ideas relating to/behind the software.
- Insurance – having professional insurance is a plus. While it increases the cost of contracting, it is designed to cover against specific risks associated with the software development profession, such as negligence, errors, omissions, or third-party damages. Mistakes can happen but they can also have an impact on your clients and be disruptive for your business. Make sure you do a risk assessment on the project you’re hiring them on and discuss this well in advance.
Other aspects to consider and discuss prior to signing the contract:
- Exclusivity – would you like your team to work exclusively for you on this project?
- Restrictions, such as non-compete on certain projects, territorial restrictions, non-solicitation are relevant not only during the term of your agreement, but also, post-termination, and so, it is worth going through these with your team.
You can now purchase your own Software Engineering Services Agreement here and start building your team today.
#software #development #engineer