Tuesday, December 15, 2009

Staying Enthusiastic about Programming

I started in programming like many developers out there. I was a hobbyist as a kid. I picked up a book on BASIC as a kid and loved it. I enjoyed seeing something I wrote and created come to life on the monitor. It was because of this passion that I learned Computer Science at school, and this same passion kept me from directly pursuing a development job out of college. My reasoning at the time was that if I coded at work all day, it wold take all of the fun out of coding.

Sadly, I was right. Especially in the last six months, since I moved to a new project, this feeling has overwhelmed me.

The problem lies mostly within the project itself. There does not feel to be any guidance, project assignments made little sense, there were serious deficiencies with the database that I was not able to address, and there have been serious communication issues with one of the offshore offices. At times, I have really gotten the feeling that the US office and foreign office are competing, yet the metrics aren't fair. Sure, the foreign office I might have addressed more issues, but these were largely the easier issues and many of them had to be addressed multiple times as the first fix broke something else.

On top of all of this, I have had 5 different managers in 12 months. One of those transitions occurred without my knowledge. I actually sent my new manager an email asking him if I reported to him!

Through all of this, there is one way that I've found to recover the passion to code again; hang around others who are passionate about coding. The level of energy is amazing and has really allowed me to refocus on my craft again.

The what is easy, but how might be difficult. What if there is no one else at your company who shares your passion for coding?

One option is to attend a local developer group meeting. .Net and Java will often have user groups in major cities.

You can also try to find a local nerd dinner.

You can try to read some blogs of other passionate developers, but written text is poor at conveying emotions. The better electronic approach would be to listen to developer podcasts. I try to listen to Stackoverflow and Hanselminutes on a regular basis. Not only do I walk away from podcasts educated, but they are also motivating. (Unfortunately, I am now blocked from downloading them at work, so that in itself is demotivating.)

We can all lose our passion for our jobs, but engaging with others who still have that passion can help bring it back out in us.

Thursday, December 10, 2009

Signs its time to find a new job

1.) There's no or few other developer who are passionate about what they do. This means they've all gone elsewhere.

2.) New policies and restrictions are placed on developers, hindering the work we do.

3.) A major contract falls through or a major client leaves.

4.) Reorganization or layoffs out of the blue. This could be a sign of things to come.

Tuesday, December 8, 2009

Playing Ball

Like many developers, I entered this career because I enjoy creating programs and solving problems. However, sometimes managers just don't understand the hacker mentality. While we as developers may strive for perfect code, as employees, we are expected to deliver results.

While programmers may prefer to be judged on our awesome coding abilities, managers prefer more tangible and measurable qualities to grade us on. While we may not like it, this is how the corporate environment works.

If a developer wants to advance his career, sometimes its necessary to play ball. Playing the company politics game is not a game most people will want to play, but it is a necessary evil.

Playing the politics game sounds dirty, but not it doesn't have to be.

The easiest way to play to do this is by making your boss look good. Completing tasks on time, delivering accurate estimates, and providing expert advice are a few ways this can be done everyday. But it is the atypical tasks that provide the best opportunity for this. Whenever there support issues, timeliness and clear communication are key to making you, your department, and your manager look good to other departments and the rest of the company.

Special projects are also a good opportunity to excel. Perhaps its tabulating some data, building a special application, or creating some documentation. These can provide insights to what the company at large is working on and provide ways to help accomplish those goals.

Recently, my manager was tasked with finding out who had an MCP ID. I had one, but had some difficulty finding it. While searching for it, I learned that it was important for the company's Microsoft Gold certification. For those without a MCP ID, this would be an opportunity to earn one while the need was still in the manager's mind.