Friday, December 24, 2004

Encourage a win-win relationship with your employer

Two way, honest and close relationships

I am one of the believers in close and honest two way relationships. This are in my view the best relations even when it comes to work and being professional. This kind of relationships must be kept between you, the employee and the employer - the company.

What is a good job in my opinion?

My opinion is that a good job is a good balance between 3 factors: material benefits,
working environement, career opportunities. I believe that to be able to evaluate how good your job is, means from time to time to give a grade for each of these factors, then sum them and divide by three. You can subdivide the three factors and make the same for each of them to obtain that factor's grade:
- material benefits - money and other material benefits
- working environement - conditions of work, relationships with
colleagues, management, your team, company policy etc -
- career opportunities

The 3 factors applied

Because, one very dear friend told me that in a blog I must come up with more of my experiences, and not only ideas, advices, todos. Following this observation, I must tell you how I came up with this way of thinking about a job. Some time ago, I realised I wasn't happy at the job I had, so like any conscius employee I started to look for the reasons of why this happens. I didn't leave instantly, but only after realising that maybe there was nothing that could be done to improve my, and my colleagues, situations.
Was this courage or cowerdness? Do I feel better now? Do they feel better now? For the last two questions the answers are yes.

What do others say?

Recently, I read a very interesting small article called "Keeping your employees happy"
. The most interesting fact about this article is that is written by an employer. They have a list of things that an employer must do that I tried to divide from my "3 factors" point of view:
- Give your employees autonomy. - working environement - motivation
- Involve your employees in decisions. - working environement - motivation
- Help your employees to grow - career opportunities
- Actively support long term career growth. - career opportunities
- Promote your best employees. - all three
- Get out of your office. - working environement
- Recognize and reward the behavior you want to see repeated. -
working environement - motivation
- Say no when you mean no. - working environement - honesty
- Pay well - material benefits

I must congratulate her for encouriging employees to honestly tell their employers about the problems they have early and honestly. About encouriging feedback. About encouraging win-win situations between employee and employer.

Two way, honest and close relationships applied

Going back to my situation I must congratulate my employer for being the way he is. Should I congratulate myself and my colleagues also for contributing to maintaining this way of relationship, of working environement? Should we rest now, that everythiing is ok. By no means, no. A good relasionship is earned hard and is it based on trust. Maintaining it requires a big effort but it is deffinately worth it.

What to do?

When you are working in a company, the company has different means of showing you what their expetations are from you, what you need to do in order for them to be happy with you. So, if your company constantly tells you or hints you what to do to make them happy, maybe it is time to remind them how to make you happy. Show them honestly your grades. Show them at least the article mentioned above, and where you feel something could be done. Don't demand, speak openly and honestly,incourage a better two way relationship with your employer.

If communication is the main factor in a project's success or failure, and it must constanly be improved. Not in quantity but in quality. One aspect of this is your relationship with your employer. Most time, you need the courage to go forward and improve this communication, not just wait for the other side to make the first step.

Help your employer have a win-win situation with you. It is not always possible, but try first, keep trying , then maybe it is time to say goodbye, if the "3 factors" test fails. Courage is a great tool, just use it right.


Dan Bunea

Wednesday, December 22, 2004

Estimating - an art that everyone should know?

Fortunately, I am one of those lucky enough to be able to give estimates for my work. My company is mostly based on programmers estimating the technical work, which probably is one of the best things a business can do (just like leaving business people estimating business stuff). But do we really know how to estimate how much work a particular feature will take to implement? Maybe yes in some cases and no in others, but as agilists and perfectionists I think that we must constantly look back and improve.

Ok, so how is estimating done?

The best method of estimating is explained in K.Beck’s and M.Fowler’s book: Planning Extreme Programming: “Say you’ll do as much tomorrow as you actually got done today” meaning that the best method to estimate is to use your own previous experience. If personal experience is not good enough maybe you can use a colleague’s experience or be able to find a thing in the past that was twice as big as what you need to estimate, or twice as small. But be careful , because the further you get from your own experience when it comes to estimating, the lower the precision.

What happens if the work is new? Kent Beck said in the same book mentioned above that when you do not have experience is to fake it. Make a small prototype and estimate based on that prototype.

But why it still fails?

Ok now that I have emphasized how simple is to estimate, is this enough? Why there are still very many people, very good programmers that have big differences in estimates compared to actual time. What influences us when we are estimating? One cause might be that mostly nobody looks back and cares to take a note on how much a feature took to implement and how big was the error in estimate vs actual. The second thing would be in my opinion, either people are too relaxed or too pressured to give better estimates. The third in my list of reasons is that programmers who take pride in their own work usually give estimates in ideal time considering the best possible efficiency they might have. Is this something very wrong? No, I think that in many cases, it only shows the programmers need to outdo themselves, to test their own limits. This is very beneficial in some aspects, but applied for a long time might lead to demotivation and stress as the estimates are far from the actual time, stress that is at all levels, from the customer to the other teammates and even to the one that gave the estimate, who starts losing confidence in himself.

So what should we do?

My opinion is that first people must become aware of the importance of giving not perfect but better estimates, then start doing it, just as the Chinese said that the thousand miles walk begins with the first step. Then the most important thing, like in all agile methods is to look back and improve in time.



What do you think?


Dan Bunea

Thursday, December 16, 2004

hello world!

I decided to start a blog and log my adventures into the world of software development. I would like to focus my attention especially on my experiences on working methods, on good and bad practices I encountered and on ideas I got either directly then saw they were invented much earlier but I didn't know about them or on practices I read about in the great world of books, then applied them more or less sucessfully.

Dan