Consiguió un trabajo de desarrollo de software que operativamente es un desastre y tiene poco potencial de crecimiento profesional. ¿Qué puedo extraer de esto?

Soy un recién graduado en mi primer trabajo de desarrollo de software a tiempo completo. El trabajo prometía tutoría y desarrollo efectivo, pero en las 6 semanas que he estado aquí no me ha proporcionado nada de eso.

Los principales problemas con el medio ambiente:

  1. El desarrollador principal (no mi jefe) suscribe abiertamente la idea de que la falta de documentación es una forma de seguridad laboral. Como resultado, nada está escrito. Ni siquiera hay una lista escrita de las bibliotecas utilizadas o los repositorios de git que tenemos, solo comentarios en el código o una descripción general de lo que hacen los fragmentos de código actuales. Además, tampoco quiere que la gente lo descubra por sí misma, por lo que simplemente les dice a los demás desarrolladores que dejen de trabajar si necesitan ayuda y él se encargará de esa sección. Si no puede completar un bloque de trabajo al 100% por su cuenta, se lo quitarán.

  2. El gerente (mi jefe, que es técnico) parece estar desmotivado y desinteresado en el trabajo. Se toma todos los viernes libres y pasa el resto del tiempo en su oficina. Cuando le he preguntado si hay algo que deba hacer, promete volver a mí y no lo hace. Como resultado, con frecuencia no tengo nada que hacer excepto los cursos de Udemy.

  3. Usamos Agile/Scrum, que aparentemente se trata de dar a los desarrolladores una sola oración para trabajar en sprints. Actualmente estoy asignado para trabajar en el seguimiento de inicio de sesión de usuario. La totalidad de lo que tengo que trabajar durante las dos semanas (cambiando algunas palabras por el anonimato) es "el sistema debe realizar un seguimiento de cuándo un usuario inicia sesión y cualquier información relevante sobre su inicio de sesión". ¿Qué significa "información relevante"? Nadie lo sabe. ¿Quién lo va a usar? No están seguros. Me dijeron que buscara cosas al azar para grabar y, aunque lo hice, es justo lo que querría. Los sprints también requieren que los desarrolladores calculen cuánto tiempo llevará una función, pero como no tenemos idea de lo que se solicitará antes de la reunión de sprint, damos estimaciones basadas en la adaptación de código que nunca hemos visto. Además,

¿Cuál es la mejor manera de extraer valor profesional de este lío?

Yo (y los otros 3 desarrolladores de mi proyecto) no tenemos tareas desafiantes, ya que el líder las toma para evitar la difusión del conocimiento.

Realmente no puedo colaborar con nadie. El jefe está ausente. El líder no quiere que nadie más haga preguntas o realmente descubra el código. Otros desarrolladores también buscan escapar y pasan su tiempo impulsando conceptos que les permitirán aprender nuevas tecnologías (proyectos a los que lamentablemente no estoy asignado).

Por ejemplo, la aplicación móvil tendrá su tercera reescritura completa en tres años. Solíamos hacer nativo, nos mudamos a Xamarin, y luego ahora el desarrollador de ese proyecto está lanzando Flutter.

No tengo una práctica seria para satisfacer las necesidades comerciales reales, ya que aparentemente en Agile la suma del análisis de requisitos para dos semanas de trabajo cabe en un post-it.

Aparte de cumplir básicamente con un estándar mediocre y transferir todo el tiempo a un proyecto mío independiente, no veo muchas oportunidades. ¿Cuál es la mejor manera de tener un valor de mercado sólido para saltar de 8 meses a un año a partir de ahora?

