09 January 2008

2008, a Scala year

I apologize to Scala-interested readers, you'll have to scroll down to find something vaguely related to Scala! The first part is a pseudo-retrospective on my personal objectives for the past two years.

"There's always a missing quote" - me

I was looking for a way to open this post with a brilliant quote about setting up personal objectives but after spending several seconds (at least) searching the web, I found none which meant precisely what I wanted to convey about having personal objectives. So I may just tell my own story.

First year

Two years ago, I had this so original New Year idea of choosing 2 personal objectives for the year to come. Notice that I didn't say "resolution". This wasn't something I wanted to drop after half an agonizing month. My choice was: "Learn Ruby" and "Learn Japanese".

"Learn Ruby" was very obvious considering my Java monotheism at that time and the relentless voice in my head moaning: "Leaaarnnn a new language each yeaaaar".

"Learn Japanese" was less obvious. I wanted to work in Asia and having just a little bit of Vietnamese on my resume didn't seem very professional. But why Japanese? Because it looked very far from what I knew, and I thought: cool, I will read imported mangas! (If you told me that I would actually end up in Tokyo 1 year later, I would have swallowed my chopsticks!).

Besides that, having 2 Japanese languages as "The objective of the year" look damn cool (Hey, you know that Ruby is also a Japanese language?)

Verdict, one year later. I had done a nice immersion in Ruby, touching Rails, Camping, doing code katas, using it for mundane scripting, bugging my coworkers,...

Japanese, on the other hand was embarrassing. A friend of mine told me: "Ah ah, you learn Japanese, good. Ohayo gozaimas'!". I said "What?". He had just told me "Good morning".

My conclusion was: it's funny to have objectives, especially if you only have to fulfill the ones you fancy for real.

Second year

I tried the same experiment for the following year. But that time I was really leaving for Japan! With a job in finance, which I hadn't done for some time, using a thousands-of-java-classes software. Since I am a sensible person, I thought: don't put too much pressure on your shoulders: new life, new challenges, do something reasonable.

My official and much touted objectives for 2007 were: "Learn Japanese" (and start with "Good morning" maybe this time) and "Learn my new company's product and succeed in my company".

Where are we, one year later?
  • "Learning Japanese" was a self-sustaining objective since I had company-provided lessons starting from August. It's much easier with a teacher than alone. Go to the class, do your "Shukudai" (homework) and it should be fine
  • "Learning my company product and succeed in my company" is well,... a terrible objective per se. It was more a way of saying: focus on your job, not on something else. A non-objective, not very motivating in itself, I'm addicted to my job anyway. Besides, this is not something I totally own. There are so many things which are truly out of my control (like not being authorized to blast atrocious code or organize projects in a truly agile mode)
Half-way through the year, I realized that having a motivating objective was like having something making you go the extra mile, diffusing energy and enthusiasm on the rest of your existence. I decided to finish the open-source project I had started as an experiment: specs.

This year

So what's in for this year? If I choose objectives for 2008, I:
  1. authorize myself to change my mind anytime. Life's too short and anyway my experience shows me that this cannot work if it's not pure pleasure

  2. select something which is deeply motivating, like learning something intriguing and new for the learning freak that I am (though I wish I was motivated by more cooler things to show-off in parties. Monads are hot on reddit but try that during a diner)

  3. try not to put too much on my shoulders, because sleeping should not be Option[Sleep]
Which brings me to the quote of the day:

"I can't do everything,..., today" - my wife, pretty submerged

Now, dear Scala readers, here are my objectives for this year:
  1. continue to support specs, fixing issues and listening to users. I don't plan any major feature excepted maybe having another go at integrating JMock. However I will certainly add a myriad of small stuff (like a "skip" method, in 1.1.5)

  2. contribute to the lift project by adding documentation, specs and tests. I expect to get a deep knowledge of that awesome web framework, quality interactions with the community, personal satisfaction from contributing to others work, improvements for specs

  3. [as time permits] keep an eye on LiteralSpecifications with specs by creating a front-end wiki allowing you to write your specifications using a Markup language annotated with Scala code. The long-term objective is described in this paper
My dream would be to meet you all during the next Scala lift off conference. I have to see if I can combine this with a SF assignment in my company's headquarters!

Happy New Year 2008, I have no doubt that it is going to be a great "Scala year" despite the unavoidable hype and FUD!