sábado, diciembre 22, 2007

No hay gen para el espíritu humano

Lo repetiré de nuevo, esta vez con enlace:

No hay gen para el espíritu humano.

A veces se nos olvida...

Enlaces

Triste pero cierto...

Jeff Atwood pega de nuevo en el clavo:

Coding Horror: Nobody Cares What Your Code Looks Like

Sin embargo, me ha gustado mucho que ese "nobody" hace referencia a none of your customers, o a none of your users, incluso diría que a none of your bosses, pero que sí nos importa a nosotros, programadores. Que de hecho, es nuestro trabajo:

Sure, we programmers are paid to care what the code looks like. We worry about the guts of our applications. It's our job. We want to write code in friendly, modern languages that make our work easier and less error-prone. We'd love any opportunity to geek out and rewrite everything in the newest, sexiest possible language. It's all perfectly natural.

The next time you're knee deep in arcane language geekery, remember this: nobody cares what your code looks like. Except for us programmers. Yes, well-factored code written in a modern language is a laudable goal. But perhaps we should also focus a bit more on things the customer will see and care about, and less on the things they never will.

Vale.

viernes, diciembre 21, 2007

Aumenta la entropía en el Metro de Madrid

Leo con asombro en una noticia publicada por Madrid Digital en la que se informa de que
...en las cercanías del Metro han aparecido carteles (foto) en los que se pide a las personas solidarias con los trabajadores en huelga que pongan todas las reclamaciones que se puedan en las taquillas del metro, y que “ensucien y coloreen nuestro magnífico metro. Cuando ganen, los y las compas ya se encargarán de dejarlo todo en perfectas condiciones”, aclaran.
Los que aclaran (¡qué ironía lo de aclarar!) parecen ser los sindicalistas de CNT y CGT. Ya comenté en un post anterior lo que opinaba de esa solidaridad a la que apelan. Sin embargo, lo que ya me ha parecido alucinante es leer que
Ayer, en la estación de Colombia -línea 8- se tiraron botellas en el andén. En la de Callao se vació un extintor y se esparcieron huevos y grasa por el suelo. En Canillejas se echaron al suelo cristales rotos y basura, motivo por el cual la estación tuvo que cerrarse durante media hora para proceder a su limpieza. // Además, en la estación de Manuel Becerra se tiraron cajas de cartón. En la de Argel, aparecieron pintadas. La noche del miércoles al jueves, en la estación de Cuatro Caminos se tiene constancia de que se vació un cubo de tinta negra en un pasillo. // Las mismas fuentes de la compañía aseguraron que la pintada de veinte metros cuadrados que apareció el miércoles en la estación de Embajadores ya se había limpiado.
¿Son esas las medidas de presión que pretenden utilizar? ¿Llenar de basura el metro? ¿Se dan cuenta de que además de a los que pretenden perjudicar están perjudicando a los mismos "solidarios" a los que apelan? Me da la sensación de que hay otras maneras de presionar a los empleadores. Ya apunté algunas de ellas en el post al que me refería antes. Si sus reivindicaciones son razonables, que busquen el apoyo de la gente apelando a su razón... Me da en la nariz (!) que se siguen utilizando los medios sindicales de finales del XIX. Hoy por hoy, tienen multitud de medios en los que presentar sus peticiones, Internet, blogs, canales de televisión, cadenas de radio... ¿Por qué no prueban a hacer un debate público entre patronal y trabajadores o sus representantes? ¡Que se sienten a negociar! ¡Qué hagan algo! Dejemos que este tipo de acciones, propias más de la pataleta de un niño, pasen a un segundo plano, y sean lo que deben ser, la ultima ratio, y dejar que la razón, la negociación, la palabra, y el entendimiento sean la prima ratio.


Adios no, ¡hasta pronto!

jueves, diciembre 20, 2007

Del ámbito de los problemas

Hoy por casualidad, buscando información sobre la huelga que están llevando a cabo los trabajadores de las empresas concesionarias de la limpieza del Metro de Madrid, me he pegado de bruces con un ¿periódico? llamado "Rojo y Negro". El nombre es llamativo porque los dos colores transmiten un montón de sensaciones, pero también porque son los colores de la Confederación General del Trabajo, o CGT. No puedo evitar pensar que la "información" publicada esté sesgada dado su origen, así que más que información, la llamaré opinión, por no llamarla directamente propaganda, que me parece un término demasiado duro porque les supongo cierta intención informadora, aunque sea de sus opiniones e ideas.