¿Es este tu primer trabajo? ¿No puedes intentar buscar otro trabajo ahora? "Usamos Agile/Scrum, que aparentemente se trata de dar a los desarrolladores una sola oración para trabajar en sprints". Agile/Scrum no se trata de eso. De hecho, la implementación de prácticas Agile/Scrum solucionaría algunos de los problemas mencionados.
Suena como un proyecto de marcha de la muerte . Si te quedas, lee el libro
¿Hay un rastreador de errores o problemas del que pueda tomar problemas abiertos para trabajar?
Si realmente no tiene nada que hacer, puede ver si alguno de sus compañeros de trabajo está abierto a ser seguido. Básicamente, simplemente te sientas con ellos y los observas hacer su trabajo. Incluso podría convencerlos de que participen en el programa si no les importa.
@StephanBranczyk sí, es mi primer trabajo. Lo miraría, pero me preocupa que se vea mal en mi currículum que dejé un trabajo a los 3 meses más o menos.
@rurp sí, pero las reglas son que el código roto se remonta a quien lo escribió inicialmente a menos que estén realmente atados. Como resultado, los únicos errores en los que he trabajado han sido errores en las bibliotecas.
@Shadowzee Estoy haciendo algo de eso, pero no me quieren ahí todo el tiempo.

Respuestas (7)

1

El desarrollador principal (no mi jefe) suscribe abiertamente la idea de que la falta de documentación es una forma de seguridad laboral. Como resultado, nada está escrito.

2

El gerente (mi jefe, que es técnico) parece estar desmotivado y desinteresado en el trabajo. Se toma todos los viernes libres y pasa el resto del tiempo en su oficina. Cuando le he preguntado si hay algo que deba hacer, promete volver a mí y no lo hace. Como resultado, con frecuencia no tengo nada que hacer excepto los cursos de Udemy.

Si tu puedes. Ver 1 )

Si nadie más va a documentar, entonces usted puede/debe.

3

Usamos Agile/Scrum, que aparentemente se trata de dar a los desarrolladores una sola oración para trabajar en sprints.

No, no lo es (excepto en su proyecto). Si estuviera desarrollando cascada (que parece haber sido renombrado como el método V recientemente), aún obtendría poca dirección.

Tienes una gran decisión que tomar . Sus opciones son las siempre populares "pulir su CV y ​​empezar a buscar", o quedarse, ponerse manos a la obra e intentar cambiar las cosas.

Con solo 6 semanas, podría simplemente irse y ni siquiera mencionar el trabajo en su CV.

O bien , puede quedarse e intentar intentarlo. Si te quedas, probablemente no obtendrás mucha ayuda (del desarrollador principal o de su jefe); la gran pregunta es si encontrará obstáculos. Si espera que lo hará, se indica un cambio de carrera.

Podrías empezar a documentar las cosas. Ejecute el código a través de DoxyGen si es compatible con su idioma, o busque algo similar. Inicie una wiki. Cuando descubras lo que hace algún código, agrega comentarios. Agregue pruebas unitarias, si puede.

Acércate a tus compañeros de equipo. Parece que se han dado por vencidos. Pregúnteles si estarían dispuestos a contribuir a un wiki. Tal vez alguien ya lo intentó y encontró resistencia; lo sabrán y eso puede ayudarlo a tomar una decisión.

4

El desarrollador principal (no mi jefe) suscribe abiertamente la idea de que la falta de documentación es una forma de seguridad laboral

Lea sobre el factor autobús . ¿Quizás mencionárselo al jefe/PM? Si el desarrollador principal pasa por debajo de un autobús/se casa y se muda/se muda para cuidar a un pariente/etc., ¿qué sucederá? He visto esto, y no es bonito. De hecho, si es tan indispensable, ¿qué pasa cuando se va de vacaciones?

5

Además, el administrador de proyectos a menudo divide las tareas en elementos similares y las asigna fuera de la planificación del sprint, por lo que dos miembros del equipo pueden terminar fácilmente trabajando en lo mismo y duplicando el código.

No presagia nada bueno. Realmente suena como un libro de texto "cómo no ejecutar un proyecto" y es posible que le aconseje que mire a su alrededor. ¿Recibió otras ofertas? ¿Podrían esas empresas tener algo para ti?

