Starting a small business in the software industry, perhaps as a software developer, involves many considerations like any other business. You will need to think about whether you want to be a sole trader, or become incorporated. You will need to think about what tools and hardware, licences, hosting, cloud services, and working spaces you need, as well as things like branding and marketing. Accountants and business advisers will help you with these decisions.
You can get some general advice from a business advisory service. In Perth this includes the Small Business Development Corporation – check the web, they have good advice on general issues, the need for legal contracts. Phone them up and see if they can put you in touch with people in software too. I’d also recommend the Australian Computing Society, if you are not already a member. They have good resources.
Think about what your business is. Are you a lone coder offering software? Are you part of a group of people who combine to offer a complex business product?
What is your market? How well do you know it? Who will you attempt to win work from, and what will they pay for the work, service or product? Can you win work by putting up examples of your work, your portfolio or using reputations and rankings on coders sites? Are you trying to win work from the business market or as a contractor in the more computer-savvy coding or scientific world?
Do you write code and keep it as an asset (e.g. licence it to clients) or sell the code once-off and then have nothing further to do with it? Or do you promise to service code and keep it working?
Some software developers may wish to become affiliated developers, using the resources of companies like Apple and Google to sell stand-alone apps to a national or international market. Is that what you want to do? Or are you working on more complex problems, suited to each individual client?
How much thought have you given to the right service in the right market, as alluded to above?
There’s no reason to lock yourself into the idea your only possible business model is as a coder for hire. It may not be the best work or business environment for you. You may actually want to work with other people, and it may be that you find that you need to be in some kind of multi-skilled business that can offer a broad suite of services to clients, with specialists all contributing to the final business product.
If you are a sole trader, some of the social aspects of working in a larger business will have to be met in other ways. how will you maintain industry connections and remain abreast of what’s going on? How will you be able to maintain a competitive advantage? How long might you be working before you need to find people with other skills to help you win or retain work?
Once you have more than just a sole founder in your proposed business, then questions about who the founders are, what other staff are needed and what they will provide to the business will all become relevant questions.
What’s your financial model?
Think about payment terms for individual contracts. Perhaps you have individual software development contracts that become a source of revenue in themselves, contributing to the revenue of the business as a whole.
Let’s assume you are negotiating individual, person to person contracts. Do you want to get paid up-front, or in instalments or just at completion? What risks are there to you? And what might you promise as you go? What are you getting paid for and what is the relationship between the value of your work and when the risk passes to the customer etc? i.e. if you get paid $100, then you might not be taking much responsibility, adn the client just has to make good with it. If they’re paying you $10,000 they might expect it to work really well etc.
As often as you can, carry out risk identification and planning in your business. Risk planning can be win-win, if you discuss the risk of product/services failure and help both the client and yourself prepare for that possibility.
Specific risk assessments for individual contracts
You will need to fine tune your financial model and risk assessments for individual contracts. This will depend on who the client is, and what they want.
In what environment is your code etc going to be working? Will you promise (i.e. offer a warranty) that it will work on a particular hardware, platform etc? Or maybe you won’t. Maybe you want the client to test it, sign off and then they have full risk?
A related question is what objective standards does the code have to meet? Remember that unit tests or performance tests are only one way of getting sign off. The best way for you and client to say ‘this is done, and we are happy’ is up to you. It depends on the nature of the job. Above all, get those specs in writing.
Research and innovation – special considerations
If you are involved in innovation or start-ups, you may have protected environments or ‘experiments’ where you try something out, knowing that it is not intended to have the same risk or legal liability as the main product. If clients are involved in this, make sure that you protect your ideas, when you obtain their feedback. If this is before you MVP (minimum viable product), make sure you think about protecting the market-valuable information. You may want to think about what you are prepare to disclose in your ‘pitch’ before you enter into a contract.
What is your business and research worth to you? How would your record the value of your R&D time, and your product, before there is a defined product?
How soon do you need to protect your research, if you are offering a specific product to the public or world at large? Are there designs or copyright?
Have your developed a unique software solution that is essential to your business and is capable of registration or needs careful non-disclosure?
If you enjoy working with ‘open-source’ projects, then make sure you still have an appropriate open-source licence for your code.
Issues for sole software developers and their code
Is your business model dependent on you retaining any of your own code (whether for tools or creating external code on servers etc?). e.g. Have you developed an ‘engine’ to enable you to efficiently deliver your services, which is therefore a core asset of your business?
Who owns the code, and is some or any of it going to be available to you for future work?
Is the code owned by you, the client or is it going to be open-sourced with a license? These are important business and risk questions. If the client can modify the code, who is responsible for the whole system? Be very specific about what your product is.
Whenever you discuss code, think about your intellectual property, and what you have invested in your ideas. Does your code give you a market advantage and if so, for how long? Do you rely on your ability to keep ahead of the market or on a specific advantage from specific code? Do you just sell code to clients as they require it, and so your business relies mainly on your personal coding skill?
If you are not yet in a business arrangement, make sure you think about whether you need to protect your intellectual property (if it is already valuable), or if you are prepared to discuss your information with someone under the protection of a confidentiality agreement.
Remember it is hard to stop the flow of ideas, so make a decision about what you want to share and what you don’t want to.
Begin to understand your business and risk identification by thinking about entering into a well written legal contract.
See here : https://www.smallbusiness.wa.gov.au/business-advice/legal-essentials/contracts-and-agreements
There are two essential things to think about during contract negotiations:
- Why you need a legal contract at all
- Obtaining proper legal advice to assist you, when you need it.
The negotiation of the contract as an important stage. If you get that right, it will pay off for you later. In large projects, over a long period of time, with large financial returns and risks, it is essential you have a good contract before you start. Even if you have lots of small contracts that are essential to your business, it might be a good idea to have a lawyer draw up a set of terms that you will repeatedly use, or vary slightly.
It is often better to prepare a full set of contract terms rather than just a few sentences on an invoice. The greater your financial risk, the more important it is for your contract to cover the major risks and, in some areas, to be detailed enough there won’t be confusion or ambiguity if a problem occurs. Make sure this is all in writing, and signed so that there is proof of agreement by all the parties.
Understand what a legal contract is and why you might want one. Some of the reasons include:
- It sets standards for behaviour and communication that are essential to working cooperatively with other people.
- It ensures that people cannot go back on what they have said when it suits them.
- It provides an objective record of what was agreed, when and by whom.
- It is a basis for legal claims that require contracts in writing.
- It helps you plan for, and anticipate, your operational, financial, business and reputational risks (at least these – there may be more). The more you can do so before you start any work, the better.
- It helps protect you in case of a future breakdown in personal or business relationships.
- It can help define the state of work before the contract period commences, and if there is intellectual property, it should say who owned it before, during and after the contract.
If you can afford it, obtain some basic legal advice as to what you can use as a contract to sell your services e.g. a standard contract for development of specific software, that you can use as a template for all you clients. This is well worth thinking about if you have lots of similar work, or you think your product offering is similar. The professional skills and knowledge that lawyers bring to your business include the ability to identify the kinds of issues I’ve described above, and to prepare and document some proposals you can practically use.
Whether you need to pay for legal advice, and the kind of legal advice you want, depends on things like:
- How important your work and risk planning is to you – financially, reputationally.
- How important each individual contract is to your business. Do you do lots of small work or large, project-based work?
- How much business experience do you and your clients have?
- Is your client very experienced? Do they already have standard terms that they might try and ask you to accept?
- Are there standard contracts that are accepted in your industry, that can be the basis for the legal advice you obtain?
A lawyer will help you understand other legislation and laws that relate to your industry and type of contract, and know how they modify or supplement your contract terms.