I formally started Sparxsys in March 2010. I am just an engineer by education and never really learned anything about managing a company or a team. There are specialized courses like MBA for such stuff, I do feel sometimes about not knowing all these things when starting out, but I know from my experience that you can always learn it in the field and that learning is life long.
Today I want to share something I learned.
At Sparxsys we are currently into Drupal development services and JIRA trainings. This post is all about software services and how you should deal with clients. In web development services client will share the requirements of what they want to build. May be they are looking for a web portal or some web based application. Over the year I have learned so many things about requirement gathering where you understand the client's requirements and store them in written format, finalize it and offer a solution to the client. This is better known as Business Analysis, I am not an expert on this topic and I don't want to be, but I can definitely share my experience here. This post is not about on how to do requirement gathering, probably I will write another post on it but I want to share how to deal professionally with your clients. It will give you peace of mind and also make sure you are safe legally.
Never ever work without signed contract
You know what I mean. When you start your own company, you may not know about these things, I didn't know too, there is no one who can guide you well. You can't afford to hire lawyers, they are a**holes anyways. What I have learned in all these years is that contract is just a paper where you write what all X number of services your company will offer in return of Y amount of money in Z many days or months. Don't worry about fancy language, it could be in simple English that everyone understand. As you grow your clients you can improvise this contract.
Your contract should have.
- Attach the finalize proposal that contains the list of features
- Deadlines/Timelines of deliverable
- Payment Schedule
- Termination clause
- Penalty for non delivery
- Penalty for non payment or on time payment
Make two copies of the contract, both parties should sign it and keep it with them. Also mention in the contract that additional features or any changes will require separate discussion and will be treated as change request. After certain point of time your client will say that "I want this feature too" or "You promised that and didn't deliver it". You can always refer to this contract to remind your client about your initial agreement. Of course this contract is for both the parties. Your client can also refer to this document if you don't actually deliver what you promised. More importantly it will give you peace of mind and that really means a lot, at least to me personally. Nobody wants to get into legal matters and in case of disagreement court cases are worst thing to do but having a document will ensure that you have clearly written down your offerings. In most cases this is just enough. We never really had a situation we had major disagreement with client and signing a contract is something that we always do.
I did make several mistakes where I didn't ask the client to sign the contract and due to that had conflicts later on. Client can refer to the conversation you had long time back but if it is not written and signed then it is not part of the agreetment.
There are few other things that I want to share with everyone. Nothing related to the contract. Just my experience.
Never do any personal favors to your clients
Your client may ask you to do some favor like "creating a website for their wife", "Add this feature for free", "Setup this for free".
Never do anything for free. Personally I know and can do lot of different things. I am quite comfortable in server manangement. I know hardware stuff really well. I am also good in excel. I am comfortable working on linux, windows and mac. Overally I have good technical understanding of things, thanks to my experience of over 11 years as of 2014 but that doesn't mean I will do thing for free. Usually client's ask me for favors all the time. I define favors as something that you can do without charging money. Usually I say no to things I don't specialize in, even if I know how to do it but more importantly I know from my experience that people don't respect for things that they get for free. I have done lot of favors to people and now after bad experiences I have learned that people don't remember these favors.
Money is all you should care about
You will hear and ready everywhere that people want to start business because they want to do something good for the society or world, that is bullshit. I believe that you should first care about yourself. Business is all about making money. I have no hesitations in saying that I need to get paid really well. Of course that also means that I will provide good service to my clients and always be honest with them, but whatever decisions I make are always oriented towards making profits, otherwise there is no point of doing business. I guess it is true for everyone but people don't want to openly accept it.
- Never hesitate about asking money
- For small to medium project, at least take 60% advance
- Do not start work until payment is received
I want to emphasis on the last point. Client might agree to the payment and payment terms but never believe them when they ask you to start the work and payment would be made in few days. You will make clients for a long time, be strict when it comes to the timely payment, otherwise client will take you for granted. I made this mistake intially and that resulted in late payments by several months, during that time client will also add new features and knowing that your earlier payment is due, you will be under pressure to accept that. So be strict about the payments from the very beginning.
Client's are not your friends
Never ever make friends with your clients. Ocassionally socializing with them is ok, May be you can go out with them for lunch or drinks but I personally avoid it all the times. The more you become casually with them the more your business will suffer. In my case, being a very small company client's usually interact with me, right from the very beginning till the final delivery, and even during the support. Right now I can't really afford to have multiple people taking care of various departments in our company. I do multiple roles like sales, business analysis, project management, accounting and client support. Clients know that and they also know that I am the owner/founder of the company and have most of the decision making powers. So just keep your interaction with them very formal.
Prefer formal wear when meeting clients
People make judegments by looking at you. This may seem like a small thing but the way you dress up does give a strong message to the people you deal with. You don't want to hand over an Invoice of Rs. 2 Lakh to your client wearing a torn jeans and t-shirt. I hope you get the message. In winters I even wear blazers, of course it is not comfortable but it is all about the money!
These are just things I wanted to share based on my experience. I am no way an expert but have learned from my mistakes. Hope it helped you. You can always reach me at ravi at sparxsys dot com to share your experience. I will be glad to know how you guys are doing these things. We can always learn from each other.
Good bye and have a great day!
P.S. - I will soon share the sample contracts and other legal documents in this blog.