The good thing about being in a project like Tractis is that you can make decisions, no matter how stupid they may seem. One of the first technical decisions was to choose a development platform. After considering a number of alternatives, in the end we were left with two candidates: based on Java using Spring and Hibernate, and Ruby on Rails. We assessed the pros and cons of both platforms. I admit that at first I was more inclined to using Java, I suppose due to certain inertia after having worked with this platform in recent years. On the other hand, we had substantial advanced work in this direction, architecture design, including a prototype. However, Tractis is a company with very limited resources, we needed to develop fast with very few people, which is why we began considering Ruby on Rails. I had seen DHH screencasts and I was very impressed with the increase in productivity. I even followed a couple of tutorials on how to do a blog engine and other similar things. However, Rails lacked the fundamental characteristics of our business such as validation of digital signatures and certificates. We were afraid that what we gained in productivity we would lose out somewhere else. During those days, I remember that I would get up every day thinking about a platform different to the one I had thought of before going to sleep. In the end I did the only thing I could do, be a coward and let others make the decision for me. One of our collaborators, Ernesto Jiménez, was entusiastic with the idea of using Rails. Suddenly, an unexpected, though very important, decision variable entered the scene: the ability to attract talent to the project. Negonation wants to be a company with around ten employees and hundreds of collaborators. To attract the latter, we would have to offer them some fun, and Rails is definitely much funnier than Java. Paul Graham’s essays, particularly Beating the averages and The Python Paradox, were decisive in this aspect. The decision was made, Tractis would be developed on Ruby on Rails, using Webservices written in Java for the functions of validating certificates and signatures.

Nearly four months have elapsed, and all I can say is that the right decision was made. Rails is an impressive development platform. It enables developers and designers to work with the same code. It has one of the most active developer communities at present and it helps us to have an easy-to-understand compact code. Lastly, it also has a very important advantage for a start-up: it makes us terribly dynamic, distinguishing us positively from other possible competitors. The bigger they are, the better for us.

One comment in “Tractis and Ruby on Rails”

[...] In many aspects, we’re probably at level Shu. We’ve chosen to be agile and chosen Rails as means of reaching our ambitious objectives. Therefore we are trying to learn, apply and memorize the agile techniques (TDD, Refactoring, Continuous Integration etc.) and the “Rails way”, following our ‘masters’. [...]