El desarrollo de software es un proceso iterativo, donde se añaden y refinan los requisitos en cada iteración hasta alcanzar una solución final.
Durante la etapa de diseño, actuamos como arquitectos para estructurar y definir el comportamiento del software. Es fundamental basarse en la recopilación de requisitos, escuchar al cliente y hacer preguntas relevantes y esclarecedoras.
Con los requisitos iniciales, podemos idear una solución, que se traduce en un diseño conceptual. Este diseño conceptual se convierte en un diseño técnico, con la creación de maquetas conceptuales y diagramas técnicos.
Las maquetas conceptuales ofrecen ideas iniciales para cumplir con los requisitos, enfocándose en la estructura del software, identificando componentes y sus relaciones, sin entrar en detalles técnicos.
En el diseño técnico, describimos cómo cada componente cumplirá con sus responsabilidades. Dividimos cada componente en partes más pequeñas y específicas. Al entender la composición de los componentes, podemos diseñarlos en detalle.
La comunicación y el feedback son esenciales en el diseño de la solución. Si los componentes y sus conexiones en el diseño conceptual no son alcanzables en el diseño técnico, debemos volver al diseño conceptual. Si las decisiones de diseño han sido validadas con el cliente y son viables técnicamente, los diagramas técnicos servirán para coordinar el trabajo con el equipo de ingeniería.