¿Estoy sobrecargado o simplemente lento?

Creo que hay varios problemas que deben abordarse, pero el principal que quiero resolver está en el título de la pregunta.

Un poco de contexto de fondo:

Estoy entre un desarrollador de software de nivel junior y medio; Tengo 3 años de experiencia en el sector. Trabajo en una empresa relativamente pequeña (< 20 desarrolladores de software) y, por lo general, participo en proyectos solo o en un equipo muy pequeño. Estos son administrados por un PM de alto nivel que casi no tiene nada que ver con el desarrollo y apenas se involucra en el proyecto más allá de las etapas inicial y final, y también hay un líder de equipo, generalmente un desarrollador más senior, aunque su papel es más del tipo scrum-master, ya que normalmente no participan activamente en el desarrollo.

Debido a que somos una empresa tan pequeña, tenemos que:

  1. Toma cualquier trabajo que podamos conseguir, y
  2. Sea lo más barato posible

La forma en que nos mantenemos económicos es básicamente comprimir el desarrollo en el menor tiempo posible. Esto significa que casi nunca tenemos suficiente tiempo para hacer el trabajo si trabajamos en horario normal; como tal, existe un requisito implícito de que haremos horas extras. Los proyectos suelen tener un plazo de entrega de unos pocos meses.

Por lo general, llego a los proyectos en el punto en que tenemos algunos requisitos de usuario básicos y vagos y escalas de tiempo acordadas, y luego básicamente me dicen "hazlo".

Entonces necesito hacer lo siguiente:

  • Comprender el dominio y cualquier código y herramientas existentes, que pueden ser bastante complejos y requieren conocimientos muy específicos.
  • Comprenda los requisitos del usuario, haga cualquier diseño
  • Crear elementos de trabajo y estimaciones de tiempo asociadas
  • Desarrollar, probar y documentar la solución.

Parece que lo único que se ha tenido en cuenta en los plazos generales del proyecto es el tiempo de desarrollo.

Por lo general, no hay mucho apoyo. Internamente, el líder del equipo a veces puede ayudar con problemas generales de desarrollo de software, pero debido a que no están realmente involucrados con el desarrollo del proyecto a bajo nivel, cualquier problema de bloqueo específico depende de mí para resolverlo solo. Los clientes también están ausentes en gran medida, excepto para las revisiones de sprint y, en ocasiones, para responder a los correos electrónicos.

Los peores casos suelen ser la modificación de proyectos heredados existentes que tienen bases de código infladas y están mal documentados, y los desarrolladores originales no se encuentran por ninguna parte; estos me toman mucho tiempo para entender y trabajar con ellos.

Por lo general, siento que estoy en contra de eso, y puede ser agotador. Las tareas casi siempre toman más tiempo que mis estimaciones iniciales, lo que me hace quedar mal, como si no estuviera siendo productivo. Por lo general, termino teniendo que apresurar las cosas hacia el final. Les digo a los líderes de mi equipo sobre esto, y generalmente dicen algo como "Bueno, solo haz todo lo que puedas".

Los proyectos se entregan (generalmente) a tiempo y dentro del presupuesto, pero nunca estoy realmente satisfecho con ellos; No estoy convencido de haber creado un producto que satisfaga lo que querían los usuarios, aunque técnicamente se adhiere a la mayoría de sus requisitos (por lo general, hay varias cosas que deben descartarse debido a la falta de tiempo).

Creo que el problema principal para mí son los plazos del proyecto (que no participo en su creación); No me importa hacer todo este trabajo, pero casi nunca siento que tengo suficiente tiempo para hacerlo sin horas extras, lo cual no puedo hacer indefinidamente porque me agotaré (como me ha pasado en el pasado). ¿Esto es normal? ¿Soy solo un desarrollador lento? Si soy lento, ¿de qué manera puedo seguir siendo un trabajador eficaz?

