I have been a Rails developer at XING for a bit over three months now. So far, it has been an exciting time. Which is why I want to share with you the surprises, oohs and aahs that I have experienced in my first months of what is in fact my first job as a developer. Since this makes this a very personal account, it may be interesting for you to know that I spent a couple of years before at the university of Muenster writing a dissertation in the area of Web 2.0.
Take from this whatever you want, be it is a time machine back to the days when you started as a developer, a collection of links of interesting stuff to get you started with Ruby/Rails development, or?
XING is agile
Projects that need to react fast to changing demands, use the principles of Kanban. Most of the product development related projects at XING organize themselves and plan their work using Scrum. While this was introduced on a broad scale only a year ago, the processes run very smoothly now. We release weekly. Our sprints are typically two weeks long.
What I love about Scrum is the way it adds transparency to our projects. Performance temporarily goes down due to new team members? Don’t sweep it under the carpet. Instead take it into account when planning the next sprint. Items are somehow complete but not tested and accepted by QA? Don’t show it when presenting the teams achievements in the last sprint. I like this introduction here.
The tools are awesome
While I have been using free software almost exclusively for more than eight years, I was blown away by the way it is developed and distributed today. And where I got used to patches for open source projects to be passed around on mailing lists, there is now github. This amazing tool gives a free home to open source projects and facilitates contribution so much, that … it actually got me to submit several patches. That is because even I can handle fork, clone, commit, push and pull. What we did was, extend the functionality of a project by patching it for internal use, and when we had a bit of time on our hands, we added tests to the source code, forked the project, uploaded our changes, and sent a pull request to the maintainer. A couple of days later, we were able to replace our patched version of the gem with the updated “standard version.” Being based on the super slick Git source code management system, github feels like it is at the same time one of the most active and well structured open source software development sites.
Development is Open Source…
RubyGems compliments github by being the one stop shop for all those released Ruby gems developed by the community. And if you, like me, are overwhelmed by the shear amount of projects and the speed of their progress, use the Ruby Toolbox to figure out what to use. The movement to track and document the progress is equally active. I get my fix of Ruby news via Ruby Flow. For more in depth reviews of specific Rails related topics I usually start at ASCIIcasts, the textual version of the cool RailsCasts podcast series.
… and bleeding edge
Fun fact about the XING’s reuse of code: 43% of the Gems we use have not reached version 1.0.
One of my favorite examples is the Cucumber testing suite, which we use in conjunction with pickle and other packages to implement full stack testing of our application. At a certain point we started using the newest version of pickle a day after it had been published, because it had just then added a feature we had been interested in.
Consequently, one of our running gags is “Let us make sure we start using this gem in this sprint, there will be something new in two weeks.”
Development is giving back
I love to see how XING is participating in this open source world. The biggest news from the last couple of days is certainly the release of beetle which implements high availability AMQP messaging with redundant queues. There will be a separate post on beetle soon. Another example is the flag_shih_tzu plugin, which allows you to store collections of boolean flags in ActiveRecord integer columns as bit fields. Find more of the contributions of XING Rails developers at XING’s github account.
Hamburg is great
Finally, I want to mention that Hamburg is a great place to live and work, not only at XING. Hamburg’s Rails user group keeps growing and is more and more active. There is a whole bunch of startups that actively participate, including qype, blau telecom, tolingo, dynport, mindmatters.