Archive for octubre 2010
10 tipos de programadores
#1: Gandalf
Este tipo de programador se parece a alguno de los pocos candidatos para interpretar a Gandalf en el Señor de los anillos. El (¡o incluso ella!) tiene barba larga, un gorro destartalado, y puede llevar una capa en invierno. Por suerte para el equipo, esta persona es tan experta como Gandalf en la magia. Desafortunadamente para el equipo, tendrán que aguantar horas de historias sobre como él o ella anduvo por un arduo camino en la nieve para dejar las tarjetas perforadas en la sala de ordenadores. El tipo Gandalf es el luchador más duro, pero tienes que dejarle en la retaguardia y llamarle sólo en momentos de desesperación.
#2: El Mártir
El cualquier otra profesión, El Mártir es simplemente un adicto al trabajo. Pero en el mundo del desarrollo, El Mártir va más allá e incluso a otra dimensión. Los adictos al trabajo al menos van a casa a ducharse y dormir. El Mártir se enorgullece de dormir en el escritorio rodeado de cajas vacías de pizza. El problema es que nadie nunca le ha pedido a El Mártir que trabaje así. E intentan culpar al resto del equipo con frases como “Sí, vete a casa y disfruta de la cena. Yo terminaré esta noche el trabajo de las próximas tres semanas”.
#3: Fanboy
Observemos al Fanboy. Si te arrincona, te encontrarás inmerso en una lectura de tres horas sobre la superioridad de Dragonball Z comparada con Gundam Wing, o porqué la Playstation 3 es mejor que la XBOX360. El sitio de trabajo de un Fanboy está repleto de posters, figuritas y otros chismes relacionados con alguna obsesión, normalmente importada de Japón. No sólo son difíciles de tratar, sino que gastan tanto tiempo en su obsesión (tanto dentro como fuera del trabajo) que no tienen ni idea de cuando hacer el trabajo para el cual fueron contratados.
#4: Vince Neil (Vocalista de Mötley Crüe)
Este cuarentón parece un flashback a lo peor de los años 80. Gran melena, vaqueros rotos lavados a la piedra y una bandana aquí o allí, Vince se sienta en la oficina canturreando canciones de Bon Jovi y Def Leppard durante todo el día, no sería tan malo si “Pour Some Sugar on Me” no fuera asquerosamente pegadiza.
Generalmente Vince es una persona divertida con la que trabajar, y tiene mucha experiencia, pero nunca maduró. Pero Vince se convierte en un fastidio cuando intenta rememorar el estilo de vida rocanrrolero con el pelo y las zapatillas altas. Es bastante difícil trabajar con alguien que va a trabajar resacoso todos los días.
#5: El Ninja
El ninja es el Jugador Más Valioso en tu equipo, y nadie lo sabe. Como los asesinos legendarios, no sabes si El Ninja está en el edificio o trabajando, pero descubres algún indicio por la mañana. Conectas el servidor de control de código y ves que a las 4 de la madrugada, El Ninja metió código que arreglaba el problema en el que habías planeado trabajar toda la semana, ¡y ni siquiera sabías que El Ninja conociera ese proyecto! Mientras tú estabas en Otra Reunión De Esas, El Ninja estaba trabajando.
Los Ninjas son muy sigilosos, podrías no saber ni su nombre, pero sabes que en cada proyecto parecen desenvolverse sin problemas. Pisando cuidadosamente, incluso. El Ninja es un guerrero solitario; no intentes forzarle a trabajar como a las masas.
#6: El Teórico
El teórico sabe todo sobre programación. Puede pasar cuatro horas leyendo la historia de un lenguaje de programación extraño o mostrando una prueba de porqué el código que escribes es peor que el óptimo y tarda tres nanosegundos más en ejecutarse. El problema es que El Teórico no sabe nada sobre Desarrollo Software. Cuando El Teórico escribe código, éste es tan “elegante” que los simples mortales no captan su esencia. Su técnica favorita es la recursividad, y cada bloque de código está contraído al máximo, a pesar de los plazos y de la legibilidad.
El Teórico también se distrae con facilidad. Una tarea simple que debería hacerse en una hora, lleva a los Teóricos tres meses, cuando deciden que las herramientas existentes no son suficientes y deben construir nuevas herramientas para construir nuevas librerías para construir un nuevo sistema que cumpla los mejores y más altos estándares. El Teórico puede volverse uno de tus mejores jugadores, si le dejas jugar con los límites del proyecto y parar de gastar tiempo buscando el Mejor Algoritmo de Ordenación.
#7: El Cowboy del código
El Cowboy del código es una fuerza de la naturaleza imparable. Casi siempre es un buen programador y puede hacer el trabajo dos o tres veces más rápido que otros. El problema es que, al menos la mitad de esa velocidad viene por atajar malamente. El Cowboy del código piensa que tener el código bajo un control de versiones lleva mucho tiempo, guardar datos fuera del código lleva mucho tiempo, comunicarse con alguien más lleva mucho tiempo… ya sabes a lo que me refiero.
El Cowboy del código genera código desordenado, porque trabaja tan deprisa que la necesidad de refactorizar (simplificar y comentar) nunca ocurre. Es decir, siete páginas de funcionalidades parecidas a los ejemplos “no lo haga así” de un libro de texto de programación, pero que mágicamente funcionan. El Cowboy del código no funciona bien con otros. Y si pones dos Cowboys de código en el mismo proyecto, se garantiza que fallará, mientras que se lían en los cambios del otro y se disparan en los pies (?¿).
Pon un Cowboy del código en un proyecto donde conseguir cumplir plazos sea más importante que hacerlo bien, y el código estará listo justo antes del final del plazo. El Cowboy del código es en realidad sólo una bulliciosa versión de El Ninja. Mientras El Ninja ejecuta con precisión, El Cowboy del código es un toro enfurecido que corneará a todo el que se interponga en su camino.
#8: El Paracaidista
¿Conoces esas películas donde un único soldado es lanzado por el aire detrás de las líneas enemigas y se hace con los planes secretos de batalla? Esa persona en la industria del desarrollo de software es El Paracaidista. Es el último recurso que envías para salvar un proyecto moribundo. Los Paracaidistas carecen de la paciencia para trabajar en una misión larga, pero su ventaja es la extraña habilidad para aprender un código con el que no están familiarizados y trabajar con él. Otros programadores necesitarían semanas o meses para aprender lo suficiente para trabajar eficientemente en el proyecto: El Paracaidista necesita horas o días. Los Paracaidistas podrían no saber suficiente para trabajar en el corazón del código, pero la ausencia de tiempo significa que él tendrá éxito cuando el resto del equipo no lo tendría.
#9: El Evangelista
No importa qué tipo de entorno tengas, El Evangelista insiste que puede mejorarse echando abajo todas tus herramientas y procesos y reemplazándolas con otra cosa. El Evangelista es el opuesto de El Teórico. El Evangelista es franco, conoce muchísimo sobre desarrollo software, pero sabe poco sobre programación actual.
El Evangelista es secretamente un jefe de proyecto o un jefe de departamento pero carece del conocimiento o la experiencia para dar el salto. Así que mientras El Evangelista es capaz de depurar su rol como jefe, el resto necesita parapetarse en él para intentar revolucionar su lugar de trabajo.
#10: El Hombre Mediocre
“Suficientemente bueno” es lo que obtendrás del Hombre Mediocre. No dejes que su nombre te engañe; hay también mujeres que pertenecen al tipo El Hombre Mediocre. Siempre tarda más tiempo en producir peor código que cualquier persona del equipo. “Lento y apenas constante llega a la meta” podría describir un proyecto del Hombre Mediocre. Pero El Hombre Mediocre siempre es “suficientemente bueno” para seguir contratado.
Cuando entrevistas a este tipo, te hablará mucho sobre los proyectos en los que se ha involucrado pero no demasiado sobre su actual proyecto. Llegar a conocer al Hombre Mediocre es sencillo: Pregúntale sobre los detalles del trabajo que ha hecho, y de repente sufrirá amnesia. Déjale en la organización y podría llevar años deshacerse de él.