Realmente no podemos decirle si es lento o no, pero lo común que es trabajar horas extras y cómo debe manejar el hecho de que le den una fecha límite demasiado corta son probablemente buenas preguntas. ¿Sabe su gerente (de producto) cuántas horas extra está trabajando? ¿Te han pedido específicamente que hagas horas extras? Debo agregar que cualquiera, independientemente de cuán lento o rápido, puede recibir (o asumir) más trabajo que puede terminar sin horas extra. Eso realmente no dice mucho sobre tu habilidad.
Gracias por estos comentarios; me hace pensar que definitivamente vale la pena hacer estimaciones de tiempo más realistas y no tratar de meterlas en una escala de tiempo comprimida para que el proyecto se vea normal y mantenga contento al PM. Siempre subestimar las tareas me hace sentir presionado cuando inevitablemente toman más tiempo. Así que creo que de ahora en adelante, haré estimaciones realistas, tal vez incluso ligeramente infladas, incluso si revelan expectativas poco realistas del proyecto. Ese no es mi problema; Solo puedo hacer mucho en la cantidad de tiempo dada sin horas extra indefinidas y agotamiento.
@DaveyDaveDave tienes toda la razón, he experimentado exactamente lo mismo. Es fácil para mí caer en la mentalidad de "Bueno, puedo quedarme un poco más y terminar esto..." Es un mal hábito en el que estoy trabajando para ser más disciplinado.

Respuestas (11)

Podría decirle "sí/no, esto es/no es razonable", pero ¿quién dice que yo mismo no soy un desarrollador lento o que tengo la misma opinión que su gerente? Estas cosas son muy subjetivas y difíciles de etiquetar objetivamente.

Sin embargo, hay límites concretos a los que te enfrentas.

Horas de trabajo, para uno. ¿Están pagando sus horas extras? Porque si no lo es, sin embargo, es (implícitamente) requerido, esa es una gran bandera roja

Casi nunca siento que tengo suficiente tiempo para hacerlo sin horas extras, lo cual no puedo hacer indefinidamente porque simplemente me agotaré (como me ha pasado en el pasado). ¿Esto es normal? ¿Soy solo un desarrollador lento?

INCLUSO SI (y eso es un gran SI) fuera realmente un desarrollador lento, nadie debería obligarse a agotarse repetidamente o asumir tareas que no pueden manejar.

Independientemente de si la empresa aplica una presión más que razonable o si solo puede hacer frente a una presión menos que razonable, debe cuidarse a sí mismo y a sus necesidades. No todos pueden manejar todas las situaciones, y eso está perfectamente bien.

Menciono esto no porque crea que usted tiene la culpa o es incapaz (porque creo que la empresa tiene la culpa aquí, más sobre eso más adelante).
Menciono esto porque hay un tono subyacente de que usted asume cosas que dañan activamente su salud mental y su calidad de vida en beneficio de la empresa, que nunca es saludable.


También está el tropo genérico de la gerencia que maximiza las ganancias más allá de los límites razonables. Esto viene en dos variantes: aquellos que reducen la calidad de la producción y aquellos que aumentan la presión sobre el personal trabajando en exceso y/o pagándolos de menos.

Parece que estás tratando con ambos. La gerencia no permite ningún tiempo para las prácticas de desarrollo adecuadas que ha enumerado, por lo que no permite que se realice el trabajo adecuado y, al mismo tiempo, sobrecarga a su personal al hacer que realicen más trabajo del que razonablemente pueden hacer en las horas. están contratados.

No puedo decirle qué hacer, pero por experiencia, este tipo de situaciones son difíciles, si no imposibles, de resolver desde la posición del empleado. El conductor del automóvil tiene el control para conducir el automóvil contra una pared si así lo desea, y la gerencia es igualmente capaz de tomar malas decisiones comerciales y atenerse a ellas. No digo que sea bueno, o que debamos quedarnos de brazos cruzados, pero cuando llega el momento, un empleado no puede decirle a su gerente cómo administrar su empresa, incluso si está siendo mal administrada.

Es posible que la gerencia simplemente esté equivocada y escuche cuando se les explican los problemas, pero en mi humilde opinión (y experiencia) las probabilidades de que eso suceda son muy pocas. La gerencia ya ha demostrado que prioriza las ganancias sobre la calidad de vida del personal y (lamentablemente) pocas personas renunciarían a las ganancias para mejorar la comodidad de otras personas.


La siguiente parte es puramente subjetiva y anecdótica.

