Monday, May 28, 2012

A few lessons learnt over the years - notes from my diary

Ok. What age did you peg me at just by reading the headline? I am really not that old age-wise but getting into I.T. in the year 2000 makes me quite old in this trade. If programming were akin to a Mafia clan, I may be deputy god father. I have learnt a lot over the years. Some good and some bad. Some I had to learn the hard way. A lot I had to learn on the job. A lot more through observation. You may have already experienced these personally or read them elsewhere from my brother from another mother. Let's still dive in. 


1. It goes beyond academics. Having passion  for what you do is something you can never learn in the classroom. It has to be inate. You either discover it or develop it. A lot of young folks have approached me and said "I hear there is a lot of money in programming. I want to do that in school".  True, there is great financial reward in programming but then those who are passionate about programming excel more than those who learn programming as a trade. 


2. A good name is better than riches. Many times people will refer you to others when they are happy with your work ethics and know recommending you won't dent their own reputations. Work hard at making a good name for yourself. The points that follow are essential to  helping you make a good name. 


3. Be truthful. If you are late with your deadlines be truthful to your clients. They won't kill you. The worst they can do is scream and for how long - 30minutes? The truth helps them to plan so tell it to them. If you have no clue on a subject say so. It's better than looking stupid saying things that don't make sense. 


4. Be timely. Deliver on time. It makes you trustworthy. Clients get fed up with your non-delivery and warn their friends against you. 


5. Calling them your clients is not enough. Don't make your relationship with your clients strictly business. Be their friend. I have clients who call me sometimes to discuss their marital problems (and I am not even married) and  issues concerning their businesses. They value my advice and that feels nice. 


6. Be patient and  innovative. Many times your clients may not know exactly what they want. They came to you because you are supposed to know more than they do in that field. Think thoroughly through their specs and needs and always make sure you add value. Clients  always leave something out. Find it and tell them. Help them make more money with ideas they never thought about. This way they know you care about their success and it's not just business as usual.


7. There is a time for everything. A time to charge and a time to Pro Bono. Don't always be on the lookout to make profit or make money off your clients. There are some things that don't really take much of your time but are very critical for your client's business. Do it for free. There are other times your client offers to pay way less than you charged. You know the amount he wants to pay is really not worth the time you will spend on the project. Do the project and for FREE. There are enormous returns with such gifts you give to your clients.


8. Always play with new technology. Don't get left behind. New things keep getting introduced in programming. Always make sure you play with them as and when they come. No need to necessarily master them. Just get familiar with them. You will look stupid if a novice coder asks you questions about stuff you are supposed to know in your profession and you just draw a blank. 


9. Get rid of pride. One head doesn't hold all the wisdom and knowledge. If you don't know something feel free to ask another programmer who is master in that topic or language. I do that a lot with @AlfredRowe and @Jean-Paul. When you know and are asked, willingly share. Don't diss the one asking before you share knowledge. Humble yourself and learn from someone who is a 'junior' developer if they teach you something you didn't know.


10. Don't be Greedy. There are times we really get overloaded with work. Pass work on to your peers you can trust. Don't take it all even when you know you can't deliver. Other times when clients bring things related to stuff you don't do, pass them on to someone you know can help. 


11. Work in a team. We all ultimately want to be our own bosses but it's priceless working in at least 2 teams. There are a lot of things you learn when you have different temperaments in play. A lot more other things you learn that help you run your own company in the long term. 


12. Don't be a flat character. There is life beyond programming. Acquire knowledge of other peoples roles. This mostly applies when working in a company. Learn how HR does its work, the accounts department, marketing team etc. 


These are a few notes from my diary. Will write a sequel to this as I keep learning from life's harsh and polite dealings. 




No comments:

Post a Comment