Sunday 13 March 2011

My first code retreat

Yesterday I went to my first code retreat, in Winchester UK. In the past I had been sceptical about code retreats since I had doubts if I would really learn something. However, after speaking to a few developers that had been to one before, I was totally convinced that I should give it a go. I thought, even if I don't learn much, at least I'll have a whole day of fun writing code, catching up with some friends and meeting other developers. That was more than enough for me to be convinced that it would be a great day.

Summary of the day

There were around 20+ developers. After introductions and explanation of the problem (Conway's game of life), we started our first session. Throughout the day, we had 6 or 7 sessions. I can't even remember exactly because it was so enjoyable, intense and fun that even if it had been 20 I wouldn't have noticed.  I've paired with some people that I knew before (although never worked with) and some people that I had just met. After each session, we shared what we have learned, approaches we took, problems we faced, etc. If I recollect well, different languages were used and tried including Java, C#, JavaScript, Ruby, Scala and I think Python as well (I'm sure I'm forgetting something).

The first two sessions we just sat down and tried to solve it, without any constraints, besides TDD, that was mandatory for all sessions. This was good so everyone could get familiar with the problem. From the third session onwards, we were asked to try different approaches, like not using if statements, TDD as if you meant it, OOP to the extreme and the best code we could possibly write. At the end of each session, the code is deleted.

We had a good break for lunch and went to the local pub in the evening.

Things I learned and experienced
  • No matter how much you think you know, it is still not much and not enough.
  • Pair-programming with other developers exposes you to different ways of thinking and opens your mind for new ideas.
  • Seeing and using different languages, makes you see software development with different eyes, giving you a much broader understanding and helps clearing up misconceptions you may have.
  • You are not alone. Like yourself, there more talented and passionate developers out there willing to share ideas and learn from each other.
  • I definitely learned a lot and feel I got back from there a better developer. 
  • Besides all the technical learning, it was really great to meet so many talented developers.
Thank you

Firstly I would like to thank Despo and Aimee for organising it and Enrique for running it (and the great chat in the pub). I also would like to thank all the developers that I paired with for helping to make me a better developer. Finally, I would like to thank all the developers that were there for reinforcing my belief that software development is a great profession, full of talented, bright and passionate people and that we can really make a difference in moving our industry forward. 

I wish you all have a great long road ahead of you and I'm looking forward to meeting you again any time soon. 

Links

Official site for the Winchester Code Retreat
London Software Craftsmanship Community - LSCC

Thursday 3 March 2011

Lotus Symphony


Even spectroscopists needs an Office suite. Just because I need it infrequently, and there are many free options available, I have chosen one of them. Initially I adopted OpenOffice, then switched to NeoOffice because of its more appealing and sensible graphic interface. The main problem with both of them was that the documents looked different when seen with MS Office. Now I have switched to IBM Lotus Symphony and that problem is solved. Maybe the latest versions of the other programs have improved, but I am so happy with my Symphony that I don't see any reason for trying something different again.
This is a product nobody writes or talk about, so most people confuse it with the original Lotus Symphony suite. The two products have nothing in common but the name. Probably this arguable choice by IBM to recycle the brand was unfortunate: people refuse to even try the new Symphony because they think they already know it.
The new Lotus Symphony is a blend of OpenOffice and Eclipse, topped with a stylish interface. The result is a rare combination of elegance, simplicity and, mainly, intuitiveness: the best virtue of Symphony. Other sure pros are the perfect compatibility with MS Office and the absence of a price.
The main con is the time it takes to start. It really takes an incredible amount of time, about 20 seconds. Afterwards, however, the program seems fast enough for all the things I do. Another limitation is that the suite is not complete. There are four components (word-processor, spreadsheet, presentation program, web browser) and they are very well done, but I need other two programs at least (one for drawing and one for keeping a database). The first three components, however, are really rich in features and this is what really matters. It is far better to have three great programs than to have five not-so-great programs.
There is a problem that I hope will be solved with future releases. If a file contains accented chars in its name (or in the name of any surrounding folder), that file can't be opened. It is necessary to change the name of the file and of its surrounding folders.
Need I tell you that I will never consider the option of using a web-based service instead of a classic desktop application like this? Lotus Symphony does not ignore the web, to tell the truth; it can (optionally) connect to its home servers to let you choose more templates/clip arts or to give you more information. I really like the idea, though I never used those resources, because I find the program extremely intuitive and very easy to use. I have recommended Symphony to my relatives and they all agree with me.