Has tocado muchas, muchas banderas rojas que he encontrado antes.

  • Empresa que ejerce una presión interminable sobre su personal.
  • Sin interés en la calidad de vida del personal o cualquier otra cosa que no genere una ganancia financiera directa
  • Las ganancias y los plazos son lo único que importa ("por lo general, varias cosas tienen que ser desmarcadas debido a la falta de tiempo").
  • La felicidad del cliente se ignora cuando no genera ganancias directas ("[no es] lo que querían los usuarios, aunque técnicamente cumple con la mayoría de sus requisitos").
  • Sin visión de futuro o planificación futura más allá de la fecha límite de entrega. Sin documentación, bases de código infladas, falta de herramientas o fácil depuración, ...
  • Los líderes no tienen las habilidades básicas de su propio negocio (es decir, el desarrollo de software). Por lo general, esto se puede mitigar pidiendo consejo a otras personas con dichas habilidades, pero en su caso parece que se descuida.
  • "Simplemente haga todo lo que pueda" se utiliza como respuesta predeterminada de los líderes del equipo, lo que indica que los plazos se utilizan como herramientas de aplicación de presión, a diferencia de los plazos en los que razonablemente se puede esperar que algo se termine. Incluso en las mejores empresas, pueden ocurrir retrasos. Pero según su descripción, la empresa está quemando a sus empleados y luego haciendo que los empleados cubran el hecho de que la empresa los quemó.

Si desea quedarse en un sistema de este tipo es su elección. No lo haría, y he renunciado a todos los proyectos de todos los clientes en los que los problemas resultaron ser endémicos o perpetuados deliberadamente por gerentes motivados por las ganancias.

Tienes que hacer tu propia elección. Quiero agregar que el hecho de que ya se haya quemado en el pasado sugiere fuertemente que la situación en la que se encuentra actualmente no es buena para su salud, tanto mental como física.

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .

Lo más importante que debe hacer es comenzar a ajustar sus plazos y aumentar sus estimaciones.

Me parece que estás dando "estimaciones de días soleados", como solíamos llamarlas. Sus estimaciones suponen que todo va según lo planeado y sin distracciones, cuando es fácil ver con solo la descripción que nos ha dado, que está trabajando en un caos absoluto con sorpresas desagradables al acecho detrás de cada esquina y al acecho en cada sombra.

Tome la mayor cantidad de días en los que perdió un objetivo, agregue cinco a eso y aumente sus estimaciones futuras en esa cantidad. Cuando comience a cumplir con los plazos, puede ajustar ese número.

"Gestionar las expectativas" es más que una palabra de moda. Si dice que algo tardará cuatro días y lo entrega en tres, el cliente dirá "wow, me lo puso a toda marcha", y estará satisfecho. Si tarda los mismos tres días, pero dijiste dos, el cliente se enfadará porque llegas tarde.

Además, eso te da un respiro, en caso de que suceda algo inesperado, para que no sientas que estás a punto de agotarte.

Su empresa ha creado un entorno caótico con el que puede trabajar, pero no puede aplicar los estándares de un taller ordenado a uno caótico. necesita "valorar" el caos en sus estimaciones.

Además, no seas tan duro contigo mismo. No eres ni lento, ni abrumado. Solo necesita ajustar sus expectativas y las de sus clientes al permitir el tiempo adicional que necesitará.

Además, plantee las inquietudes y los retrasos a la gerencia tan pronto como los tenga. Yo le decía a mi gente "Antes de una fecha límite es una preocupación, después es una excusa".

Si comienza a recibir rechazo de la gerencia, simplemente diga la verdad: está haciendo todo lo que puede con los recursos proporcionados.

A veces le decía a mi gerencia: "Una pinta no puede contener un galón, cuando contiene una pinta, ya está haciendo lo mejor que puede".

