Casi todas las respuestas se han dicho a muerte en numerosos lugares aquí y en otros lugares. O, al menos, lo he oído morir. Aprenda su IDE, aprenda a escribir más rápido, use marcos, use generación de código, etc., etc. Sí, por supuesto, estas cosas ayudarán y dudo que haya muchos programadores que los dominen todos. Pero al ser el tipo de programador que hace estas preguntas y frecuenta sitios como Stack Overflow, ya sabías estas cosas . ¿Simplemente quería repetirlos aquí o simplemente quería desahogarse un poco?
Pero, ¿y si pudiéramos llegar a ese estado? Me refiero a dominar todas estas sugerencias? ¿Qué pasaría entonces? Bien. Supongo que las líneas de tiempo se reducirán aún más. Y nuevamente, volveremos a una percepción de calidad. Quiero decir, nuestro oficio definitivamente ha progresado y se ha vuelto más y más productivo a lo largo de las décadas. Pero, ¿ha aumentado la calidad durante este tiempo (excluyendo los primeros años, por supuesto)?
Mi respuesta es simple: ¡el software de calidad lleva tiempo ! Solo puede intercambiar uno por el otro (calidad / velocidad). Pero sí, todos sabemos que, sin embargo, no somos honestos sobre el grado en que esa compensación a menudo termina en el extremo de la velocidad de la escala. ¡Y somos mentirosos aún mayores al principio de los proyectos!
Yo digo que no tienes la culpa aquí. El problema es la percepción que tiene la gente de cuánto tiempo debe tomar el software de calidad. Nos engañamos creyendo que somos capaces de crear software de calidad con los tipos de cronogramas que nuestros gerentes o incluso estimamos. No hacemos software de calidad . Escribimos software que funciona pero a veces con destellos de calidad en ciertos rincones de una aplicación.
Entonces, ¿qué podemos hacer al respecto? No podemos convencer a nuestros jefes de que necesitamos duplicar o triplicar la inversión en cada uno de nuestros proyectos. Digo liderar con el ejemplo. Cree un software realmente excelente como proyecto paralelo. Dedique su propio tiempo y no se comprometa. Todo el tiempo presta atención a cómo progresas. Tome nota de las tareas aparentemente no relacionadas en las que ha tenido que dedicar una cantidad de tiempo inesperada y vea si puede justificarlo. Compare esto con todos los otros proyectos que ha trabajado. Se brutalmente honestocontigo mismo y con todos los aspectos de este análisis. ¿Se pueden descuidar las cosas adicionales que hizo con su software de calidad en proyectos "reales" en el trabajo? Pero tal vez tu intento falló. ¿Cuál fue la razón? ¿Te aburriste y te apresuraste a hacer las funciones principales? Todavía tengo que hacer algo como esto, por eso termino este pensamiento con algunas dudas, pero tengo la intención de darle una oportunidad real. Te mantendré informado :).
Finalmente, creo que la mayoría (si no todas) las evaluaciones de desempeño son retorcidas y extraordinariamente manipuladoras. No se puede acelerar la calidad y la velocidad al 100%. Su jefe debería calificarlo según un estándar establecido por la organización. El estándar de la organización en el intercambio entre calidad y velocidad. Imaginemos que OrangeSoft Inc. espera 33% de calidad y 66% de velocidad. Por lo tanto, si está escribiendo un código que tiene quizás un tercio de las pruebas unitarias, debería hacerlo, pero compensándolo con velocidad y tiempo de entrega reducido, ¡debe obtener un puntaje cercano al 100% en su revisión! (Estas son analogías bastante aproximadas pero entiendes el punto). Pero en cambio, lo que sucede es que Bob escribe código extremadamente rápido pero que es notoriamente defectuoso. Entonces, en su evaluación de rendimiento, obtendrá 3/5 en calidad y 5/5 en velocidad. Carol, por otro lado, escribe el código mucho más lento pero produce significativamente menos errores. Ella obtiene 5/5 de calidad pero 3/5 de velocidad. De cualquier manera, Bob y Carol quedan atrapados en su aumento. ¿Es posible que algún empleado obtenga una puntuación perfecta? ¿Es justo?