He trabajado como el único desarrollador en una empresa que conocía una tecnología específica, como el único que hizo el tipo de programación que hice y como contratista en situaciones similares. (También he trabajado en entornos de equipo con otros desarrolladores que conocían diferentes herramientas y con otros desarrolladores que hicieron exactamente lo que yo hice).
Ventajas de ser el único programador
- Como mencionas, con frecuencia tienes la libertad de usar cualquier herramienta o idioma que creas que puedes aprender. No siempre tiene que presentar un caso ante sus compañeros para obtener permiso para trabajar con New Technology X mientras todos los demás usan Current Technology Y.
- Tienes más responsabilidades. Esencialmente, usted funciona como líder de proyecto y desarrollador en cada uno de sus proyectos, y con su capacidad para identificar e implementar nuevas cosas, también es efectivamente el jefe del departamento. (No se lo digas a los vendedores. Les encanta hablar con quienes toman las decisiones y no tienes tiempo para hablar con ellos).
- No hay dudas sobre el crédito por el trabajo que se realiza: obviamente, usted y usted son los únicos que hicieron que las cosas sucedan.
- Puede pasar más tiempo trabajando realmente en sus propios proyectos y menos tiempo en reuniones sobre proyectos que son básicamente de otra persona (pero usted está allí como una persona de apoyo, posible respaldo o lo que sea).
Contras
- Como David señala en un comentario, usted es el único desarrollador, por lo que no se realiza ningún desarrollo sin usted. Una vez me jacté ante mi hermano de que yo era "el hombre" en un proyecto particular en el trabajo. Me describió con precisión mi situación: estaba atrapado. No podía seguir adelante en esa empresa porque nunca podría deshacerme de ese proyecto. (También tenía razón. Pasaron varios meses de entrenamiento durante un período prolongado de tiempo antes de que pudiera entregarlo a alguien que incluso era algo capaz de apoyarlo). Puede resultarle difícil tomar unas verdaderas vacaciones cuando nada puede ser hecho sin ti
- Como señala Pierre, no hay nadie en el sitio para hacer revisiones de código o compartir mejores prácticas con usted. Puede comunicarse con sus compañeros de varias maneras, pero nada es tan efectivo como tocar a un compañero de trabajo en el hombro y pedirle que vea su código durante 5-10 minutos.
- En una línea similar, puede tener dificultades para obtener experiencia con nuevas herramientas. El entrenamiento fuera del sitio puede ser tan raro como el tiempo de vacaciones: alguien se quejará de que la compañía no puede permitirse el lujo de no mirar Language 3.0 durante una semana cuando no hay nadie para mantener funcionando las aplicaciones Language 2.0.
- El avance profesional puede ser extremadamente difícil de manejar. Es posible que no tenga una posición en la que pueda luchar, incluso un cambio en el título puede ser difícil de obtener, y las revisiones de fin de año no tienen ningún marco de referencia, por lo que un excelente trabajo puede pasar desapercibido si no fuera por otro razón por la que nadie realmente entiende lo que haces.
Si decides mudarte a una empresa en la que trabajarías como parte de un equipo de programadores, no creo que tu experiencia en solitario pueda hacerte mucho daño. Su falta de experiencia con los patrones de diseño no es necesariamente tan importante como su disposición a aprenderlos. (Puede haber situaciones en las que esté entrevistando a un candidato con antecedentes similares y también experiencia en cualquier método que utilice la compañía, pero eso es cierto para básicamente todos).
En la misma línea, su falta de experiencia en un equipo se equilibra con su capacidad para usar muchos sombreros. Hay algunos desarrolladores que son buenos jugadores de equipo pero que nunca desarrollan la capacidad de administrar un proyecto; ya has demostrado que puedes hacer eso.
Recomendaría que cuando sea un desarrollador en solitario, debería pasar un tiempo leyendo sobre herramientas y técnicas que utilizan desarrolladores similares, por lo que incluso si no las usa usted mismo, sabe que existen y puede consultar durante una entrevista, aunque solo sea para decir "Sí, he leído un poco sobre los marcos MVC, pero no los he usado yo mismo". Haga lo que pueda para mantenerse en contacto con otros desarrolladores: vaya a reuniones de grupos de usuarios locales, lea y comente en blogs (o conserve uno propio), trate de llegar a talleres de vez en cuando, vea seminarios web y demás. (También puede considerar sitios como lynda.com para capacitación interna: no es tan bueno como una conferencia de una semana en otro lugar, pero puede ver los videos en su propio tiempo y no enviar a todos al modo de pánico porque está fuera de la oficina.)