Me gusta esta respuesta en particular. Cuando la gerencia lo presiona por plazos cuando no sabe lo suficiente de los hechos, siempre debe darse más tiempo. Además, agregaría cuando me pidan escalas de tiempo que mi estimación depende de no encontrar ningún obstáculo. Luego, si encuentra inconvenientes que llevarán más tiempo, mantenga informado al equipo del proyecto, si lo culpan, puede decir que la especificación del proyecto que le dieron antes de que le pidieran los plazos estaba incompleta, así que pregúntele al BA que lo armó por qué.
Rellenar las estimaciones no siempre es tan fácil. Comencé como ingeniero de software junior hace un año y estaba dando plazos realmente optimistas, digamos 1 mes en lugar de 3-4 meses, 1 semana en lugar de 1 mes. Ahora, estoy empezando a dar estimaciones más realistas, y a las personas que no son SW no les gusta nada. La presión estaba sobre mí antes, porque prometía más cosas de las que podía cumplir, ahora tienen que decidir si quieren que haga A o B.
No estoy seguro de si está proponiendo estas estimaciones, sino que la gerencia se las impone.
@nick012000 si se impone, es aún MÁS importante dar estimaciones más realistas, porque entonces NO TIENE ABSOLUTAMENTE DEFENSA contra sus jefes si no lo hace.
@Old_Lamplighter Entonces, ¿aplicar el Factor Scotty ?
@AndrewMorton absolutamente. Hay una razón por la que uno resonó así.
OP dijo: "el problema principal para mí son los plazos del proyecto (que no estoy involucrado en la creación)"
@nick012000 para aclarar, me dirán que hay un nuevo proyecto por el que ya hemos ofertado y acordado un cronograma general (sin mi conocimiento). La forma en que se producen los plazos es que el PM le preguntará a un desarrollador sénior cuál cree que podría ser una cantidad de tiempo razonable para hacer el proyecto en función de un resumen y un vistazo rápido a los requisitos. Esto podría ser, digamos, 3-4 meses. Luego obtengo esos requisitos y me piden que cree elementos de trabajo y haga estimaciones de tiempo para ellos. Mi error fue que solía pensar que todo tenía que encajar en esta escala de tiempo, lo que generalmente no es factible.
@Touchdown también, recuerde que a veces los plazos/escalas de tiempo no lo son. Casi me mato para cumplir con una fecha límite una vez, solo para descubrir que era una "fecha límite suave".
Mover la ETA solo funciona en una organización saludable, o al menos en una que es solo marginalmente mala y puede volver a ser razonable. Cuando se trabaja en un entorno tóxico como el OP, solo hará que el OP se vea mal, en lugar de informar al gerente que hay un problema. Es posible, pero poco probable, que el OP pueda reunirse con el administrador superior para informarles cuán malas son las prácticas comerciales, pero eso solo tiene una posibilidad si se trata de una empresa pequeña y no son codiciosos o completamente mal informados. He trabajado en una empresa muy pequeña que se convirtió en OP y se fue porque no era razonable.
@computercarguy ¿Cómo es útil ese comentario?
@Old_Lamplighter, parece pensar que el OP puede solucionar el problema simplemente estimando los proyectos de manera diferente, y mi comentario fue para decir que eso no funcionará en lugares tóxicos. Mi experiencia es que el jefe pide una estimación, considera que mi estimación es demasiado larga, luego la reduce a su propia estimación y discute conmigo sobre por qué la mía es demasiado larga, independientemente de por qué creo que la mía es precisa. Luego se quejan de por qué no cumplí con su corto ETA. Luego, el jefe decidió que yo era un mal empleado después de que esto se repitiera varias veces y me dieron un PIP por sus expectativas poco razonables.
Un lugar de trabajo razonable entenderá que están presionando demasiado y se relajarán, pero no parece que el OP esté trabajando en uno de estos lugares. Así que sí, su respuesta funcionaría si el jefe fuera razonable, pero no en esta situación.
@computercarguy entonces, la alternativa es???????

Enhorabuena, se ha encontrado con el triángulo de la gestión de proyectos , que suele resumirse como "bueno, rápido, barato: elija dos" por muy buenas razones.

Estás trabajando para una consultoría, también conocida como taller de carrocería porque venden el tiempo (cuerpos) de desarrolladores como tú a los clientes. Los dos puntos del triángulo que implícitamente elige una consultoría son rápidos y baratos, porque así lo eligen sus clientes.

En otras palabras, si trabaja en una consultoría, nunca se le permitirá entregar un trabajo de alta calidad, porque va en contra de su modelo de negocio. Si intentas entregar un trabajo de alta calidad, te verás encaminado a un papel sin salida como el de soporte, porque te conviertes en una responsabilidad para la empresa al tomarte más tiempo que un desarrollador al que no le importa la calidad.

Esto nunca va a cambiar mientras trabaje para esa empresa (o, de hecho, para cualquier consultoría). Confía en mí, trabajé en uno durante 8 años (o unos 5 años de más).

