Is Clojure more productive?
I have been positively surprised this week. Let me put you in context: In my last IPM, I was assigned to do one task: tictactoe in Clojure with perfect AI.
I estimated that story to be finished in 6 days. For several reasons:
- I had never done a project that big with Clojure. But I had done simple katas and some exercises at 4clojure.
- I am not comfortable implementing the perfect AI yet.
- It took me 4 days and a half to do tictactoe without perfect AI in other languages.
Foreseeing that I would have to work hard to fit those 6 days of work into 4 and a half (the iteration duration), I did the Clojure koans in the weekend to get more comfortable with the language.
Through the week, we were doing daily stand-up. So I had to think of what I should have finished each day to meet the expectations at the next IPM. I was focusing in these two points:
- What did I accomplish yesterday?
- What will I do today?
First day, I managed to have almost all the game logic working. Second day, I had the CLI working and a bit of a dumb computer player. And the third day I finished the perfect AI as the computer player.
I was done! I’ve done in 3 days what in other languages took me approximately 6 days. I’m sure not all the credit goes to Clojure. I guess the most important factors that led me to that productivity boost were:
- Clojure (Because it is a terse language and has a lot of advanced functionality already built in)
- Daily stand-up and planning the daily objectives
- Having done the same problem before several times
- Focusing on simplicity: just enough to make it work
I’m still surprised.