Manfred Stienstra was one of the original January Hackfest winners. He has since gone on to earn a place in the Hackfest top 10 a further two consecutive times.
That's some achievement. So how does he do it? We dropped him a line and found out the secrets to his success and more.

In this last year we've seen Rails grow quite a lot and more than a few Rails companies have seen their workload increase. I'm happy to say that we've never had to look for clients, not even before Rails got bigger. However, I do think that being in the public eye is important for a company and sharing code with the public is a good way to show your skills as a developer. Aside from the fact that it's good for your karma and everyone should do it.
We're currently working for a few international clients and I think that our exposure on workingwithrails.com and our community contacts have certainly helped them find us.
On a more personal note I've met quite a few new interesting people and had about a dozen job offers since the Hackfest .
I usually get up around 7 or 8 am. The first thing I do is stumble into my living room, grab my laptop and plough through new (client) emails and tickets from other timezones. After that I take a quick shower and head over to the office, which is a 15 minute bike ride away.
At Fingertips we run all our projects off
Edge, so that means that we get hit with bugs regularly. We always try
to make time to fix any bugs we come across. This means we have more
than one project with monkey patched Rails, diff's in the project root
and path < *.diff in our deploy scripts. I think Norbert
Crombach and I spend around 2 to 4 hours every week working on Rails
at the office. Thijs van der Vossen, our boss, generally helps out
with comments the usability of API's.
The only thing that really changed for me when I started being a more active contributor to Rails is that I now use my spare moments to read tickets instead of Slashdot and comics.
As far as I'm concerned Amsterdam is the web development capital of the Netherlands, although the numbers don't really agree with me (: The Web 2.0 wave has really struck the city and there are countless small companies working on the next Pownce. We work for international customers about 80% of the time, I think this is mostly because business is still pretty conservative in the Netherlands and people tend to have trouble understanding the way we work.
Since about a year we've been organizing 'Coffee mornings', where we meet up with local web developers to discuss web frameworks, clients and business in general over a cup of coffee. Here we've noticed that even though most of the country is still in the Microsoft and Sun camp more and more companies are starting to see the value of Rails. Some of them have small 'agile' teams to try out the newer frameworks on pilot projects often initiated by the developers themselves.
In June we attended a one-day Rails conference here in Amsterdam with speakers like Nic Williams, Geoffrey Grosenbach and Aslak Hellesøy. Unfortunately it wasn't really marketed towards the international community. I really hope the conference will attract a more international audience next year so we can show that our beautiful city has more than pot and hookers.
One of the things I've learnt during the Hackfest is that competition isn't always the best driver for quality. When you associate value (points) to certain activities you will always favor a certain type of contribution. Those contributions aren't necessarily beneficial to the project.
Currently in Hackfest you can get the most points if you open a lot of new tickets and upload a lot of patches. None of these are judged on quality and a small documentation patch will receive the same amount of points as a complete refactoring of the render method. This tends to attract far fetched enhancements that don't have their foundation in a specific need, but are made up to score points. I don't want to tell people how to contribute, because that's up to them, but that's how I see it.
I don't think there is a specific distribution of points or set of rules that solves all problems in a competition like this, I think it's up to the community to transcend the fighting for points and realize that we're all working on creating a great product. Koz announced a new process for getting patches accepted in the beginning of this month. I hope this will raise the overall quality of contributions, I also hope this will make people realize that making Rails better is a community effort. The ultimate goal should be improving Rails, winning a Hackfest is just a nice byproduct of that.
A lot of people start with Rails assuming that it's going to magically solve all their problems without any effort. I think the hardest part for a person new to Rails is managing expectations, which can be hard after seeing all the awesome screencasts.
If you want to be a good Rails programmer you will first have to understand the core concepts behind it. A good start is reading The Art of Unix Programming, Test-Driven Development by Example and The Pragmatic Programmer. If you want to be good at something, you will have to work for it.
It's also important to see that Rails is just a tool, not a goal. Rails isn't fit for every project and every developer. It's not easy to mold Rails to do something it wasn't made to do because it's a CRUD based web framework and not duct tape or a general purpose programming language.
The last hurdle is learning the API, which you will probably never fully know no matter how long you work with Rails. If you're somebody who learns by example the Beast source code is a good place to start, otherwise you can pick up any of the zillion books written on Rails.
I've really fallen in love with Autotest, it works exactly how I used to run tests myself. Other than that I'm really trying to learn more about the tools I was already using. I've also rediscovered paper, I keep a paper todo lists and post-it notes on my monitor.
Furthermore we really like to keep a 'paper trail' of everything we do. We save all conversations with clients so we can look up what they said so we don't have to ask them four times. We write down all working hours even if they aren't paid for, in order to become better estimators. We centralize all your account, SSL and PGP information so everyone we work with can easily find it. We use online repositories to store this information so we can always access it, even if someone lost their laptop in a fire. Tools we use to achieve this are: Subversion, Campfire, OSX Encrypted Disk Images, Basecamp and IMAP.
The first thing on my agenda is a vacation to Japan. If anybody is in the Tokyo area around the end of August or beginning of September give me a ping, maybe we can meet up.
I'm definitely going to be at RailsConf Europe. Norbert and I are taking the train from Amsterdam to Berlin on Sunday the 16th of September, first stop is Bratwurst on Rails.
Finally if you want to see Norbert and me making an ass of ourselves on camera, check out the Ruby Banter series.
Thanks for reading!
Sorry, comments are closed for this article.
August 14th, 2007 at 12:16 PM
Couldn't agree more with Mafred said about his answer to "Q: What did you learn from the Hackfest?" I guess the point system needs to be revised.