La buena programación

Un poco más tarde de comentar aquí el tema de la meritrocacia y cómo se está acercando a las empresas, me he encontrado en barrapunto con éste post, el post en si no es que diga mucho, básicamente es un link a un artículo bastante más interesante.

El tema trata sobre si los programadores mediocres suponen algo productivo o no para la empresa. Lo primero que hacen es relacionar a los programadores malos con los programadores “rápidos”. La verdad es que estoy más o menos de acuerdo con eso, me ha pasado durante la carrera que la gente que acababa las práctias en verdaderos tiempo récord solía suspenderlas, bueno, eso a partir de segundo curso, cuando ya se tenía en cuenta cómo se había hecho, la estabilidad, la posibilidad de reutilización y esas cosas…

Vienen a decir lo que alguien que lleve algo de tiempo programando sabe, el que te diga: “yo soy la ostia programando, me he hecho una clase para manejar una base de datos mysql en java en una hora” es un completo gilipollas que no tiene ni puta idea. Posiblemente la clase que se ha hecho casque a la primera de cambio, en cuanto hagas una búsqueda que no tiene resultados se irá a la mierda porque no comprobará que le devuelvan un resultado vacío, seguro que tambíen peta si le metes unos datos de conexión incorrectos porque no estará preparada para tener en cuenta que el servidor no está donde debe estar o que el usuario que queremos usar no tiene acceso o no existe. Eso sin entrar en temas como sql injection y demás que llevarían ya bastante más tiempo.

Lo que la gente que se dedica a la programación en las empresas debería entender es que un programador no es mejor por terminar algo antes, sino que es mejor porque cuando lo termina eso funciona bien, sin fallos, y qué, además es facilmente reutilizable en otra aplicación (hay donde de verdad entra la productividad). Lo ideal de nuestro ejemplo de la base de datos sería una clase genérica, que pueda trabajar con cualquier base de datos en sql estándar, de forma local o remota, con cualquier usuario que se le indique, que tenga en cuenta, por lo menos, los errores más comunes, y que, aunque lleve un mes en vez de un día hacerla, pueda cogerla dentro de dos meses e incluirla en una nueva aplicación porque estoy seguro de que vale. Ahí es donde de verdad está la productividad en temas de programación, en la reutilización de algo bueno, o al menos es como yo lo veo.

Otra cosa en lo que la gente no se suele fijar mucho es la documentación, y eso que es algo imprescindible en aplicaciones medianamente “grandes”. Si trabajas en una empresa que tienes que pensar que esa clase que has hecho posiblemente la vaya a usar alguien más (o tú mismo dentro de un tiempo suficientemente amplio como para que no recuerdes que hacía cada método/función) y una buena documentación ayudará a entender más rápidamente cómo funciona. En java, realmente es tan sencillo como trabajarse un poco los comentarios y pasarle el javadoc y ni siquiera eso suele estar bien hecho. Por cierto, he oido a muchos decir lo de “si no entienden mi código no me echarán porque alguien tendrá que hacerlo entero de nuevo” me parecen unos auténticos desgraciados, lo que pasará es que te largarán/largarás igual y el que venga después tendrá que comerse tu marrón de código en un tiempo record porque se supone que éso ya estaba hecho y funcionaba (y ésto si que me ha pasado a mi).

El verdadero problema no lo veo en los programadores (siempre que tengan los conocimientos para hacer las cosas bien), más bien creo que está en los “jefes” de éstos. Éstos jefes suelen premiar/exigir que un programador haga algo en el menor tiempo posible en vez de que lo que haya hecho esté realmente bien hecho. Eso favorece a los programadores mediocres si, que harán su clase para la base de datos cientos de veces, una por aplicación, mientras que un programador bueno, tardará en hacer su clase de la base de datos, pero la hará una sóla vez.

Lo mejor es que, en casi cualquier empresa española, entras a currar por lo que dices que sabes, nadie comprueba que realmente sepas (bien) lo que dices. Tengo colegas que me han llamado desde el curro porque tenían un error en una aplicación y no conseguían solucionarlo, en concreto me pasó ésto: “oye, a ver si tu sabes que le pasa a ésto que no sé si es cosa del compilador (madre mía…), me da un error al acceder a una posición de un array porque me dice que no puede acceder a ella”, respuesta: “compruebas la longitud para ver que no te sales de rango o está vacío? o le estás pidiendo el elemento 4 a pelo?”, respuesta: “aaahm…” Eso se da el primer año de programación, y éste colega mío tiene el título de ing.informática.

Manda huevos…vaya mierda de país.

PD: Releyendo el post parece que yo sea una máquina que critica a todo el mundo. Ni mucho menos, sólo expongo mi idea de cómo deberían ser las cosas en ésto de la programación, que nadie se confunda😀

    • a
    • 14/08/07

    Pues si, yo soy de FP y he tenido que enseñar a “ingenieros” de informática obviedades .

    • b
    • 14/08/07

    “Ahí” en vez de “hay”, no te lo tomes a mal, pero duele

    • luixal
    • 15/08/07

    Cierto, además también faltaba el verbo xDDD se vé que iba a empezar la frase de otra forma y cambié de idea.

    Gracias por el aviso😀

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: