El problema al que se refiere significa que se omitieron varias cosas, por lo tanto, el sistema resultante salió mal. Permítanme describir algunos de los pasos que faltan:
Gestión de calidad: ¡hazlo bien la primera vez! Nunca use hacks temporales o compromisos temporales. No se necesitará retrabajo. Todos los recursos se utilizan de manera eficiente y todo lo que hace es una contribución adecuada al proyecto.
Análisis de viabilidad: descubra las necesidades comerciales. Cree un caso de negocio para el proyecto.
Plan de proyecto: defina claramente su alcance inicial, planifique cómo se entregará la solución, cree una línea de base y cumpla con el plan. No pierdas tiempo en nada que no esté en el camino crítico.
Ingeniería de requisitos: obtenga requisitos comerciales (es decir, capture los procesos comerciales y determine qué operaciones comerciales deben ser compatibles con el sistema computarizado, traduzca las operaciones comerciales 1: 1 a los casos de uso del sistema). Validar y verificar! (¿Estamos construyendo lo correcto? ¿Estamos construyendo lo correcto?) Todos los requisitos deben estar vinculados a la necesidad comercial original.
Diseño de software: traduzca casos de uso y modelo de dominio en diseño de componentes y arquitectura de soluciones. Todos los componentes deben estar vinculados a los requisitos de RE.
Implementación: codifique el software como en el diseño. Todo el código debe estar vinculado a los componentes de SD.
Validación - Pruebas unitarias, pruebas de integración, rendimiento, ... (todos los casos de uso de RE ahora deberán ser probados)
Estos son algunos aspectos clave de un proceso de software. Las actividades mencionadas son parte de la Ingeniería de Software. Así es como se construye la solución de software adecuada para las necesidades comerciales reales, y se construye a tiempo, dentro del presupuesto y según las especificaciones.
Busque estos términos para crear un mejor software y hacerlo bien la primera vez:
- Análisis de viabilidad (especialmente cómo construir un Business Case)
- Gestión de proyectos (especialmente plan de proyectos y registro de riesgos con mitigación de riesgos)
- Ingeniería de requisitos (obtención, análisis, especificación, validación)
- Diseño de software (UML e ingeniería de software basada en componentes)
- Construcción de software (patrones de diseño, marcos, programación defensiva)
- Validación de software (pruebas unitarias, UAT, etc.)