¿Qué son los documentos de diseño de software?
Un documento de diseño de software, a veces denominado "especificación de diseño de software", es un plan detallado para desarrollar una pieza de software. Debe describir la funcionalidad del software terminado (especificaciones) y los planes de tu equipo para desarrollarlo (cronograma, objetivos, etc.).
Tanto si eres un contratista independiente o un gerente de proyectos en una gran empresa, hay algo indudable: para cualquier proyecto que lleve más de un mes, deberías crear un SDD antes de comenzar a programar. Es tentador saltearse los pasos de planificación y dedicarse directamente a la programación. Después de todo, los documentos de diseño de software no son exactamente divertidos. Pero confía en nosotros: tomarte el tiempo para crear un buen SDD te ahorrará dolores de cabeza en el futuro.
Los documentos de diseño de software desglosan casi todos los aspectos de un proyecto de desarrollo de software: ¿qué problema solucionará el software? ¿Cómo será el producto final? ¿Cómo funciona la arquitectura interna? (Hablaremos de los detalles de lo que debes incluir en tu SDD más adelante).
¿Por qué son importantes los SDD?
Si eres un desarrollador, tal vez te ha pasado esto: escribiste miles de líneas de código y luego te diste cuenta de que tú y el cliente tenían visiones completamente diferentes del proyecto. Eso son miles de líneas de código (y quién sabe cuántas horas de trabajo) que podrías tener que desechar.
Al crear un documento de diseño de software, tu equipo de ingeniería y las otras partes interesadas pueden establecer expectativas precisas para el proyecto antes de comenzar a programar. Aunque no hay una forma segura de evitar la reelaboración de los elementos del proyecto, un SDD es un buen punto de partida.
Los SDD también ayudan a agilizar el proceso de codificación. Para crear uno, debes pensar en toda la arquitectura de tu sistema antes de escribir cualquier código. Esto te permite anticipar cualquier inconveniente u obstáculo y planificar en torno a ellos. A medida que los distintos miembros del equipo trabajan en la creación de sus respectivas partes del software, existe un documento centralizado que describe las funciones, las dependencias y otra información útil.
Qué incluir en los documentos de diseño de software
Ahora que tenemos una visión general del camino, es hora de ponernos puntillosos. ¿Cómo se ve realmente un documento de diseño de software?
Aunque cada documento será único, la estructura general de los SDD es bastante similar en todos los proyectos. Al crear el tuyo, asegúrate de incluir estos elementos.
Título, autores y revisores
Puede parecer obvio, pero lo hemos incluido por las dudas. Te sorprenderían las cosas que la gente olvida. Al principio de tu SDD, recuerda incluir el título del proyecto, los autores (del documento, no del software) y los revisores (por lo general, partes involucradas que no son de ingeniería).
Descripción funcional
Con esta sección, intentas responder una pregunta simple: ¿qué hace el software? Por supuesto, para responderla a fondo, tendrás que profundizar un poco más. En la descripción funcional, deberías cubrir el manejo de errores, los procedimientos de inicio único, las limitaciones de los usuarios y otros detalles similares.
Interfaz de usuario
Es muy probable que tu proyecto de codificación sea una aplicación, lo que significa que tendrá una interfaz de usuario (si el proyecto es una biblioteca o algo similar, no habrá interfaz). Mientras los clientes, diseñadores de UX y programadores analizan y planifican la interfaz de usuario, es fácil que haya malentendidos. Si el cliente no comunica adecuadamente su idea, tus equipos pueden construir una interfaz de usuario cuyo diseño sea rechazado.
La buena noticia es que estos contratiempos son, en su mayor parte, totalmente evitables. Solo necesitas hablar sobre algunos temas con el cliente antes de iniciar la etapa de desarrollo. ¿Cambian ciertos elementos de la interfaz (animaciones)? ¿Qué elementos son botones? ¿A cuántas pantallas únicas puede navegar el usuario? Y, por supuesto, ¿qué aspecto tiene todo esto?
Y hay más buenas noticias: ¡los wireframes pueden ayudarte a responder todas esas preguntas! Cuando el cliente explique su idea de la interfaz de usuario (quizás mediante bocetos en bruto), tus equipos deberían crear wireframes.
Una vez que el cliente los apruebe, inclúyelos en la sección de interfaz de usuario del documento de diseño de software.