On the Importance of Yerba Mate in the Software Development Process

mateThis paper will highlight the results of an extensive research conducted since the mid 90′s, on the effects of the consumption of beverages based in the plant known as Ilex paraguariensis, in the framework of software development process activities in South America and some small parts of Europe.

This paper will provide an introduction to the herb commonly referred to as “Yerba Mate”, and will later delve into the advantages and disadvantages of such practice, in the context of the creation of software products.

Introduction

Yerba Mate is defined by Wikipedia as follows:

Yerba mate or yerba-mate (Br.) (Spanish: yerba mate, Portuguese: erva-mate), Ilex paraguariensis, is a species of holly (family Aquifoliaceae) native to subtropical South America in northeastern Argentina, eastern Paraguay and southern Brazil. It was first scientifically classified by Swiss botanist Moses Bertoni, who settled in Paraguay in 1895.

Continue reading

Adding Manpower

Published in 1975, “The Mythical Man-Month” is considered an all-time classic in the software engineering field. The book author, Frederick P. Brooks Jr., used his experience as the project manager of the IBM System/360 and its software, the Operating System/360, to explain a common set of problem patterns, applicable to other software projects as well.

One of the most famous citations in the book is the one regarding the consequences of adding human resources to a late project; this article will provide a couple of thoughts about this assertion, and highlight some contrariwise opinions. Continue reading

Amazing Xcode

Xcode is amazing. Of all the IDEs I’ve used (and this is, as always, a personal opinion, having used Visual Studio since version 6, Eclipse, Kdevelop and others) it’s the one I prefer. And today I found another reason to like it.

I’ve noticed this: when I use Xcode on a single-processor machine (such as a Powerbook G4) and I rebuild my master thesis project (in C++) I see this build window:

No big deal: each file is compiled, one after the other. However, it seems that when I run it on a dual-processor machine (both in my dual G5 desktop and my Intel Core Duo 2 MacBook) I get a boost in compiling time, with parallel compilations! See this:

Then, coupled with Bonjour networks, you can even go faster, using the processing time of your peers’ computers to have smaller compilation times.

To Java or not to Java

I think I found the most violent and vivid, the most honest and Earth-shattering blog entry about software engineering I’ve seen in 15 years of programming:

I’ll give you the capsule synopsis, the one-sentence summary of the learnings I had from the Bad Thing that happened to me while writing my game in Java: if you begin with the assumption that you need to shrink your code base, you will eventually be forced to conclude that you cannot continue to use Java. Conversely, if you begin with the assumption that you must use Java, then you will eventually be forced to conclude that you will have millions of lines of code. Is it worth the trade-off? Java programmers will tell you Yes, it’s worth it. By doing so they’re tacitly nodding to their little compartment that realizes big code bases are bad, so you’ve at least won that battle. But you should take anything a “Java programmer” tells you with a hefty grain of salt, because an “X programmer”, for any value of X, is a weak player. You have to cross-train to be a decent athlete these days. Programmers need to be fluent in multiple languages with fundamentally different “character” before they can make truly informed design decisions.

Deliver. Now.

Every time I talk with people about Ruby on Rails in Switzerland, I almost always get the same comments, no matter what is the background of the person I’m talking to:

Yes but… what about [scalability / performance]? [I'm sure / I've read / I think / I believe / I have dreamt] that Ruby on Rails is not as [fast / scalable / powerful] than [J2EE / .NET / PHP / ASP / CGI / WebObjects / Python / Perl]

It’s very funny indeed, for many reasons:

  1. None of these comments came from people running something like Facebook, or at least any other site with more than 10000 visits per month;
  2. None of the people who said something like the above has tried Ruby on Rails, beyond the 15 minute blog thing, which everyone seems to have done.

It seems to me that there’s a problem here. Continue reading

Riding the Rails Again

It feels soooooo good to :)

Let me introduce you to Parking Friend. This website, which I had the pleasure to design and develop, belongs to some friends of mine, currently starting their own valet parking service in Geneva. Located not far from the airport, Jake, Dieter and their team will take care of your car for a small daily fee, for as many days as needed, meeting you at the airport (or anywhere else, for that matter) when you leave and when you return, cleaning up your car and even doing some shopping for you if you need. Handy, easy, relaxing.

Technically speaking, this is my first public, mainstream Ruby on Rails application. What can I say? It has been a delight to create by all means. It took me two weeks to do it, working… on “rails” precisely :) in the morning and evening trains while going to and from work, as well as during the weekends. Continue reading