No es así como quieres pasar los próximos 40 o 50 años. Si te esfuerzas por dos, ¿serás empleable en otro lugar después?

Tl;dr: cámbialo o vete. La actitud de tus compañeros debe ser un indicador. La actitud de tu jefe y PM ya es un indicador.

Presenté la documentación hoy diciendo que debería haber una lista maestra de cada cambio que un desarrollador necesita hacer en la base de datos junto con el SQL para hacer el cambio. Sus respuestas iban desde "no se puede descifrar a partir de los mensajes de error" hasta "somos ágiles, escribimos código, no palabras". Mi jefe también anunció al final del día que se va en dos semanas y que no hay un plan claro para seguir adelante. Creo que me voy a ir. Gracias por la publicación detallada.
"we are agile, we write code not words." - alguien no entiende Agile. Punto 2 " Working software over comprehensive documentation" - si tuviera un dólar por cada idiota que me dijo que eso significa que no hay documentación ... Estás rodeado de idiotas, sal mientras la obtención sea buena

Empieza a buscar trabajo ahora.

Estaba en una situación similar en mi primer trabajo de TI después de graduarme.

Cuando era evidente que no era un buen trabajo desde el principio, me convencí a mí mismo de 'al menos quedarme un año, porque no sería una buena idea irme temprano'.

El problema con ese tipo de pensamiento es que:

  1. Puede tomar más tiempo de lo que cree encontrar un nuevo trabajo.
  2. Puedes irte ahora mientras tienes ese 'olor a nuevo graduado'. En mi caso, después de un año cuando comencé a buscar un nuevo trabajo, ahora tenía un año de experiencia con una tecnología poco conocida. Tener un año de experiencia en una tecnología irrelevante probablemente lo hizo más difícil que ser un recién graduado sin experiencia. Si le preocupa responder 'por qué deja su trabajo', no se preocupe demasiado, decir 'quiero trabajar en un lugar con buenas prácticas' será atractivo para las personas que tienen buenas prácticas.
  3. Existe el costo de oportunidad de lo que de otro modo podría estar aprendiendo. Si estuvieras trabajando en otro lugar, podrías estar aprendiendo habilidades mucho mejores.
  4. Trabajar en un lugar con malas prácticas puede ser malo para tu estado mental. Si está trabajando con código no documentado, es frustrante y estresante y puede provocar agotamiento.
Estoy de acuerdo, incluso si los entrevistadores quieren más experiencia, no has perdido nada.

Busca un trabajo diferente. Hasta que encuentre uno con una oferta de trabajo legalmente vinculante, quédese donde está, porque pone dinero en su bolsillo.

Paralelamente, puedes intentar mejorar las cosas en tu lugar. Incluso si se trata de nada, es una buena experiencia de aprendizaje. Escriba lo que está sucediendo, por qué está mal y cuáles son los riesgos para la empresa.

El mayor riesgo es que con un líder de equipo como este, la empresa nunca logrará contratar a un desarrollador experimentado y mantenerlo. Para ti es el primer trabajo, y piensas mucho en irte. Imagina el futuro que harías tú con 5 años de experiencia en esa situación.

Si bien la gente habla del "factor de autobús" (lo que sucede es que el conductor es atropellado por un autobús, o por un colega que ha tenido suficiente, o en el lado positivo gana la lotería), en realidad no es un riesgo tan grande. Será costoso, pero la empresa puede contratar a alguien que sea realmente bueno en su trabajo, por un buen salario, y se arreglará.

El mayor costo proviene del hecho de que el líder maneja las cosas de manera totalmente ineficiente. Si un desarrollador junior tiene preguntas, no le quita el trabajo como líder y lo hace usted mismo (si el líder le dio el trabajo a un junior, entonces es un trabajo que el líder nunca debe tocar), lo ayuda a superar el problema, si es algo que necesita documentarse, dígales que lo documenten, y luego déjelos continuar.