Por lo tanto, la única respuesta a su enigma es "encontrar otro trabajo" - difícil en este clima económico, pero no imposible. Especialmente si puede demostrar que se preocupa por la calidad del código: hay casas de desarrollo dirigidas por personas que se preocupan por ese tipo de cosas. Simplemente no vuelvas a trabajar para una consultoría.

En realidad, la pregunta que debería hacerse es: ¿cuánto tiempo puede permanecer en un trabajo en el que no tiene la oportunidad de practicar y aprender cómo hacer software correctamente? ¿Cuánto tiempo puede permitirse permanecer en un trabajo que lo está desgastando activamente? ¿Cuánto tiempo puede permitirse permanecer en un trabajo que felizmente lo despedirá en cualquier momento si puede encontrar a alguien que sea más "productivo" que usted en términos de líneas de código emitidas?

Y tenga cuidado si (con suerte cuando) decide irse. La compañía hará mucho para tratar de mantenerlo, porque entienden que un desarrollador que se preocupa es más útil que una máquina humana generadora de código con muerte cerebral fungible, pero nunca podrán cumplir con el promesas que le harán con respecto a la mejora de la calidad. Una vez más, he tenido esta experiencia.

Acordado. Lo mejor que puede hacer es recopilar todos los aprendizajes y experiencias y pasar a un mejor trabajo.
Estoy de acuerdo con el sentimiento general de tu respuesta, pero no todas las consultorías son así. Los que son más caros para sus clientes y pagan más a sus desarrolladores suelen ser menos así.
@CodeCaster Y no todos los nazis son seres humanos terribles (disculpas por invocar la Ley de Godwin), pero no escuchas a la gente hablar del buen 0,1% precisamente porque es una pequeña minoría. Lo mismo se aplica a las consultorías: hay unicornios entre la horda de lobos, pero alentar al solicitante a buscar un unicornio cuando es más probable que encuentre un lobo no es útil.
Como alguien que ha trabajado en una consultoría, puedo decir categóricamente que cada palabra de esta respuesta es cierta. Si realmente desea ser apreciado por un trabajo de calidad, es posible que deba irse, y mi consejo sería que lo haga más temprano que tarde.
Esto: los incentivos en un negocio se contraponen a un tipo de desarrollador que se preocupa por la calidad que claramente es el OP. Las únicas opciones son irse, quemarse y marcharse, o quedarse como una persona quemada.
@TomášKafka Desafortunadamente, tomé la tercera opción. Requirió una estadía prolongada en el hospital para que finalmente viera la luz y saliera. Ojalá pueda salvar a alguien más de eso.
Supongo que esto depende de la cultura, en mi parte del mundo las consultorías no son tan malas. En mi caso, tenemos el beneficio de los clientes que valoran las buenas soluciones estables y no les importa pagar más por un trabajo de calidad.
@Alex parece que encontraste una buena consultoría entonces.
Supongo que es más "elegir como máximo dos". Créanme, vi algunos gerentes que decían "bueno, rápido, barato: no elegimos ninguno"

Esa es una de las razones por las que dejo mi empresa actual. Pero vayamos a usted, desde el cliente en el que estoy, a menudo me pusieron en un proyecto después de las reuniones para decidir las características y el tiempo de desarrollo, así que muchas veces recibía un correo electrónico con "Oye, tienes que hacer esto". antes del 10 de junio" (generalmente seguido de "¿Qué es esto?") y también tengo otros proyectos en los que trabajar. Siempre termino trabajando horas extra que nadie me paga.

Un día después de la tercera vez que esto sucedió, llevé a mis supervisores directos, llamémoslos gerentes de proyecto y en una reunión les pedí amablemente: "Por favor, antes de darle tiempo de desarrollo a los clientes, hablemos de eso porque no es solo una cuestión de hacer algo sino también de gestionar las prioridades y evitar los días de entrega cruzada", a partir de ese día las cosas fueron un poco mejor.

Así que mi consejo es que hagas un discurso muy claro y conciso con tus jefes de proyecto y les hagas entender que eres quien da un cronograma de desarrollo, no ellos, ya que ellos nunca están involucrados.

