Ciclo de Vida del Desarrollo de Software
Hacer un software no es sólo aprender un lenguaje de programación. Realmente lo que queremos es resolver un problema. Es decir, brindar una solución a el cliente o usuario final. Por lo tanto, para desarrollar un software óptimo, es necesario conocer el ciclo de vida del desarrollo de software.
Dependiendo de la metodología que se utilice el ciclo puede que se repita una o varias veces. Por ejemplo, en la metodología de cascada, el ciclo se ejecuta una sola vez, mientras que en la metodología ágil, el ciclo se repite varias veces.
Requerimientos
La primera etapa del ciclo de vida del desarrollo de software es recoger los requerimientos. Esto requiere de reuniones con el cliente para determinar sus objetivos. Aquí debemos listar las funciones que debe tener el software.
Los requerimientos deben documentarse. Esto es muy importante, ya que una buena documentación puede ayudar a la siguiente etapa, el diseño. Y también a resolver cualquier posible conflicto con el cliente.

El Diseño
Una vez que hemos recogido los requerimientos estamos listos para el diseño. Esta etapa consiste en elegir lenguaje de programación, arquitectura del software; paradigma de programación, funciones, procesos, comunicación entre procesos, etc.
La etapa de diseño es divertida y necesaria. Si antes de «echar código», analizas el problema y tratas de resolverlo en teoría, vas a descubrir problemas incluso antes de que aparezcan.
El diseño del software también debe documentarse 🙂
Desarrollo del Software
En esta etapa del ciclo de vida del software ya estamos listos para hacer nuestro programa. Ya sabemos los requerimientos, tenemos un diseño, y sólo es cuestión de hacer el código.
Esta debería ser una de las etapas más largas. También requiere de una buena coordinación del equipo para poder trabajar correctamente en conjunto.
Si estás trabajando con un lenguaje de scripting, te recomiendo que leas el post acerca de editores de texto.
Pruebas
En esta etapa del ciclo, hemos desarrollado los requerimientos y estamos listos para las pruebas. Usualmente se siguen una serie de protocolos para cumplir con todos los casos posibles. Incluso se deben probar los más descabellados.
Existen analistas que se encargan exclusivamente de verificar que el software funciona correctamente en todos los casos de prueba. Mi consejo es que si tú desarrollaste el software, no seas el que lo pruebe. El desarrollador sabe como hacer para que el software no falle. Dáselo a un tercero para que compruebes como lo hace fallar con el primer click.

Despliegue
En este punto, se han superado todas las etapas de sufrimiento, perdón, de desarrollo. (El autocorrector). Y ya estamos listos para liberar el software. Es decir, ya se puede instalar o proveer al cliente.

Diría que es la etapa más emocionante pero que más ansiedad genera. Todo ha sido puesto a prueba y nada puede «malir sal». Finalmente, es hora de entregar el software al cliente, y pasar a la siguiente etapa.
Operaciones y Mantenimiento
Dependiendo del acuerdo que se haya hecho con el cliente, la fase de operaciones puede o no depender de la empresa que desarrolla el software. Pero el mantenimiento, si lo más probable es que sea problema de los desarrolladores.
El mantenimiento puede incluir nuevas actualizaciones o resolución de bugs. Esta etapa puede entonces generar nuevos requerimientos en el cliente, pudiendo generar un nuevo ciclo.