Parece que tiene un PM (y todos saben que no está haciendo mucho), un líder (pero nadie sabe lo que está haciendo) y tres desarrolladores que no hacen ningún trabajo de desarrollo útil. Eso no es culpa tuya, obviamente, pero puedes intentar hacer todo lo posible para cambiarlo.

PD: Puedo ver que se abre un puesto de desarrollador principal una vez que su administración se despierte. Es cierto que tendrías que ser muy bueno para conseguir eso.

PD. Un reemplazo para el líder del equipo significaría que la empresa tendría repentinamente un líder de equipo efectivo y tres desarrolladores junior efectivos y motivados. Pueden lograr mucho.

¿Cuál es la mejor manera de tener un valor de mercado sólido para saltar de 8 meses a un año a partir de ahora?

Dada la información, su mejor resultado es una buena referencia y cualquier cosa con la que pueda educarse. Ambos son activos muy valiosos.

No espere demasiado cuando se una por primera vez a la fuerza laboral.

Realmente no puedo ver una buena referencia después de 6 semanas. Tampoco lo vería como significativo, si estuviera entrevistando. Creo que esa 6 weeksparte eclipsaría la good referenceparte. He recorrido un camino de algunos incluso antes de las 6 semanas (sin facturarlos; YkMMV), y no llegan al CV. A pesar de que este es el primer trabajo del OP, recomendaría olvidarlo si camina.
@Mawg OP ha estado allí 6 semanas, tiene la intención de irse en otros 8 meses, no de inmediato. Así que casi un año en total, vale la pena ponerlo en un CV.

Obtener experiencia profesional es más que solo mejorar sus habilidades técnicas con desafíos de programación del mundo real, sino también aprender a navegar en un lugar de trabajo disfuncional.

Ninguna empresa para la que trabajará hará las cosas de la manera correcta, y menos de la manera correcta para usted. Las nuevas empresas se mueven rápido y rompen cosas, las grandes empresas establecidas se ahogan en procesos y papeleo. No me malinterpreten, su situación actual suena bastante mal, pero sin verlo no sé cuánto es eso malo y cuánto el efecto "nuevo trabajo" donde todo es increíble o un basurero incendiado.

No hay bien o mal aquí. Puedes quedarte y aprender cómo sobrevivir a una empresa disfuncional, e incluso mejorarla (por ejemplo, documentándola, como decían algunas personas). Puedes irte para tratar de encontrar una mejor compañía, pero la hierba siempre será más verde en otro lugar. De cualquier manera, saldrás fortalecido y con mucha experiencia sobre cómo trabajar en una empresa del mundo real, incluso en las más disfuncionales.

Deberías renunciar.

  • No estás mucho tiempo allí y ya hay suficiente para justificar la partida. No son ni dos meses y ya encuentras un montón de malas prácticas.
  • Más importante aún, dado que no está mucho tiempo allí, no está realmente involucrado ni en el proyecto ni en su carrera en esta empresa. Así que nada te detiene.
  • He trabajado con tales gerentes/líderes antes, nada va a cambiar en esta empresa. Tu jefe, según tu descripción, no tiene ningún interés en mejorar y aumentar la productividad. Lo que su líder está hablando sobre la seguridad laboral es algo que escuché antes, pero incluso en los casos en que escuché a personas mencionar algo como esto, nunca me encontré con alguien que disuada activamente a sus colegas de documentar o aprender. Esto es algo que debe llamar la atención de la gerencia y, en última instancia, castigarlo, pero nuevamente, tengo la sensación de que la gerencia no está lo suficientemente involucrada en el tema.