Para ampliar esto un poco: el cronograma de desarrollo debe basarse en una combinación de lo que el gerente de producto (y el cliente) quiere y lo que es posible, que es una estimación que debe provenir completamente del equipo de desarrollo.
La cuestión es que, si bien siempre vale la pena intentar hablar con los supervisores, falla más a menudo de lo que funciona. Si falla, cambiar de trabajo suele ser la única opción viable.
Sí es cierto. Básicamente, lo que debe suceder es: 1. El PM no tiene que decir que sí a todo lo que el cliente quiere sin confrontar a los desarrolladores. 2. Los desarrolladores deben incluirse en la discusión de características con el cliente para brindar un marco de tiempo exacto y un mejor producto al final del desarrollo. Si tiene grupos que no colaboran correctamente, se vuelve confuso y, en general, no aprecio el filtro no técnico que un PM podría implementar al pasarme la solicitud.
Como estás viendo, esto solo funciona en un ambiente saludable. Los OP parecen ser SOP para no preocuparse por sus desarrolladores, solo por el dinero y los plazos. Es probable que los CxO quieran obtener una reputación de "hacer cualquier cosa de forma rápida y económica" para que puedan obtener más negocios. Desafortunadamente, esto no es saludable en absoluto, lo que usted y el OP están viendo. Si es demasiado malo, el OP, como usted, no podrá cambiar la opinión de los mgmts, por lo que irse puede ser la única opción.
Sí, lo sé, pero intentar la vía de la comunicación amistosa y señalar los problemas que está trayendo esta gestión debería revolver un poco las cosas. Por supuesto, si después de esta reunión las cosas no cambian, OP busca un nuevo trabajo, ¡huye! :)

Para responder si eres lento o sobrecargado, habla con tus compañeros de equipo. Vea si están de acuerdo con sus estimaciones y si también necesitan hacer horas extras no pagadas para cumplir con sus plazos. Si todos están de acuerdo en que una tarea debe tomar una semana pero el jefe quiere que se haga en 3 días, no lo va a despedir por tomar una semana porque cualquier reemplazo tomaría al menos una semana para hacer la misma tarea.

También puede ver si la empresa tiene dificultades para contratar y retener personal.

En el improbable caso de que descubra que realmente es lento en comparación con otros con la misma experiencia, averigüe qué partes del trabajo hace más rápido o mejor que ellos, y vea si puede pasar a ventas/gestión de proyectos/pruebas o lo que te venga bien.

En el caso mucho más probable de que la compañía esté sacrificando su salud y su tiempo libre por sus ganancias, interprete "haga lo que pueda" como "haga lo que pueda en el tiempo que le pagamos, y deje el problema al vendedor que subcotizó en para ganar un contrato que no era rentable".

No hay necesidad de ser militante acerca de salir a tiempo, especialmente si le causaría un problema a un colega, pero (a diferencia de los directores) no tienes capital en la empresa y no te beneficias de tus horas extra.

Hice esto y descubrí que esto es bastante común entre los desarrolladores, incluso entre los más veteranos; uno incluso dijo que era "absolutamente loco". Es tranquilizador saber que no soy solo yo después de todo. Simplemente parece ser el enfoque de desarrollo aceptado (¿a regañadientes?) en la empresa.
Los gerentes lo despedirán absolutamente si no puede administrar sus marcos de tiempo poco realistas. Piensan que podrán encontrar a alguien mejor, más rápido y más barato que simplemente pueda ingresar al trabajo sin capacitación en el SOP o la base de código. He estado en ambos lados de eso, en detrimento mío en ambos sentidos. Y el vendedor "nunca se equivoca", es "siempre" el desarrollador el que no puede entregar lo que otra persona prometió. Es BS, pero es cómo operan muchas empresas. Estuve allí, hice eso, no quiero volver allí.
@computercarguy: ¿qué sucedió después de que despidieron a alguien y no pudieron reclutar a alguien más rápido?
@RobinBennett, no lo sé. Nunca traté de averiguarlo. Pensé que si no se preocupaban por mí mientras trabajaba allí, no me preocuparía por ellos después de irme. Ok, entonces escuché acerca de 1 lugar, años después, que después de que me fui, muchas otras personas se fueron por la misma razón. Y supongo que está ese otro lugar que me reemplazó con un par de desarrolladores extranjeros. Estoy seguro de que muchos de los lugares de "contratación temporal" aún no han contratado, ya que eso suele ser una farsa, y no solo yo hablando aquí. Escuché de los reclutadores que la parte de "contratar" es solo para conseguir más candidatos.

