The reason to start any relationship or partnership with a formal agreement is to create a backstop, ensuring all legal expectations are covered and compliance needs are met. A software development contract provides transparency and protection for businesses and their development partners.
Plainly defined terms should keep a project moving forwards and align expectations between both parties. In the worst case scenario, you may need to refer to the contract to prevent a disagreement from becoming an expensive lawsuit.
What’s included in a software development agreement?
As we discussed above, it’s important to make sure there is a sufficient legal backstop should things not work out with a vendor. But this is a rare use case. At Atlantic BT, we primarily use contracts for setting expectations.
Some elements you should expect in a contract include:
- Governing legal jurisdiction
- Separation or termination terms and costs
- Ownership of the code
- Definitions of acceptance
- Authorizations for points of contact
If any of these baseline elements are missing from a contract, you may want to find a new software development partner. You risk finding yourself exposed to legal challenges of code ownership, expensive or combative separations, or having to litigate in a different state than where you are incorporated.
What are some examples of red flags?
The most obvious red flag for a software development partnership would be the lack of a formal agreement. Some developers are not sophisticated enough to hire lawyers to generate professional and legally binding contracts. Without a contract, you are opening your business up to unnecessary risk of employee solicitation, customer solicitation, unfair billing practices, or liabilities for licensing/payments that are unexpected.
Another common issue would be businesses hiring offshore developers or third-party contractors without transparency. Look out for language around including subcontractors without approval or awareness. Some “software development agencies” may not actually have software developers on staff at all. If they’re hiding this fact, there’s a chance the outsourced development is low cost and low quality.
Also be wary of hidden licensing and termination clauses. Make sure you know what you own at the end of the agreement and how costly it may be to get out of it.
Finally, find out how code is deemed “acceptable” for a project. Software development companies should have formal acceptance procedures which outline standards for quality, security, and user experience.
What can you expect from an Atlantic BT software contract?
As a software development company, our primary goal with our client contracts is to be flexible and create language that both sides deem fair and balanced. This is the basis for delivering quality software that you can own and can be proud of.
We are even flexible to use your contract as a starting point and refine until we are comfortable with the language and terms.
Here’s our process for starting partnerships.
NDAs protect intellectual property.
Engagements begin with a straight forward mutual non-disclosure agreement (mNDA). Now, both parties are protected from disclosure of intellectual property and trade secrets.
A Master Services Agreement defines legal parameters.
We then move into the Master Services Agreement that helps define the legal jurisdiction and other parameters that help govern the partnership. This includes items like flexible payment terms, acceptance, warranties, liability, terms and termination, intellectual property rights and exclusions, third party software, non-solicitation, indemnification, and the other legal essentials.
Statements of Work and Retainers govern development.
There are then two types of contracts that govern the actual development work: Statements of Work and Retainers.
Statements of Work outline defined projects.
For Statements of Work, we work in a decent mix of planning and agility. While the project is defined, we know businesses have shifting priorities over time. Statements of Work can be augmented during the project lifecycle with change orders and email approvals.
Retainer Agreements handle shifting needs.
We create Retainer agreements in one of these scenarios:
- There is a need for staff augmentation
- There are many shifting initiatives that are not clearly defined
Retainers have defined budgets, roll over hours, and flexibility to grow and shrink with some notice.
Ready to start a software development project?
Finding an agency that is trustworthy and transparent in their contracts is the first step towards building a partnership. If you have any questions about our process, we’re happy to talk.