October 24, 2009

Top 5 habits of Happy, Productive Software Developers

Hi All,
Many times I see people blaming others for their incapability of handling any worsened situation. For e.g. People sitting on bench blame their bosses though it might be because of their poor skills or bad luck and only minor percent of the people is often seen who take the problem as a challenge and find out the solution for it that heals the entire root. Rest just keep on blaming others always , calling them as stupid & blah blah and waste their times and all. *Really suck such people* . Anyway, Post is not about all that. Just a moment back, I read a very good article and quite got agreed with its words. So sharing my read with you all also. May be of any help to our future generation software developers or even to those who are currently in profession. 

1. Be Marketable - Keep Up To Date Skills and Network Contacts : No matter how much you love your current job, you should keep your CV current, and you should always keep up-to-date on industry opportunities. Know what skills are in demand, and try to gain experience in them (even if it means pursuing formal or self-training during your own time), and attain a level of comfort that you could transition to a different opportunity with minimal discomfort.You should do everything in your power to make your group feel confident in their abilities -- ensure that everyone gets a chance with marketable technologies; encourage the pursuit of desirable certifications; and build skills through internal resources, workshops, and seminars. Unless you're running a sweatshop, this is unlikely to lead to a feared exodus of employees, but instead will empower and motivate your group to more openly contribute, and to demand more of each other.

2. Be The Master of Your Domain : The next time something seems mysterious or unknown, take the time to properly investigate it. Classic lack-of-control approaches such as hacked workarounds or "reset the server daily" lead to a feeling of losing control, reducing job satisfaction and adding to the natural daily frustrations. And get your keyboard replaced if it starts malfunctioning. Identify and investigate "easy-outs" proposed by your development team. While most software has faults, and products and technologies often work differently than we might imagine, many times such excuses are due to a lack of investigation and analysis. Even when things don't work as advertised, which is frequently the case, formally investigating and empirically determining behaviours is vastly superior to each developer endlessly fighting with and then hashing out strategies on a need basis. And make sure your developers have functioning keyboards.

3. Accommodate your financial needs : If your financials are out of balance, it will unavoidably sour your mood during the workday, making you resent your employer and your workplace. When life goals exceed the income of your position, immediately begin investigating alternatives (be it asking for a raise, looking for a more senior role in your organization, or seeking employment elsewhere). No motivational boost or cool company games room will overcome this basic life need. Be aware of the goals and needs of your group. Sometimes someone's needs grow beyond the possible return of a position, and it is important to appropriately communicate this (rather than giving vague hints of unseen raises and super-bonuses at some future point).

4. Have a life outside of work : There will be periods when everything seems to go wrong in the workplace. Having the cushion of achievements outside of work can avoid it spiraling into a workplace disaster, keeping spirits up through the tough times. Often non-work experiences benefit the workplace as well, whether it's techniques learned from nighttime projects, or delicious coffee courtesy of the nighttime barista classes. There is a world outside of work.

5. Properly manage expectations : Plan for the long term, realizing that promises that aren't delivered on will cause you great workplace unhappiness later. Manage expectations to ensure that you can satisfy your "customers" with reasonable effort, and with a reasonably high probability of success. Never demand unrealistic deadlines, and question employees when provided with the same. Encourage your troops to be more reasonable with their promises, especially to stakeholders outside of the group, and they'll have a much greater probability of meeting external expectations, leading to increased motivation for everyone.

Really very positive view about Life of a Software Developer. What I personally feel is the reason why Software Market is degrading its value since few years is - Developers recruited by companies are not working any more for the company rather working for their living. I come to know this thing when I see people ignore my spirit of working and give lectures to me what you are going to get doing so much of work. No salary hikes this year. Though they are not aware of the fact, what I GAIN from this PAIN only. ;)

One tip from my side - BE POSITIVE ABOUT YOUR COMPANY AND WORK ! NEVER LEAVE AN OPPORTUNITY FOR OTHERS TO BLAME ON YOU. KEY TO HAPPINESS. :)