Debido a que somos una empresa tan pequeña, tenemos que:

  1. Toma cualquier trabajo que podamos conseguir, y
  2. Sea lo más barato posible

La forma en que nos mantenemos económicos es básicamente comprimir el desarrollo en el menor tiempo posible.

Entonces, ¿su empresa pudo tener la trifecta de eficiencia (calidad, gestión o como se llame)? Personas, tiempo y dinero O Rápido, barato y bueno (donde solo puede seleccionar dos).

Si es barato y tiene poca gente para hacer el trabajo por poder. Necesitas poner énfasis en el tiempo. ¿Crees que algo toma 10 horas? Escribe 15 o incluso 17.

Una vez hice un experimento. Escribí cuánto tiempo realmente dedico a hacer algo. No solo hacerlo, sino dejar de trabajar en otra cosa, revisar, mirar, guardar, volver a mi trabajo anterior y estar exactamente donde lo dejé. 2 minutos del trabajo B se convirtieron en 30 minutos sin hacer el trabajo A.

Ahora, como te diste cuenta, eso te golpeó. Porque su empresa no tiene la trifecta. Es pagar la deuda de tiempo/presupuesto contigo. Estás haciendo horas extra, estás dedicando tiempo a ponerte al día con la documentación o los bloques mientras piensas que TÚ estás tomando tiempo de todo el proyecto.

El primer problema que debe enfrentar es que la empresa lo ve como SU problema. El producto es barato y a tiempo. Por lo tanto, no hay problema con retrasar o cambiar los plazos. Tampoco tiene una marca de tiempo "mire, este problema nos llevó 5 días, así que tuvimos que retrasar la fecha límite 6 días".

Puedes contar las horas extras. Es medible. Pero no puedes medir cuánto te esfuerzas durante toda la semana. Es posible que esté haciendo 2 horas adicionales además de sus 8. Pero puede exprimir 15 horas allí. Sin frenos, sin comprobaciones, sin repeticiones, recortes en la escritura de documentación, etc.

Entonces, si toma Project Time y agrega horas extras, será el 75% del tiempo real necesario para entregar el producto. Producto con el que estará satisfecho, con buena calidad general, documentos, etc.

Hacer todo lo que puedas no debe interpretarse como "Haz todo lo que puedas en este tiempo". Debería ser "Haz solo las cosas que PUEDES y haz solo las cosas que puedas encajar en el intervalo de tiempo".

Podrías ser las dos cosas al mismo tiempo. Para tu velocidad de trabajo (que no solo depende de tu desempeño/habilidades/motivación sino también del tipo de tareas y calidad de preparación) tienes demasiadas tareas.

Todo lo que puede hacer es asumir que se trata de una sobrecarga y mejorar la situación (rechazar, procesar de manera más eficiente, dar retroalimentación para reducir la necesidad de rehacer, etc.). La pregunta de si es demasiado lento o no será notada por sus compañeros y gerente, en relación con el resto del personal. Solo asegúrese de que tengan la imagen completa (son minuciosos, amigables, útiles, confiables o producen menos necesidad de reelaboración, luego asegúrese de que esto se tenga en cuenta).

Pídale a su jefe que priorice los artículos, para que pueda dejar los artículos menos necesarios cuando se le acabe el tiempo.

Si bien nadie más ha mencionado esto, "simplemente haga todo lo que pueda" es una parte importante del proceso Agile. Básicamente, cuando un proyecto comienza a tener restricciones de tiempo y costo, hay dos soluciones posibles: la primera es aumentar el tiempo y el costo del proyecto para terminar todo (la solución Waterfall). El segundo es descartar las partes menos críticas del proyecto para poder enviar un Producto Mínimo Viable en la fecha límite: el enfoque Agile.

Como tal, es importante si su jefe le pide que simplemente "haga todo lo que pueda" para que priorice qué partes del proyecto son las más importantes, para que pueda terminarlas primero. Entonces, al final, has hecho todo lo que has podido y lo que no hiciste en el tiempo disponible simplemente no se hizo.

