Cómo se desarrolla y actualiza el software?

El proceso de desarrollo suele ser algo así:

Alguien tiene una idea. Necesitan un nuevo informe, un nuevo campo añadido a una pantalla, una forma completamente nueva de hacer el punto de venta, un nuevo juego; realmente no importa. La idea se analiza y se convierte en algo que el ordenador pueda entender. A continuación, el ordenador se pone a prueba para ver si realmente ha entendido lo que le has dicho. Después de que haya demostrado su valía, se hace una fusión mental vulcana en un disco o CD para transferirla a un cliente de pago.

Cuando empecé había una separación real de funciones. El "analista" hacía el análisis real, creaba una especie de gráfico detallando los pasos del procedimiento a realizar. Esto se entregaba a un "programador" que, en algunos casos, creaba un pseudocódigo para convertir los pasos del procedimiento en instrucciones. Luego, el "codificador" convertía ese pseudocódigo en código real en el lenguaje que fuera.

Hoy, en mi caso, lo hago todo. Mi jefe me llama y me dice: "Rich quiere una pantalla de mantenimiento para poder definir las "secciones" del plano del restaurante, para asignar a los camareros a una sección." Convierto esa petición en código, saltándome muchos de los pasos porque los he estado haciendo durante 48 años, más o menos sé lo que son. Escribo, pruebo, corrijo mis errores, pruebo de nuevo, y corto una nueva versión que luego espero hasta > 11p edt para instalar.

La mayoría de las casas de software recibirían una solicitud de un cliente a través de un técnico de soporte al cliente que lo entregaría al departamento de programación donde un gerente lo asignaría a alguien. Ese alguien puede ser una sola persona o un equipo, dependiendo del tamaño de la organización y el tamaño del proyecto. Pueden tener un departamento de control de calidad (por suerte) que apruebe el corte final y lo entregue de nuevo a la cadena alimentaria.