El sentido común dice que si te tomas tu tiempo en algo, te dará un mejor resultado, incluida la codificación. Sin embargo, estoy seguro de que hay un montón de código feo que tardó mucho tiempo en escribirse. ¿Por qué, con tanto tiempo, terminarías con un código difícil de leer o una mala arquitectura? Es probable porque hubo una falta de comprensión del problema o un modelo insuficiente del que se derivó la implementación. O se tomaron malas decisiones. O simplemente estaban involucrados malos programadores / programadores.
Dicho de otra manera, estoy seguro de que un programador competente puede escribir código hermoso en poco tiempo si conoce bien el problema y tiene una buena comprensión del lenguaje y modela el problema correctamente. Especialmente si conoce patrones que son aplicables al problema que se está resolviendo (lo que quiero decir con esto es que siento que soy un buen programador, pero generalmente reconozco que mi primer intento (quizás el segundo o el tercero) en un dominio en el que soy nuevo es va a ser descartable, simplemente porque la experiencia conduce a patrones, y los patrones conducen a la organización, buena arquitectura, limpieza).
Actualmente estoy pagando mi hipoteca refactorizando el código que está en su cuarta reescritura (y uno de los objetivos principales es que sea legible) con un historial de 5 años (ingresé hace 8 meses). Creo que lo que hace que el código sea más legible esta vez es 1) ahora entendemos el modelo / dominios / patrones * realmente * bien, 2) tenemos las personas adecuadas con las habilidades adecuadas para implementar el código, y 3 ) tenemos un gerente que nos brinda el tiempo y el apoyo que necesitamos para hacerlo con más cuidado.
- ¿Por qué crear más lenguajes de programación? ¿Cuáles son los lenguajes de programación más interesantes creados recientemente y cuáles son las ideas fundamentales que requieren su creación, en lugar de expresar las ideas como una parte nueva de un lenguaje existente?
- ¿Quiénes son algunas personas muy raras y exitosas en ingeniería?
- Cómo mantenerse actualizado como desarrollador web / software
- ¿Debería esperar mucho estrés si me cambio a un trabajo de desarrollador de software de EE?
- ¿Cuántas réplicas de esclavos necesito tener?
Entonces, mi sensación es esta: el tiempo es una pieza del rompecabezas, pero no es tanto un factor como comprender bien el problema, modelar la solución adecuadamente y hacer que personas de calidad hagan el trabajo. Al menos, eso es lo que he llegado a creer a lo largo de los años.