Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/liliabat/public_html/com.usedtocode.i/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 340
Como desarrollador: Especializarce or Generalizar? – I used to code

Como desarrollador: Especializarce or Generalizar?

En Developers Jordi reflexiona sobre como el grado de especialización de los desarrolladores puede afectar diferentes tipos de organizaciones. A partir de esta reflexión de Jordi, Javier Escribano dice:

Es para uan desarrollador especializarce mucho, o para un emprendimiento (startup) solo tener desarrolladores especializados.

Algo con lo que estoy completamente de acuerdo en el contexto de un emprendimiento, adicionalmente Javier concluye en su respuesta a Jodi Miró Bruix que:

…grandes desarrolladores son aquellos que pueden ser flexibles y usar la mejor herramienta para cada trabajo.

Lo que suena muy bien, sin embargo pienso que solo representa una parte del una cuadro más grande. Esta conclusión, tan bien como suena, no vive en un vacio, siempre tendrá un contexto más amplio en el cual aplica: la organización. Y como Jordi señala, las organizaciones evolucionan por caminos que les son únicos.

Algo que aprendí de mi entreamiento en Gestalt es siempre verificar el polo opuesto en cualquier situación, una herramienta que debería utilizar más frecuentemente por cierto. Es este caso podría ser algo así como “…grandes desarrolladores son aquellos que se adhieren en forma inflexible a una herramienta para cualquier trabajo“.

Esto no no suena bien, todos hemos oído que “si la única herramienta que tienes es un martillo, va a tratar todo lo que tienes como si fuera un clavo” (Ley del Instrumento de Maslow). Sabiendo que por un lado tenemos a los desarrolladores y por el otro lado tenemos a las organizaciones, vamos a poner combinarlos a ver que pasa con estos enunciados.

Organización Pequeña – Desarrollador Generalista

El desarrollador Full-Stack que mencioa Javier es un caso especializado 😉 del Desarrollador Generalista: un profesional que puede mover facilmente entre el backend y frontend de de aplicaciones web. Los empredimientos son también un caso específico de una pequeña organización.

Como los emprendimientos suelen tener un presupuesto pequeño y un equipo pequeño, a veces tan pequeño como una sola persona, un generalista provee un gran valor. Es posible que el producto resultante no sea tan bueno como debería ser, o que el proceso de desarrollo no haya sido tan rápido o fluido, pero estas son concesiones naturales asociadas a un equipo pequeño que maneja muchas tecnologías y herramientas: “el que mucho abarca poco aprieta“.

Organización Pequeña – Desarrollador Especialista

En este escenario, el la organización pequeña (emprendimiento) puede no lograrlo: es fácil que pueda surgir una necesidad específica de cuyo conocimiento se carece en el equipo. La organización puede entonces verse forzada a “quemar” su limitado presupuesto contratando un servicio o profesional especializado para cerrar esta brecha, o sencillamente no logra avanzar más allá de este cuello de botella.

Organización Grande – Desarrollador X

Esta X corresponde a la condición booleana de Don’t Xare, si el emprendimiento lo logra, entonces se mueve a una esfera en la que ya no sigue restringido por un prqueño presupuesto para contratar profesionales. Es posible que en este punto la organización cuente con un equipo dominado por los generalistas donde algún nivel de especialización a empezado a ocurrir, sin embargo esos aún se encuentran unidos por un este amplio conjunto de habilidades compartidas.

Especialistas pueden ser contratados para llenar las brechas en la organización, y la especialización de los generalistas originales se profundiza, si es que estos permanecen, porque ahora el tamaño de la organización lo permite, un lujo del que antes no podían beneficiarse. Así que si tu tenías una pasión por algún aspecto del software que querías pulir, ahora la organización se ha movido a una situación que te provee tiempo para esto.

Tambien sucede que a medida que el número de especialistas en la organización empieza a crecer, los generalistas empieza a sentir su Status Quo comprometido y pueden intentar “escapar hacia adelante”, o que sencillamente la organización formalmente los empuje en ese sentido, ambas cosas pueden ocurrir. Una de las alternativas a este proceso es la figura del Especista General que propone Scott Ambler.

Por supuesto siempre existirán desarrolladores brillantes que pueden programar tanto una aplicación para iOS como otra en Android usando herramientas naticas y además crear el backend para las mismas, y todo esto de forma eficiente, siguiendo las mejores prácticas, pusheando código con un buen test suite que es sencillo de administrar y mantener en el largo plazo, desafortunadamente este no es un caso común.

Qué deberías hacer? No lo sé. Deberías, como desarrollador,  especializarte o desarrollar un conjunto de más general de habilidades? Yo, como programador, siempre fui más un generalista, y la mayor parte del tiempo la brújula que usaba para decidir que tecnología o herrmienta iba a explorar, o a aprender, era lo que me hacía feliz. He conocido desarrolladores que usan los índices de salarios para decidir en qué tecnogía especializarce, suena igual de bien para mi. Y a tí que te mueve?

A quién deberías contratar para tu emprendimiento? De nuevo, no hay una respuesta buena, siempre puedes contratar a un especialista en Recursos Humanos y delegarle este problema 🙂 y sin duda alguna, después de un cierto tamño de organización esta será una opción dif’ícil de eludir, pero como Jordi dice “cada compañía debe encontrar su propia forma de hacer las cosas”. Yo, como Javier, aprecio muchísimo la capacidad de los programadores de aprender, su curiosidad y su pasión, esto es algo difícil de cuantificar, pero es lo que me funciona a mi.

Leave a reply:

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Site Footer