Es muy poco probable que solo “cualquiera” pueda escribir software de “alta calidad”, porque por su naturaleza, el desarrollo de software es el proceso de crear soluciones ÚNICAS a problemas específicos.
Las soluciones son únicas por este motivo: si ya existiera, no habría necesidad de escribir software en primer lugar.
“El problema” en busca de una solución no siempre es técnico.
- ¿Podría la tecnología VR salvar o destruir el planeta? Si tener relaciones sexuales con realidad virtual es tan bueno, las únicas personas que tienen relaciones sexuales reales serían aquellas que desean formar una familia.
- ¿Puede un generador de salida aleatorio ser 'Turing completo'?
- ¿Cuáles son algunos ejemplos concretos de temas de doctorado en bioinformática para alguien con experiencia en CS?
- ¿Los principales programadores utilizan principalmente editores de consola como Vim o Emacs?
- ¿Cuál es la diferencia entre la tecnología SAP hana y el Hadoop de Cloudera?
También puede ser organizativo o financiero, por lo que incluso si alguien ha resuelto un problema técnico, no está disponible para usted y / o es prohibitivamente costoso implementarlo en tiempo, dinero o ambos.
Dado que cada programa es único, la creatividad siempre es un elemento del diseño de software, y el uso de soluciones no probadas es, en sí mismo, inventivo.
Pero hay una advertencia……….
Nunca se liberará de la primera ley de la ingeniería de software: los errores son una realidad, ¡acostúmbrese!
Tan pronto como los errores entran en escena, comienzas a separar a los hombres de los niños … las niñas de las mujeres.
Muchos carecen de la paciencia o el temperamento para la depuración, y eso también es un componente crítico del proceso de creación de software.
Un invento creativo es tan bueno como los errores que le han arrancado el pelo.
Para cualquier error no trivial, a menos que haya IA, que el OP descartó, generalmente debe ir debajo del capó para encontrar el problema. Esto es similar a la precaución de los “magos malvados” dada por Hunt y Thomas en The Pragmatic Programmer (1999).