Thursday, November 11, 2010

Remember

Today is Remembrance Day, lets all take a moment in the day to remember the struggles that our soldiers went through. Giving up house and home, giving up being with their families, giving up themselves so that we can be free, so we can be safe, so we can have the freedom that we take for granted today…..

That’s all.

Tuesday, November 9, 2010

Entitlement


A few years ago I got a tattoo of Goku on my left shoulder. It took about 6 hours... He's my hero. Now you're basically asking yourself why would you ever get a cartoon character permanently tattooed on your shoulder?

He, unlike people, represents an infallible idea - the hero. But there's a twist to this character that some heroes fall short of.

While I was building my career (which I'm still doing now), and getting some momentum and confidence, I started falling into the trap of entitlement. I still fall into this mindset occasionally.

I am entitled to recognition for my work, promotions to something better, higher paying salary - and I see this every single day. See Goku, he goes above and beyond in everything that he does and expects nothing. He's gentle, almost to the point of docile and yet he's recognized as the greatest warrior out there. His friends depend upon him to save the world and he asks nothing in return. When I see myself starting to fall into this trap, that I 'deserve' this, and I am entitled to 'that', I look at this tattoo to check myself, to not let this thought process continue. Now the world is not as black and white as a cartoon character, but there is a happy medium. But striving to be better, to consider everything you have as a gift instead an entitlement makes me feel better. I strive to be this person within my career and within my life. All these things will eventually come, focusing on your values and your goals and achieving them with a little bit of humility is probably more important than the end result.

Monday, November 8, 2010

The Lone-Gunslinger

Picture yourself in the Wild West, all you can trust is your sturdy horse, a few bucks in your back pocket and the hint of gunpowder as you polish your gun in the hot desert sun. Yeehaw! Brings you back home, doesn't it?... OK maybe not.

Alrighty...How about the dark and musty room, by your side the familiar hum of the computer fan, the ticking of the hard drive as it starts to boot up and the mechanical beep as it does the initial memory check... Yeehaw! As you strap yourself in, your favourite command prompt loads, the flashing of the input cursor begging you to make that first keystroke...

So back to reality. As much as you've heard the stories of the lone-gunslinger, and potentially how that parallels to the lone-coder, you really don't want to be in that position; even though that type of a character is romanticized.

I learn by a number of ways, by reading, by doing and by collaborating. And I want to point out the most important part, collaboration. The lone-gunslinger will always be the lone gunslinger, and nothing more. You want to rise above this type of stereotype. You want to grow not by just reading and doing but by collaborating, by sharing your experience with other devs. By joining a community where you learn from others as much as they learn from you. What a great world we live in where this archaic notion is blown to pieces with the sharing of ideas through the tribes of the internet. The lone-gunslinger as the lone-coder is going the way of the dinosaurs. Get out there, share those ideas, it’s a brave new world....

Thursday, November 4, 2010

Overtime Blues - Part II (The Minus Developer)

I read over my original post and there seems to be a lot of blame on management as to why things are late. But I want to make it clear that this is only one out of a many contributing factors that make a project late in which someone has to pull up the slack. Additionally when I talk about overtime I don't mean working a 45 hour week and calling it overtime. A misuse of overtime is working 60-80 hours a week on a constant basis for long stretches of time. Here you have to question what is wrong. So what is another contributing factor that might make a project late which someone is 'required' to do overtime.

Staffing.

(Definitely not my idea)...
On a team everyone mentally ranks each other between a scale of 0 - 10, 10 being the most productive kick ass dev while 0 means the worst unimaginable, wish you never got hired, developer; But, what if we slide the scales to the left to give a better interpretation of what this really means, -5 to +5 rating. In this case if you sum up the team's productivity based upon the rating of all developers you get a clear understanding of who is pulling their weight (0 ranking), who is extremely productive (+3 - +5) and who is dragging the team down. Think back to all the projects that you've done within the past. Have you been on a team with a minus developer? Did you know he/she was a minus developer from the get-go? What did you do about it? Within this mine field of ranking people we tend to really do nothing about it so we do not hurt their feelings. And in almost all cases it really isn't your business as a developer to rate your co-worker, this interaction should be between that developer and their manager. However there is this misconception that labelling a person as a minus developer is negative. In some aspects this is true, but flipping the tables identifying and applying some action on a minus developer is actually a good thing. In most cases firing this person is the last resort, but there are levels of grey which we can explore. Why is this person a minus developer? Usually it’s not about a person's intelligence. If a manager can identify a root cause then potentially this can be fixed. Is the type of project which he/she is working on geared towards a cowboy style developer while this person is a perfectionist? Potentially this person wants to work on low level work but you're making him/her change the background color of an icon on the GUI? Maybe he/she wants to refactor everything to make it better and basically needs a little focus as to the goals of this particular milestone. In any case, ask yourself why you are doing overtime, is it because of someone? Maybe there is something you can do to help this...

Tuesday, November 2, 2010

Overtime Blues - Part 1

The next subject that I want to talk about, and it's a large subject and quite dear to everybody's heart... working overtime. I might not get to all the points that I want to cover so it might span out to a few ranting blogs. Why do we do it? Work commitments? Getting ahead in the company? Caring about something and seeing it through until the end? Monetary compensation? Managers making you feel obligated to be a 'team' player? But is it worth it? I say no. I always like to escape my entire argument by saying that doing some overtime here or there is sometimes needed and necessary. But in most cases I say no. Let’s examine some of the common reasons why someone would have to do overtime. Poor/No planning. Unrealistic business/marketing commitments. Manager's over-commitment (poor planning). Scope creep. All of these are, for the most part are out of your control, as a dev. I still find it extremely tragic that as developers I see people unable to breakdown their own tasks and estimate them with a reasonable amount of reliability. And what's even more tragic is a manager trying to make time estimates without even consulting a technical person. And if it is with a technical person, it's with the WRONG technical person. Time estimates in my opinion is an art form, some companies out there have tried to quantify this process, a great article about this was written by Joel on Software. But back to the subject, overtime. In this day and age as developers we for the most part are held accountable for other people’s project decisions. The process of project decision making is 3-5 iterations outside of our scope, prior to us getting involved. And I say that's terrible. And what do we do about? Absolutely nothing. Doesn't that make you angry? Is your manager held accountable for his/her decisions or is it you that has to put in the overtime? Does the sales guy promise x,y,z prior to contacting you if this is even achievable within the timeframe? Why do they do this? Because they can... What we have to realize is that if you give in, it only perpetuates more of this type of behaviour. You have to break the cycle somehow. There has to be push back! Trust me, when there is push back from below to above, you're going to be invited to more 'decision' meetings, and self reflection meetings. Stand your ground, these are just smoke and mirror meetings where someone is trying to define what you're trying to do. And truthfully flat out tell them that there has to be a sharing of accountability on project commitments.

Tell me more thoughts on the subject? As for the post, more to come this week ;-)