Creo que tu pregunta crea algo así como una falsa dicotomía. En realidad, la decisión no es binaria ("¿Codifico lenta y cuidadosamente, o de manera rápida e imprudente?"), Sino que está en un espectro. Las dos opciones que presentaste están en ambos extremos.
Exactamente en qué parte del espectro desea estar depende mucho del producto en particular en el que esté trabajando y lo que sus clientes esperan de usted. Debe examinar las restricciones con las que está trabajando y luego tomar una decisión inteligente sobre qué tipo de proceso desea utilizar.
Por ejemplo, si está en una posición en la que es muy costoso corregir errores, o donde las fallas son potencialmente catastróficas, desea estar más cerca de la opción # 2. Software integrado, guía de misiles El código y las herramientas médicas son buenos ejemplos. Cuando corregir un error significaría recuperar millones de dólares en hardware, o cuando su error puede provocar la muerte de las personas, debe asegurarse de que funciona correctamente la primera vez.
El otro extremo del espectro es cuando el entorno empresarial exige cambios rápidos de código, pero es fácil corregir errores y las penalizaciones por fallas son bajas. las aplicaciones web a menudo se ajustan a esta descripción. Sus usuarios claman por nuevas características y cambios en la lógica de negocios, y quieren que se implementen ayer. Si se comete un pequeño error en el código, se requieren quince minutos para editar el script ofensivo, hacer que se revise el código de cambio y realizar una revisión. En este caso, siempre que maneje las expectativas de los usuarios de manera adecuada, aprenderá a ignorar el error ocasional siempre que responda a sus necesidades y mantenga un tiempo de respuesta rápido. Por supuesto, incluso al adoptar este enfoque, debe tener implementadas medidas de seguridad para evitar fallas catastróficas: mantener copias de seguridad, hacer revisiones de códigos y asegurarse de que tiene un buen proceso de revisión / revisión.
Creo que la realidad del desarrollo de software es que la mayoría de los proyectos se encuentran en algún lugar entre estos dos extremos. Por lo general, debe ser diligente en la prevención de errores, pero es posible que no desee un ciclo de lanzamiento de un año debido a un proceso de control de calidad engorroso.
Aparte de los factores ambientales que mencioné anteriormente, creo que la mejor manera de averiguar exactamente dónde debería estar es evaluar los comentarios de los usuarios. Si se sienten frustrados por los largos tiempos de espera para nuevas funciones, es posible que desee recortar un poco el proceso de control de calidad para ser más receptivos. Solo asegúrate de que eres extra rápido para corregir cualquier error que puedas introducir. Por otro lado, si exigen una fiabilidad absoluta, entonces asegúrate de tener suficientes medidas de seguridad para satisfacer esa demanda lo mejor que puedas.