Se hacen ciertas preguntas en la noticia:
¿Si hay Huelga, porqué hay algunas estaciones que parecen más limpias que un día laborable cualquiera? ¿Quién ha limpiado esta estación, si hace diez minutos estaba sucia, y no está previsto que se limpie hoy por los servicios mínimos?
Y a continuación, se contestan:
La respuesta a estos interrogantes nos la han servido en bandeja Metro de Madrid y las cuatro empresas concesionarias afectadas por la Huelga (Valoriza Facilities, SAU; Clece, SA; Eurolimp, SA y Ferrovial Servicios, SA): ninguno sabe nada. Sin embargo la realidad es que al menos otras dos empresas de servicios más, de las muchas que tiene contratadas Metro de Madrid para otros cometidos, están mandando brigadas de entre 3 y 6 operarios a limpiar estaciones, escaleras de bocas de Metro, etc.
Cómo no, el derecho de huelga ha sido vulnerado, y también saben quiénes son:
Estamos ante la más grave vulneración del Derecho Constitucional de Huelga que una empresa puede cometer, pero en este caso es más grave aún, ya que son entidades públicas, las propias instituciones y sus responsables políticos los que están pisoteando los Derechos de los Trabajadores.
(Todas las negritas y las itálicas en las citas son mías). O sea, Brigadas Pisoteadoras y Vulneradoras de Derechos Constitulacionales.

Si no lo entiendo mal, que una empresa sea concesionaria de otro, significa que una empresa subcontrata los servicios de otra para externalizarlos, y no asumir sus costes, consecuencias o lo que sea. Los angloparlantes utilizan un término divertido: outsourcing. Si tampoco lo entiendo mal, los trabajadores que están en huelga no son los trabajadores de Metro de Madrid, sino más bien los trabajadores de las empresas concesionarias, en este caso Valoriza Facilities, Clece, Eurolimp y Ferrovial Servicios. Entiendo que el problema lo tienen realmente estas empresas, digo yo.

Por otro lado, si Metro de Madrid ve que por un motivo u otro las empresas concesionarias se ven imposibilitadas para ofrecer sus servicios, me parece que está en su derecho de contratar (temporalmente o no) a otras empresas de servicios que le suplan lo que la Banda de los Cuatro no suple. El problema que tiene Metro de Madrid es que tiene que garantizar cierta higiene en sus instalaciones, y debe cumplir con el servicio que ofrece. El problema que tiene la Banda de los Cuatro tiene que ver con sus empleados, y las consecuencias que le puede ocasionar la huelga, sea porque Metro de Madrid rescinda sus contratos, o por pérdidas económicas o de otro tipo. En todo caso, intentar extender el problema más allá de sus límites, es mezclar churras con merinas, intentando obtener algún tipo de beneficio por ello.

También apelo aquí a la responsabilidad de los usuarios. Si hace tres días apenas había basura y hoy la basura se acumula en todas las esquinas (es especialmente visible en las escaleras), es que alguien ha tirado las cosas que antes no estaban... Y sí, es verdad, parte de la basura es inevitable (la gente pierde piel, pelos, lo que llevamos en los zapatos y dejamos por ahí, polución que cae por las rendijas...), pero hay otra que no. ¿Es lógico pensar que a la gente que reparte el 20Minutos, el Qué o el ADN en las entradas se le han caído un montón de periódicos escaleras abajo, y que luego los flujos de aire y eso los llevan hasta las esquinas? ¿Se estrelló un camión de patatas Matutano y las bolsas, vacías porque los pájaros supieron beneficiarse, han acabado movidas por los azares del viento debajo de las papeleras? ¿Ha decidido el profesor Karamba, gran ilustre vidente africano, publicitarse dejando que sus octavillas decidan por si mismas el mejor sitio que ocupar, en una anarquía mercadotécnica?

No estoy en contra del Derecho a la Huelga. Siempre y cuando, las consecuencias de la huelga la sufran los empleadores, no los receptores de los servicios. Que dejen de limpiar los despachos de los directivos (lo siento por los directivos). Me parece bien. Que no limpien las oficinas de Metro de Madrid (lo siento por los trabajadores de Metro de Madrid...). También me parece bien.

Pero cuando se busca que una huelga haga más presión sobre el empleador subcontratando a los usuarios del servicio para aumentar la presión, tanto si quieren como si no.

Y cuando se busca que dicha huelga se haga más pública saliendo en multitud de medios gracias a que la gente empieza a quejarse.

Y cuando se da la coincidencia de que dentro de unos meses tenemos elecciones generales (también en Madrid).

