Code review story ...

Last week I took small break from project. I get out of town, visited friend, meet new people and talk in meantime of drinking beer. Big part of this talks were about game programming (Yes I'm a geek and even after work I still talk about games and programming).

But why I telling all this ? Because this one week proved me how much I changed in last years and also how much I need to change in incoming ones.

This post will be be story about : How I thrown childish pride and became who I am. 



Code review 

Before I came to Ubisoft I never thought about code review as something important to me. I was writing code. Check it alone and submit. This was my workflow and it was OK. At least I thought like that. 

Thanks to friends and hours they spend on code reviewing my code I know that wasn't good way of working. First code reviews were hard for me because I need to accept that:
  • I'm making mistakes (sometimes stupid).
  • Taking wrong assumptions.
  • Making wrong decisions.
  • Wrong interpreting some part of code.
If this wasn't enough. There was person next to me who were pointing them out one after another. It's not important that it was friend it still hurt my pride. I meaning here this childish pride were we want to prove that we are "the best". So I needed to move this feelings aside and move forward. I'm happy that I were able to do it even if it wasn't easy.

Time flows and I was code reviewed and were code reviewing many times. The first thought disappeared and right now I know that code review is not only about: check if code don't have any errors. This is moment when programmers throw away they pride. There are no titles, no difference of experience or age. It just people exchanging their knowledge, try to improve code and themselves. 

When I do code review or I'm code reviewed I'm student and teacher in the same time. I spending time on understanding context, algorithm and code. And this is in my opinion : real code review. 

Thrown away pride

There is one more thing that I gained thanks to all this. I were able to become more open, listen to people (I don't talking about blindly following others). This is not limited to programming only and apply to different parts of my life:
  • If I don't understand something I will just ask for explanation. 
  • If I don't know something I will tell so. 
  • If I'm disagree I will just ask "why" somebody think/done it this way. Maybe I don't know something or I'm just wrong.
I want to believe I will stay like this but who know what will bring future. Maybe one day:
  • I will hide behind my experience and years I programming. 
  • I will be all the time showing I know the best how to do stuff.
  • I will stop listening and being opened for opinion of others.
I want to believe that when this time come I will get strong punch in face :] Just to wake up and forever be person:
  • Who know that there is still a lot to learn and want to learn.
  • Who know there are people from which he can learn.
  • Who know he make mistakes and are able to admit them.
  • Who don't discriminate people because of the age and experience they have.
  • Who not limit himself and see limitless possibilities around. 
Summary

All of this thoughts came to me when in one bar I were drinking beer with friend. And his few arguments were enough to completely change my opinion about code that I used for years. If the same thing happen years ago it wouldn't be so simple but right now is. So the same week I rewrote the code and right now it's better :]

I'm happy that I'm no longer limited to only my experience. I'm opened on experience of other people and this make my small world a lot broader. And I wish so the same thing happen for you.

Greg

Comments

  1. Yes.. good way of describing the facts on the code reviews and please elaborate more on the code review techniques and yes, it is very true that a person should accept that he can make mistakes.

    ReplyDelete

Post a Comment

Popular posts from this blog

Query commands execution

W.U. 0x20

Lets play : Good code / Bad code