This article is inspired from Pete O'Hanlon's set of articles which advices about starting up your own company.
These articles can be found here:
Since this article is also related to Pete's work, I've included part of his title "Going Solo".
This is a sum of some points of interest from Pete O'Hanlon's articles presented above and some of my personal experience from starting my own business so far. What I did here is made up a list of topics that helped me out. Personally, sometimes it is easier for me to read a list of gathered reasonings. I hope this post helps someone out!
The list below mostly refers to coders. Actually, it's what I've done so far and I would like to share it with you.
So, here is a ToDo list before and after starting your own business:
- Chose your tools. Chose a programming language that interests you. Coding is business but is also fun. After endless hours of coding, your joy for coding will power you up, even without having another cup of coffee.
- Expertise in your programming language. But also keep an eye on other tools too — they might get handy. A solution to a problem will be made out easier if you master your programming language.
- Get an accountant. Taxes, book-keeping and other accounting related stuff should be treated by an expert. Always ask accounting questions and dig up accounting related information in order to know what you are paying, why, and to avoid possible mistakes which result in paying fines.
- Be close to a lawyer. Legal issues always arise. Be prepared.
- Buy a strong computer. You are a coder. Compiling must be quick. Time is money. The monitor must be big (around 24-26inch) to provide enough workspace and be easy on your eyes.
- Have your own working place. Don't work at home. Although it's home sweet home, business from pleasure/leisure must be separated. You can't do serious work wearing your PJ's. In the office you can meet with clients anytime, smoke, talk loudly while at home you can't without waking up the kids or annoying your wife (if married with children). Plus, you can stay focused on your work without pay regular visits to the refrigerator.
- Communication. Own at least one telephone line, a fast internet connection, a fax/scanner/photocopy machine and of course a cell phone. Although at the beginings not all of the equipment will be useful, it will eventually be needed. Be prepared.
- Believe in you. Know what you are and always be true to your self. Criticize yourself, deal your weaknesses whether they are character or educational flaws. Trust yourself so that others can trust you.
- Funding. If you don't have the proper funding, before you can achieve this you must believe in yourself in order to succeed. Try government funding to help start up your own personal business, or loans from parents, and finally (and not recommended) do a bank loan. Alternatively, get another job and do major savings to sponsor your own business.
Having completed all of the above done, you can proceed to further growing your business.
- Advertise yourself. Be true to yourself (as I always say) and to any other person you meet and know. Never lie and be a smart@$$. (He/she may turn out to be a potential customer, who knows). Have a "can-do" attitude but always walk on the ground. You may not be a hot-shot or a walking, talking database, but a "can-do" attitude together with positive thinking, and the will to learn and cooperate provides a good solid image to potential customers and you may end up with a new contract.
A well-explained, organized, flashy website is also needed together with a proper email address (eg. info@myCompany.com). Avoid email addresses such as daMan757IsHere@freeEmail.com. Flushed image down the drain.
Do have business cards. Signs, websites and business cards must all share the same colors, fonts and logos. Company title must be a catchy easy to remember name, but not contrived (ex. itServices, itSoft..etc)
- Be appealing. Smelly breath, yellow teeth and worn out t-shirts are not the best way to meet and do business with someone. The first impression is crucial and you must keep up supporting it. But, there is always a second chance if the first impression was bad. Don't let go. Sometimes good-willed peristance does the trick.
- Be comfortable with your clothes. Don't wear a suit and tie if you don't feel like it. Stiffs don't do business. But do dress smart and have a business/professional look. If in need, wear a suit and walk down the market so that other people can see you, and get comfy with the suit.
- Baiting. Got an app or a service? Provide a demo for free. Store detailed information in your web site so that demo users can read more about your app and services.
- Brochures, newsletters, web site search engine optimisations are just parts of your advertising schedule.
- Choose your customer carefully. Listen to them. Let them talk. What do they need? Do they change their minds constantly thus change and maybe re-do the whole project from scratch again and again? Don't be afraid to ditch some of them. The amount of time sweating your ear on the phone and nerve braking excercises don't deserve you. Plus, they may ruin your image if the customer thinks you are not good enough for him or can't make you understand his fuzzy needs.
- Make plans, design in paper, understand the project, set goals. OK, you got a new contract. 50% of the work is made on paper. Design the project on paper, set goals, clear the mist. Even if it's a small project, practice your organizing techniques. Project planning also serves as your guide. You can't have all the little details stored in your head. You are only human.
Design plans will help you calculate the amount of development time and cost. Yes, always add a few more days (or weeks depending on the project) more when setting deadlines. $h1t always happens!
Minor design changes are accepted at no cost. Major design changes which affect a big part of the project should be paid extra.
- Paying. Once design is done in papers, inform the customer of the total cost. Request an amount of money in advance to start working and set version checkpoints where you get paid in order to continue developing the project. Try avoiding checks. If not, try not to be paid in no more than 2-3 months. You can't pay taxes or bills with customer checks or with your own good will.
- Make your statements. Clarify to the customer how you work, especially how you should get paid for your services and time spent. Don't be afraid to negotiate with the customer in order to do business. You want the contract but you must never beg for it, even if you are desperate. It will ruin your image and self-esteem.
- Dont talk technical. Customers don't always understand geeky stuff. All they are interested in is the result. How you do it is your business. Do some brief explanations if necessary.
- Support. Technical support may be charged extra, or provided as treat to the customer. For every hour of your life spent for support you must be rewarded.
- Bug tracking. Whether using a software tool or just a paper notebook, note down all the bugs and time spend fixing them. Additionaly, make notes of how you solved those bugs. This list will come handy in future situations. Additionaly, you will learn from your mistakes and keep track of the time wasted for not being focused or well planned your work.
- Add comments. Just add some general comments, some thoughts before a class or a function. You may end up re-editing your code after a month and question yourself "what was I thinking?". Make notes to yourself. eg. "I do this and this because that and that." Sounds silly, but in situations where something must be fixed rapidly, comments are like a life jacket.
- Think futuristic. Will this piece of code help me in another application? Can it be edited and preserved easily? Do abstract and re-usable coding.
- Temporary code. Use it to see how the application works. Never leave variables such as
tmpVar1 in your code. They must be self-explanitory to make your life easier.
- Development/Testing. Be sure your app works well so far before trying achieving the next goal. You will end up having an app being like helvetic cheese (filled with holes). Fix it, test it and then write new lines of code. This will improve your applications stability and your self-esteem, since you will know that your application is good!