Una herramienta común utilizada para este tipo de priorización en Agile es MoSCoW: debe hacer, debería hacer, podría hacer y no hará. Debe evitar asignar más del 60% de sus artículos de Story Point a Must para evitar perder flexibilidad.

Haber obtenido la aceptación de su jefe en esto, también puede ayudarlo a liberarse de la sensación de que necesita trabajar horas extras para hacer todo, porque no necesita hacerlo todo. Solo necesita hacer todo lo que pueda, en su tiempo normal de trabajo.

Gracias, esta es una buena respuesta y algo que le plantearé a mi gerente. Creo que mi empresa no deja en claro exactamente cuánta responsabilidad tienen los desarrolladores; el proceso Agile no se explica, solo se nos dice: "Esto es lo que tenemos que hacer antes de esta fecha límite". Entonces, en cierto modo, parece que se nos dice que seamos ágiles, pero se espera que entreguemos Waterfall.
@Touchdown Una herramienta común utilizada para este tipo de priorización en Agile es MoSCoW: debe hacer, debería hacer, podría hacer y no hará. Debe evitar asignar más del 60% de sus artículos de Story Point a Must para evitar perder flexibilidad.

¡Bienvenido al desarrollo de software! Cada desarrollador tiene esta misma experiencia. Sus únicos problemas son la estimación y el equilibrio entre el trabajo y la vida personal, no la "lentitud".

Que eres lento es justo lo que tu jefe de proyecto quiere que creas. Concéntrese en una estimación precisa, no en "ser más rápido". De esa manera, si su estimación no se alinea con la fecha límite artificial, puede tener conversaciones difíciles sobre el alcance y las expectativas muy temprano en el proyecto, en lugar de muy tarde. Y no permita que lo presionen para hacer horas extras semana tras semana. Si haces eso, inevitablemente te quemarás y serás miserable y menos productivo.

¿Cómo sabes que OP no es lento? Hay mucha variabilidad en la productividad de los programadores.
Realmente no importa si OP es lento o no. El problema es que la expectativa sobre su productividad excede su productividad real. En Lean Manufacturing esto se llama Overburdening y es una forma de ineficiencia en la organización . Un desarrollador junior puede ser mucho más lento que un desarrollador senior, pero no se volverá más rápido de la noche a la mañana si lo desea. Percibo que su problema real es el establecimiento y la estimación de expectativas, no el desempeño. Si realmente no se está desempeñando, pero está estimando con precisión, entonces la gerencia puede traer más miembros del equipo o reasignar el trabajo antes de que se convierta en una crisis.

por lo general pone en proyectos ya sea en solitario o en un equipo muy pequeño

La próxima vez que esto suceda, vea cómo se compara su rendimiento con el del resto del equipo. Si le toma 2 semanas terminar la estimación de 3 días, vea si otros ingenieros también cometen errores de estimación similares. Cuando desarrollen una función, revise su código e intente ver cuánto tiempo le tomaría hacerlo y compararlo con su tiempo.

Dado que eres relativamente nuevo, está bien si estás al 60-70 % de la productividad de las personas mayores, pero si estás al 20-30 %, eso no es bueno.

Desafortunadamente, una gran cantidad de trabajo por contrato es así. La "solución" más común es implementar exactamente y solo lo que requiere la especificación. Las pruebas se limitan a la forma precisa en que la especificación dice que se utilizará el software. Olvídate de hacer un buen trabajo, cumplir el contrato y nada más.

Como ejemplo, un software que fue subcontratado hace unos años vino a mi manera de probar. Me di cuenta de que si ingresaba más de 20 caracteres en uno de los campos de entrada, fallaría. Cuando lo consulté, respondieron con una cotización para cambiar la especificación y agregar pruebas adicionales, porque originalmente mi empresa no especificó "no debe bloquearse si ingresa más de 20 caracteres".

Apesta, la mayoría de la gente odia hacer un mal trabajo cuando saben que pueden hacerlo mejor, pero es lo que quiere su cliente. Si quisieran más, especificarían más y pagarían más.

La buena noticia es que con 3 años de experiencia en una selección de diferentes tecnologías, tuvo que aprender que está en una excelente posición para encontrar un mejor trabajo de desarrollador de nivel medio.