Sunday, October 25, 2009

Passionate Developers

background:

I learned how to programme in 1996 when I went to Uni, just by myself, I did all the exercises in the Pascal book that was referenced in the course bibliography.
I spent hours and hours doing every exercise, even if they were quite similar to the ones I've done just before and sometimes I even repeated some. I really enjoyed it.

But I went to do something else afterwards like play computer games and Magic The Gathering for the next 5 years. I still kick myself for those wasted years but some people told me that strategy games and MTG might have developed in myself skills that are useful to programming. I don't know if that's true or not...

The truth is that in 2001, most of my friends/mates at Uni were working and making money out of the dot com bubble while I was spending money on cards and computer games. So I totally missed it and I think this was good, because some got burned for life with the way things got done at those times.

what makes me tick:

When I got bored of playing games and Magic, I decided to finish my degree. And as soon as I started coding again the feeling that I had when doing those Pascal exercises came back. I thought: What have you been doing? All the fun is in programming...

I set myself to get back all those wasted five years.

As I coded and I did quite a few in those times because I would try to do as much as possible, specially in group assignments where I wouldn't mind that my group mates slacked, as it meant more coding for me to do. :)
I would redo courses, to improve my grades and do more coding. I ended up doing 25% more courses per year than a normal student. Still my grades sky rocketed. I was just having the most fun of my life.

And then I made a stupid mistake, I embarked in the business side of development because I didn't want to be just a code monkey, even though I loved it so much.
My degree thesis was about business concepts to describe an organisation. I would sit down with someone and jot down all the tasks and the contexts in which they were performed, describe interactions within the organisation. It was tedious and it took a lot of will power to do it. Still my professors gave me the opportunity to do a Masters, looking at the amount of effort I put to finish that thesis. I was offered to help lecture a course on Distributed System which had been my favourite course. I wasn't a very good teacher but it was about how to code and I loved it. I realised that coding was the way, the thing that I really loved.

passionate people and not so passionate people:

What I felt at that time was that I bounded with some students that shared this passion. I might not have been very good at passing on information but I definitely nailed it on passing on passion and enthusiasm.

I dropped out of the Masters, at half way. I went to code for a consultant company. I wanted to know how the enterprise world was. My skills were on Java so I went to write Java code.
My hunger for knowledge was still growing up tremendously. I started reading books and books. I would work hours and hours even on weekends. There were people in the company with 10+ and even 20+ years that knew so much about software and I enjoyed a lot having lengthy conversations with them. I learned a lot.

Ken Thompson, in Coders at Work, says that what he looks for in a developer is passion. If I ever have to hire someone, I will definitely look for enthusiasm and passion. I firmly believe that enthusiasm and passion when put in practice produce the best results.

When you love what you do, you don't want to just get it done. You want to be proud of it. You don't slow down because you know that more is coming. You still take your time because things have to be done right but you get excited when you finish something and you look forward to the next task.

I found in the software craftsmanship community a bunch of people that love what they do and want to improve the state of things in our industry.

I think it's a pity that people come to software development for the wrong reasons, be it money or any other. I hear so many people saying that we don't need more developers, we desperately need better ones. I wonder if this is not the same in other industries. I know of some people that went to Medicine for the wrong reasons and are practicing today and they are not good.

My contribution to improve things is to become the best I can and try to set a good example wherever I work. I also try to pass on my enthusiasm and passion to others but I know that this cannot be really passed on, people have to take it. If someone wants to turn myself into a salesman, regardless of the amount of passion for his profession, it will fail because I don't like sales.

working for people instead of working for companies:

I was hired to the company where I'm about to leave by another very passionate developer/manager. We had loads of fun and interesting conversations before he left the company 4 months later. We paired some of the times, we learned new technologies and we discussed stuff we read in books, blogs and mailing lists.

When you work in an environment like that where one of your hobbies is also your work, you don't care if it's Monday or Friday because all the days are nice, fun and very interesting.

When things stop being like that you have to either change your organisation or change your organisation, I was told. So, after trying to change my organisation for some time, I decided it was time to change my organisation and leave.

I think I found another place with passionate people where I can have that feeling again. And that made me realise that it's not so much about the company where I work, it's the people in it. Passionate people that make me feel excited and have lots of fun, while doing things that I'm proud of. That's where I want to be.