¿Escribes código malo cuando estás bajo presión? [cerrado]

14

Cuando está bajo presión, se acerca la fecha límite y un gerente le está respirando en el cuello, ¿se encuentra comenzando a escribir un código incorrecto? ¿El TDD y las mejores prácticas pasan por alto para poder hacer las cosas? ¿Qué haces en situaciones como esa? ¿Cuáles fueron tus experiencias?

ysolik
fuente
Permíteme desafiarte de una manera importante: algunas de las mejores y más grandes innovaciones que he creado han sido producto de una necesidad urgente e inmediata. A veces, el calor de la batalla trae un enfoque nítido que días y días de pontificación y artesanía no inspiran.
user1172763

Respuestas:

31

En una palabra, si. Cualquiera que le diga lo contrario probablemente esté, en el mejor de los casos, equivocado.

Sin embargo, la clave es aprovechar su experiencia para escribir código que sea menos malo. Resista la tentación de poner algo para que "funcione" si es posible, porque no lo hará. Aún debe seguir algún tipo de proceso (ya sea el suyo o el de su empresa, o una combinación de ambos).

La experiencia me dice que es mucho mejor ( jadear ) pasar el programa un par de días para evitar reparaciones de una semana, especialmente cuando "bajo presión" significa un lanzamiento acelerado a la producción. Si se está apresurando a liberar el código, los probadores probablemente también tengan prisa por sellarlo.

Wonko el cuerdo
fuente
Daría más 10 por el post, muy bien dicho
maz3tt
16

Si el equipo está en apuros, entonces algo se hizo mal.

La falta de plazos es una señal de mala planificación y estimación. Reconozca que se perderá el plazo y resuelva el problema. A veces no tienes control sobre la planificación o la estimación. Identifique quién lo hace y asegúrese de que sepan que esto se hizo por error.

En una situación en la que la fecha límite no se puede mover, usted saca las bebidas altamente cafeinadas y se apresura. Identifique cualquier cosa que pueda sacrificar y recórtela. Tome lo que queda e impleméntelo lo más rápido posible. Esto causará problemas como inestabilidad, errores extraños, prácticas de codificación ineficientes, correcciones de curitas y todo tipo de otros horrores. No es necesariamente un código incorrecto , pero no es ideal .

Una solución del 50% que la gente realmente tiene resuelve más problemas y sobrevive más tiempo que una solución del 99% que nadie tiene porque está en su laboratorio donde está puliendo sin parar. El envío es una característica .

De Joel en el software The Duct Tape Programmer .

No se puede tratar el código ideal si se trata . El código que no se ha tratado se acumulará y, a su vez, hará que los cambios adicionales sean más difíciles, si no imposibles. Puede llegar al punto en que la aplicación se pega de forma tan interdependiente que las adiciones solo pueden ser realizadas por los programadores más cuidadosos a un costo de tiempo exorbitante. Si bien el envío es una característica, por lo que es mantenibilidad

Josh K
fuente
1
Lo único que cambiaría es la palabra "usted" en su punto principal. Yo diría que para cada miembro de su equipo hay un factor multiplicativo de cosas que podrían salir mal, y para cada dependencia externa, hay algún factor exponencial de cosas que podrían salir mal. O viceversa. ;)
Wonko the Sane
2
@ysolik: Vea la nueva redacción. Puede que no sea tu culpa que la planificación o estimación haya sido FUBAR.
Josh K
2
@ysolik: Escribe menos del código ideal para cumplir con una fecha límite y reza para tener la oportunidad de arreglarlo más tarde. Con una planificación adecuada, esto nunca sucede.
Josh K
2
Nunca digas nunca ... :)
Wonko the Sane
3
@Wonko: Correcto, con una planificación adecuada, esto rara vez sucede.
Josh K
7

Soy un gran admirador de la artesanía del software: escribir código limpio lo mejor que puedo, etc., pero a veces he tenido que apresurarme en momentos en que el tiempo es corto y se acerca una fecha límite. Realmente trato de no hacer esto lo mejor que puedo, pero a veces no puedes escapar de eso.

Algunas personas dirán "Bueno, así es la vida, tienes que enviar", pero realmente no estoy de acuerdo con esta actitud.

Al escribir un código apresurado, puede terminar sacando el software a tiempo, pero lo que sucede cuando, durante los próximos días, termina recibiendo llamadas de soporte relacionadas con errores en el software (estos errores viven en la misma pieza de código que apresuró para terminar). ¿O recibe un cliente enojado que le pregunta por qué su módulo de informes ya no funciona, a pesar de que prometió que estaría bien el día del lanzamiento?

Está muy bien decir "Tienes que enviar" , pero hay una diferencia entre parecer eficiente y parecer un trabajador descuidado.

Jason Evans
fuente
5

Si. Pero siempre vuelve a perseguirme más tarde.

Dima
fuente
2

Cuando estoy bajo una situación de estrés, mi código está destinado a hacer el trabajo. Eso es. No me concentro en la eficiencia y otros asuntos, lo cual es malo, en mi opinión.

Aunque trabajaré en eso.

ivorykoder
fuente
Haz que funcione, hazlo bien
Juha
1

No creo que personalmente escriba un código significativamente peor, pero entrego un producto peor.

Cuando nos enfrentamos a una fecha límite arbitraria e imposible, escatimamos en el proceso de desarrollo. Hacemos revisiones de código más superficiales (o las omitimos por completo). Probamos menos, omitimos las pruebas unitarias detalladas para las pruebas de integración de tipo de verificación puntual, luego intentamos contar la prueba de integración como una calificación formal. Tendemos a pasar por alto las anomalías durante las pruebas si no están directamente vinculadas a los criterios de aprobación / rechazo. Nos saltamos las actualizaciones de documentación, no verificamos dos veces las notas de la versión, nos olvidamos de buscar en la lista de entregables los archivos que ya no son necesarios.

El código fuente que escribe durante una crisis puede ser de alta calidad, pero es casi seguro que se enviará como parte de un producto de mala calidad.

AShelly
fuente
0

Depende

¿Es la presión porque no hay forma de que todo se pueda hacer y porque se están agregando nuevas características importantes horas antes del lanzamiento?

¡Código malo en camino!

Pero si es porque el cronograma es realmente muy apretado, pero el plan general es sólido y solo tengo que trabajar mucho más de lo habitual y mantenerme enfocado continuamente mientras modifico algunas características, escucho y listo ... Entonces produzco un código mucho mejor que si el horario permite toneladas de tiempo. Incluso si eso significa que no escribo todas las pruebas unitarias, sino que cubro las partes principales del código.

ElGringoGrande
fuente
Oooh: buen comentario, excepto que la última oración me asusta un poco.
Wonko el cuerdo
Bien. Eso no significa que nunca se escribirán. Da miedo, pero creo que eso me ayuda a mantener la concentración. Y hay pruebas unitarias, simplemente no 100% de cobertura. Más como 66%.
ElGringoGrande
El único problema es que el 34% que no está cubierto es el nuevo código que apresura, y no el código ya establecido que no es tan probable que (todos) rompan con sus cambios. No quiere decir que no todos lo hayamos hecho, solo que es una propuesta aterradora.
Wonko el cuerdo
0

Conozco a alguien que nunca escribe mal código bajo presión. También tiene algunos frijoles mágicos que te pueden interesar.

Todo el mundo escribe un código incorrecto a veces y los plazos inminentes son la razón habitual, el truco es evitar entrar en esa situación en primer lugar (y eso tampoco es fácil).

FinnNk
fuente