Y cuando caes en la cuenta de que los trabajadores de las empresas concesionarias (en su derecho) dejan de limpiar en el Metro y no en el resto de empresas servidas por las empresas subcontratadas.

Cuando suceden esos casos, sí me da la sensación de que se vulneran derechos. Los mios.

miércoles, diciembre 19, 2007

Noooooooooooooooo... no funciona internet

Demasiado !!

jueves, diciembre 13, 2007

Tag cloud

Me ha sorprendido (¿o debería decir que no me ha sorprendido?) comprobar que en la nube de etiquetas de TusTextos.com
las palabras que más pesan son: "sentimiento", "amor", "dolor" y "tristeza", a parte de las esperables "poesía" y "cuento".

miércoles, diciembre 12, 2007

Mi padre

Hoy hace un año que falleció mi padre...

martes, diciembre 11, 2007

De exploración por ahí encontré...

Regina ExLibris sobre literatura infantil

A la caza de niños-lectores - Blogs 20minutos: Regina ExLibris

Buenos consejos para estas fiestas. Sé que son buenos porque ¡me los he leído todos! (en mi ya lejana infancia)...

Modelos en arcilla

Me ha gustado mucho la comparativa que ha hecho Doods entre la industria del automóvil y la producción de software. Producir software no es como esas líneas de dedicados robots y humanos especializados, en las que es fácil determinar cuántos coches (idénticos, bien definidos...) salen por hora de la factoría. En realidad, es más parecido al tipo que se encarga de hacer el modelo en arcilla:
"Have you seen a car ad that shows a design studio with a clay mock-up? That’s like software development. The guy on the factory floor can easily know how long it takes to assemble an automobile. It’s much more difficult for the guy sculpting clay to predict how much work and how many revisions it will take to get to the final design".

Esto confirma la idea acerca de la auténtica esencia del software: la información y el conocimiento. De hecho:
"Software development is an exploration. It’s learning about the problem domain, the customer’s needs, and how a solution can be realized with the available resources. Learning requires space and time for experimentation and failure".

¡Es algo fundamental! ¡Nadie aprende por acertar! Si ahora aciertas, es porque antes has fallado de muchas maneras distintas. ¿Por qué no aprendemos a fallar? Creo que tiene que ver con que nos han educado para esperar un castigo si hacemos algo "mal"... No hay que castigar si uno se equivoca... Hay que castigar cuando uno se equivoca reiteradamente. Y ni siquiera en esos casos. Defiendo en esos casos una buena herramienta: enseñar.
Y ya para terminar, categórica, la auténtica definición de "manufactura del software":
"Software manufacturing, at its least adorned, is a file copy operation".

Ahí queda eso [las negritas son mías].

lunes, diciembre 10, 2007

Declaración de variables al principio de un método

Cada vez estoy más a favor de declarar las variables justo antes de que sea utilizadas. Un argumento a favor de ello, entre otros, es que no provocas que el lector del código se pregunte “¿para qué se usan estas variables?” antes de tiempo… Si declaras las variables justo antes de que sean usadas, la respuesta viene casi inmediatamente…

Por contra, favoreces el diseño CopyPaste, que es pecado.

jueves, diciembre 06, 2007

Sencillez (aparente)

No sé dónde lei que cuanto más sencilla es una aplicación para el usuario, más complicado es para los desarrolladores construirla. Y también es cierto que cuando un stakeholder te presenta sus necesidades, el primer modelo mental que se construye es francamente sencillo (o sea, poco detallado).

Cuando por fin vas pasando de un análisis del problema al diseño de una solución, el número de detalles aumenta naturalmente. Este tipo de detalles tiene muchas veces que ver directamente con el problema y siempre con los requisitos del usuario, tanto funcionales como no funcionales. Así, lo que antes era sólo introducir información se transforma en un conjunto de decisiones relativas a la validez de esos datos, a su tipo, a la estructura entre ellos, a qué hacer cuando los datos son parcialmente incorrectos. Sin decir nada sobre los mecanismos de seguridad, que determinan quién puede introducir qué datos y cuando. ¿Habrá un proceso de introducción por una clase de usuarios y otro de validación por parte de otra clase distinta? ¿Se querrá registrar quién introdujo la información? ¿Sólo la última modificación, o un histórico de ellas?

