Monday, December 7, 2009

Adventures while building a Silverlight Enterprise application part #30

Today's post is about focus. It seems like a weird topic for my blog, but it was triggered by some major discussions on how resources were being assigned to our project. With this post I hope to shine some light on the subject.

Time management
This story actually starts years ago. I was leading a team at a small company when I was asked to sit in on a time management course. It was a day well spend. One of the most important lessons I got from this course was to focus on your goals. The point was to make you aware of all the things you do in your working life that do not contribute to your goals. With every task you are planning to do or are about to execute, you should ask yourself "How is this going to contribute to my goals?" In order to do that, one should have goals.

Getting and/or setting goals
So having goals is important in order to be effective in your job. There are different types of goals. Some are given to you by your boss/manager. Others you should come up with yourself.
When I applied for a job with my current employer, I was presented with a set of goals:
  • Help build a new version of the software we deliver right now
  • Help take the team to the next level in order to cope with the new technology and methods used
A lot of people would say that these goals are not SMART, they are not concrete enough. For this purpose I tend to disagree. Remember, these are job goals. If you reach them it might be time to look for another job (which doesn't necessarily mean with a different employer).

Conflicting goals
So I know about my goals, but there are other people in the company with different goals, some of which tend to conflict with my goals. This is completely normal, but usually not understood or maybe people do not realize that these things are important to be aware of.
In my case the conflicting goals included making money now, which I couldn't be of any help with as the product is not ready yet, and supporting the software in the market right now, which directly conflicted with my goals, because this meant taking resources from my project and assigning them to other tasks. As these goals are not my goals, I protested and the discussions about this started.
What surprised me was that the project manager on my project was the one defending the other goals. Apparently he has more goals than just this project, but still, considering the circumstances I expected a different response.

Balancing goals
At times your own goals can conflict. If you look at my goals, this can be true at times. Helping to get the team to improve on itself takes time, which means taking time from building the new software, which impacts meeting deadlines. However they can also support each other. If I can get a team member to do work on the new software, he or she learns about the new technology, gains experience and also delivers work. It pays to invest in the team members in the long run.

With two goals this is reasonably easy to work out and deal with. However as the number of goals you have grows, the complexity usually grows with it. Dealing with multiple projects, while coaching people and dealing with the conflicting goals of others would take up a lot of time and effort, as I know from experience. One thing to do if you're a developer, is to reduce the number of goals and if you have to do multiple projects, always make sure you get priorities on each project. If someone asks you to do something for a lower priority project, the task should have a high priority or else you shouldn't be doing it. Being brave enough to ask questions about tasks you were assigned and to say no if needed is the key here.
For managers and/or team leads, you shouldn't assign more then a few projects to any developer. You should also realize that it takes a significant amount of time to switch from one task to another. And also it's your task to balance the goals for your team. Make sure you don't ask them several things at once, without stating the order you expect.

I hope this shines some light on the subject and it helps you to be successful in your job. Please feel free to comment on this. I'm looking forward to reading your opinion.