…no es lo mismo que software vacío y simplista.

Esta idea sobre la simplicidad en el software es algo de lo que ya se ha hablado bastante. Hace poco, leí este post de Joel Spolsky en donde se enfoca en la “elegancia” que debe tener el software.

“People, for the most part, are not playing with their software because they want to. They’re using the software as a tool to accomplish something else that they would like to do. Maybe they are using a chat program to try and seem witty, in hopes that the person they are chatting with will want to spend time with them, so that, ultimately, they have a better chance of getting laid, so that, ultimately, their selfish DNA will get to replicate itself. Maybe they are using a spreadsheet to try and figure out if they can afford a bigger apartment, so that, ultimately, dates will be more impressed when they come over, increasing their chance of getting laid, again, benefitting the DNA. Maybe they’re working on a PowerPoint for the boss so that they will get a promotion so that they’ll have more money which they can use to rent a larger apartment that would attract mates, thus increasing their chance of getting laid, (getting the idea yet?) so the selfish DNA can replicate. Maybe they are looking for a recipe for goat cheese ravioli on the Internet, etc., etc., … DNA.”

En mi opinión esta idea tiene mucho sentido al leerla, especialmente por lo del ADN. :)

Sin embargo, en la práctica en nuestro medio es un gran reto el llegar a tal nivel de elegancia o simplicidad cuando estás desarrollando, por ejemplo, sobre un software existente en tu empresa, o el software de un cliente, o un nuevo requerimiento que te envió tu jefe y lo quiere para ayer…

En estos casos la elegancia y simplicidad, o mejor dicho, la posibilidad que se tenía de haber hecho algo simple y elegante, se queda atrás como un ideal que no está soportado por las políticas de desarrollo (o la falta de políticas en muchos casos…), y terminamos haciendo un pedazo de software simplista y vacío.