Para los que diseñamos y construimos sistemas de gestión, un síntoma de este Big Bang que transforma un problema primordial en un universo de soluciones galácticas (y el energético proceso que pasa de una a otra) aparece cuando tenemos que agregar "un campo más". Un campo más, es revisar desde la base de datos hasta todas las capas de presentación (incluyo informes), qué partes se ven afectadas... Sí, es cierto, es la más fácil de las modificaciones... :-) Imagínate cualquiera otra...

Por cierto, me niego a traducir "stakeholder" por tenedor de apuestas. Creo que la traducción más cercana podría ser "implicado en" o "interesado por" un proyecto. ¿Alguien tiene alguna otra sugerencia?

miércoles, diciembre 05, 2007

Anhelar el vasto e interminable mar

En uno de los posts el blog de Reginald he leído una frase preciosa de Saint-Exupery, sobre "liderazgo".
"If you want to build a ship, don’t drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea". —Antoine de Saint-Exupery (1900–1944), “The Wisdom of the Sands

¡Cuán lejos estamos de esto!

Un ingrediente esencial de la Felicidad

"El animal humano, como otros animales, está adaptado a una determinada lucha por la vida, y cuando con grandes riquezas el homo sapiens puede satisfacer todos sus caprichos sin esfuerzo, la nueva ausencia de esfuerzo hace que en su vida se [elimine] un ingrediente esencial de felicidad. El hombre que adquiere fácilmente cosas por las que siente no más que un deseo moderado, deduce que el logro del deseo no proporciona la felicidad. Si tiene aficiones filosóficas, deduce que la vida humana es esencialmente miserable, puesto que el hombre que consigue todo lo que quiere sigue siendo desgraciado. Olvida que la falta de algunas de las cosas que desea es un elemento indispensable de felicidad"


Bertrand Russell, en "La Conquista de la Felicidad", página 44, 1930. Editorial Espasa Calpe, S. A.

Las negritas son mías. He sustituido la palabra "remueve" por "elimine", que me parece un término más adecuado. Imagino que la palabra en el original en inglés sería "remove", que significa eliminar.

Por lo demás, estoy totalmente de acuerdo con el texto.

lunes, diciembre 03, 2007

Mort, Elvis, Einstein, y tú

Jeff Atwood sobre una manera de aplicar la ley de Pareto a los programadores, contestando a otro post anterior que ha provocado un montón de respuestas.

"La" manera de hacer las cosas versus "una" manera de hacer las cosas

Lo reconozco, estoy muy negativo. Esta entrada es negativa.

Acabo de leer en el blog de James Fallows una entrada (via raganwald), y comparan la forma en la que unos japoneses repostan un avión, con la forma en la que lo hacen unos chinos. Como bien dice, no es un estudio científico, pero a pesar de ello concluye que:
With usual caveats against sweeping generalization, what this made me think was: Japan is all about the way of doing things. Practice, ritual, perfectionism, as much fanatical attention to the process as to the result. China is all about finding a way to do things. Improvisation, little interest in rules, putting up with whatever is necessary to attain the result.
[El subrayado es mio, las negritas suyas]. Opino que la conclusión puede extenderse también a la idiosincrasia nacional: nos preocupa mucho lo que vayamos a conseguir, pero no tanto cómo lo conseguimos. En el mundillo informático en el que me muevo, el paradigma de "una" manera de hacer las cosas es "pero funciona", mientras que "la" manera de hacer las cosas ni siquiera se piensa, mucho menos se documenta ni se practica.

No lo veo ilógico. En el ámbito laboral, no prima tanto cómo haces las cosas (la manera en la que haces las cosas), sino qué resultados has conseguido en última instancia. Y en particular, tanto mejor si lo consigues en el menor tiempo posible, aunque eso suponga saltarse pasos "innecesarios" que luegon afectan directamente a la calidad de los resultados, o al (invisible) trabajo que hay que rehacer más adelante debido a la baja calidad de lo producido.

Tom deMarco y Tim Lister ya nos lo adelantaron en su libro Peopleware el año 1999. En su capítulo 4 (Quality, if time permits) nos sugieren que hagamos un experimento. Preguntad por ahí a 100 personas que os digan un país asociado a la alta calidad, y es muy probable que el país sea Japón. Y luego preguntad también por ahí qué país está asociado con una alta productividad. Y es muy posible que el país también sea Japón. ¿Alta calidad y alta productividad a la vez?

A ver si la influencia oriental del Japón se nota más allá de la creciente conversión de la gente al budismo.

Malicia e incompetencia

raganwald recoge una cita en una entrada de su blog que me ha encantado: ¡la ley de Gray!
Any sufficiently advanced incompetence is indistinguishable from malice.
¡Genial!