Si quisiera irse con una nota amarga y al menos provocar un cambio al irse, podría entregar su aviso y hablar con la gerencia, explicándoles por qué las prácticas de desarrollo internas son directamente dañinas para el negocio. Sin embargo, desaconsejaría esto, aunque yo mismo lo hice en el pasado. Esto tiene dos razones:

  1. Negocios como este no cambian. De alguna manera siguen reuniendo dinero o se declaran en quiebra, por lo general hay una persona que es el latido del corazón de todo el asunto y si alguna vez se van, la empresa se derrumba. En cualquier caso, es probable que sus palabras nunca sean escuchadas, por lo que esencialmente todo lo que puede crear es un conflicto temporal.
  2. Además, estoy viendo esto desde su perspectiva. No tiene nada que ganar tratando de ayudar a la empresa cuando se vaya o tratando de crear una nueva cuando se vaya, aparte de tal vez alguna satisfacción personal. Aparte de eso, simplemente no hay ningún beneficio. Lo más probable es que quemes un puente y cualquier consejo que se te haya ocurrido nunca sea de utilidad.

Sé que esto es un poco insatisfactorio, pero solo vete. Sea profesional, llame a un profesional por el cual quiere irse y luego olvide que este proyecto existió alguna vez. En contraste con otra respuesta, no creo que sea su trabajo establecer la documentación si su líder trabaja activamente en contra de esto y a la gerencia no le importa. En última instancia, usted es un desarrollador, no un administrador de proyectos. Su trabajo es producir código. Si las decisiones de la gerencia y el jefe de desarrollo son desastrosas, puede señalarlo, pero si deciden no prestar atención a su advertencia, entonces aquí es donde debe trazar la línea. Especialmente si su cliente potencial no quiere que documente, no veo por qué es su trabajo hacerlo. No lo es.

Editar

Solo una adenda: personalmente yo también seguiría trabajando ahí hasta que consiguieras un nuevo contrato. No haga de los problemas de esta empresa sus problemas.

Pida programar una reunión con su jefe sobre la retroalimentación. Pídele que escriba una hora específica antes de salir de la habitación y, si no lo hace, envíale un correo electrónico repetidamente hasta que programe una hora (aunque obviamente no envíes spam a su bandeja de entrada).

En esa reunión, dile exactamente lo que nos dijiste. Pregúntele si estaría dispuesto a hablar con el ingeniero senior, ya que cree que su comportamiento está dañando el negocio ya que aumenta el riesgo (busque el factor bus), al tiempo que impide que los otros programadores contribuyan de manera significativa. Le pagan un salario y tiene miedo de que sus acciones le impidan ganarlo adecuadamente, y eso significa que su trabajo está en riesgo la próxima vez que haya despidos.

Además, pregunte cómo hacer que sus tareas ágiles reciban los criterios de aceptación adecuados, para que sepa qué diablos se supone que debe hacer. Por el momento, solo tiene Agile implementado a medias.

Solo haga esto si es rico de forma independiente, o si ya está recibiendo ofertas de otras compañías, pero no se arriesgue así si no tiene un trabajo de respaldo (especialmente si es su primer trabajo de desarrollador de software) . Si el ingeniero superior se entera y da un ultimátum, es usted o él. Puedes estar seguro de que serás tú. O si el ingeniero senior se entera y comienza a intimidarlo, no cuente con la ayuda de la alta dirección.
@StephanBranczyk El trabajo de un gerente es eliminar los obstáculos que impiden que su equipo realice su trabajo y, en este momento, las actividades del ingeniero senior están creando uno. El gerente no puede hacer su trabajo solucionando el problema si no sabe que hay un problema que debe solucionarse.
Nick, esa parte, no la discuto. Solo digo que si el ingeniero senior da un ultimátum, es él o yo, la compañía siempre se pondrá del lado del ingeniero senior líder con un factor de bus de uno sobre el desarrollador de software novato por primera vez. Es un hecho. Incluso si la gerencia le cree al novato e incluso si la gerencia trata de reemplazar al ingeniero senior eventualmente, tomará tiempo hacerlo, y tiempo para encontrar un reemplazo senior adecuado para el ingeniero senior (suponiendo que incluso pueda reemplazarlo con éxito sin arruinar el proyecto). por un momento).