Los pros y los contras de Big Design Up Front y lo que hago en su lugar

¿Puede una cascada correr? ¿Puede un galgo reducir la velocidad?

He dirigido mi propio negocio de diseño independiente durante 18 años. Comenzando cuando la cascada era todo lo que teníamos, luego pasando a extrema agilidad y todas las variaciones intermedias.

Como autónomo, trabajo para una variedad de clientes, grandes y pequeños, en una amplia gama de productos digitales: desde sencillos sitios web de folletos hasta complejas aplicaciones web y móviles. Todavía uso un proceso en cascada BDUF cuando se adapta al proyecto. Otras veces, el ambiente exige un enfoque ágil y altamente iterativo.

A menudo cambio entre estas metodologías de diseño polar-opuesto a diario, mientras cambio el enfoque de un proyecto a otro. Me ayudó a adaptarme a ambos y a darme cuenta de las fortalezas y debilidades de cada proceso. Practicar ambas metodologías con regularidad me coloca en una posición única para comprender cuándo una funciona mejor que la otra. Y me hizo pensar si BDUF todavía tiene un lugar en el mundo del diseño y desarrollo moderno.

Antes de discutir BDUF frente a Agile, comencemos con algunas definiciones:

Cascada

Un enfoque de diseño secuencial relativamente lineal donde el progreso fluye en gran parte en una dirección ("hacia abajo" como una cascada) a través de las fases de investigación, concepción, diseño, construcción, pruebas, implementación y mantenimiento.

Acercar o alejar

En diseño, alejarse significa enfocarse en la integridad de un sistema de diseño, evaluar su efectividad y asegurarse de que funcione en conjunto de manera consistente y armoniosa.

Acercar es el acto de enfocarse en una parte más pequeña del todo (una característica, página, flujo de usuarios, etc.), un trabajo de diseño práctico que crea soluciones de diseño individuales.

Iteración

Un proceso cíclico de creación de prototipos, pruebas, análisis y refinamiento de un producto o proceso. Sobre la base de los resultados de los comentarios o pruebas de las partes interesadas, se realizan cambios y mejoras.

Integración

Un acto de combinar en un todo integral.

Costo, barato, caro

En este contexto, se refiere al tiempo y esfuerzo dedicados al diseño o desarrollo, no necesariamente una relación directa con el costo monetario.

Ingeniería, desarrollo, codificación

Se usa de manera algo intercambiable: para trazar la línea entre donde se detiene el diseño y comienza la implementación técnica.

¿Qué es BDUF?

Big Design Up Front es un enfoque en el que el diseño de un sitio web, una aplicación o un software se completa y perfecciona por adelantado, antes de que comience su implementación. Requiere un proceso en cascada y se basa en la predicción . Esta fue la metodología predominante durante décadas antes de la llegada de Agile. Los sitios web y el software solían ser muy costosos de construir, por lo que era necesario solucionar tantos problemas como fuera posible antes de que sucediera la costosa ingeniería.

Piense en ello como trazar el rumbo de un barco. Si ya conoce la ruta, el clima, las corrientes y las mareas, puede planificar el viaje antes de llegar al agua. Una vez que abandona el puerto, no tiene que perder el tiempo para orientarse.

Los diseñadores que han existido por más de una década, o que trabajan fuera de la burbuja de “productos” de Silicon Valley, probablemente perfeccionaron su oficio usando BDUF. Es su zona de confort de diseño.

Supuestos BDUF

  • Podemos conocer completamente los objetivos, los requisitos y el alcance del diseño desde el principio, y es poco probable que experimenten cambios significativos.
  • Las revisiones de diseño son generalmente más difíciles y caras de realizar después de que se ha escrito el código. La eficiencia se gana clasificando tanto como sea posible en el diseño.
  • Podemos y debemos juzgar si una solución de diseño es buena o efectiva antes de que sea completamente funcional.
  • Los ingenieros pueden identificar los desafíos de desarrollo mientras aún están en diseño, por lo que podemos encontrar soluciones de diseño alternativas antes de llegar al código.
  • Si se les deja a sus propios dispositivos, los ingenieros harán un lío de cosas. El diseño debe marcar el camino o la experiencia de usuario y la estética sufrirán.

Puntos fuertes de BDUF

  • Si sabe exactamente lo que quiere, esta es la forma más eficaz de conseguirlo.
  • Dado que todo el diseño se realiza a la vez, existe una gran oportunidad para alejarse, integrarse con frecuencia y diseñar de manera integral.
  • Los diseñadores diseñan y refinan la experiencia del usuario, y esa documentación de diseño dicta la funcionalidad que deben desarrollar los ingenieros. Cada papel juega con sus puntos fuertes.
  • Diseño fácil de calcular y programar, ya que es una cantidad conocida desde el principio.

Debilidades de BDUF

  • No se adapta fácilmente a los cambios de alcance o pivota en el propósito. Es posible que deba nadar de regreso a la cascada para comenzar de nuevo si los objetivos o los requisitos cambian.
  • El diseño no se prueba y valida tan fácilmente, porque ninguna parte es completamente funcional hasta cerca del final del proceso lineal.
  • No aprovecha los nuevos aprendizajes o las mejores soluciones que puedan surgir durante las etapas posteriores del proceso en cascada.

Diseño ágil y emergente

La metodología de desarrollo ágil fue diseñada para proyectos complejos, no deterministas y no lineales. Prioriza ser adaptativo en lugar de predictivo , lo que reduce el acto de fe que se necesita antes de obtener la evidencia.

Agile tiene como objetivo dividir un proyecto en partes más pequeñas. Los equipos multifuncionales luego usan sprints con marcos de tiempo cortos para trabajar en versiones aceleradas de todo el proceso en cascada, con el objetivo de diseñar, producir y probar algo en cada sprint. Luego, sus aprendizajes se integran en el alcance evolutivo del proyecto y ayudan a dar forma a la dirección de los próximos sprints e iteraciones.

Si BDUF es un viaje muy bien documentado planeado con anticipación, Agile está sacando su barco del puerto con solo una vaga idea de a dónde va, y luego explorando, planificando y adaptándose en el agua. Es una serie de pequeñas apuestas en lugar de una sola apuesta bien calculada.

El Manifiesto para el desarrollo de software ágil se basa en doce principios (a través de Wikipedia):

  1. Satisfacción del cliente mediante la entrega temprana y continua de software valioso.
  2. Bienvenidos requisitos cambiantes, incluso en el desarrollo tardío.
  3. Entregue software que funcione con frecuencia (semanas en lugar de meses)
  4. Cooperación estrecha y diaria entre empresarios y desarrolladores
  5. Los proyectos se basan en personas motivadas, en las que se debe confiar
  6. La conversación cara a cara es la mejor forma de comunicación (coubicación)
  7. El software que funciona es la principal medida de progreso
  8. Desarrollo sostenible, capaz de mantener un ritmo constante
  9. Atención continua a la excelencia técnica y al buen diseño
  10. La simplicidad, el arte de maximizar la cantidad de trabajo no realizado, es esencial
  11. Las mejores arquitecturas, requisitos y diseños surgen de equipos autoorganizados
  12. Regularmente, el equipo reflexiona sobre cómo ser más efectivo y se ajusta en consecuencia

Diseño emergente

Las metodologías ágiles requieren una nueva forma de pensar que se ha descrito como diseño emergente . El diseño emergente tiene como objetivo hacer lo contrario que BDUF: diseño mínimo o nulo por adelantado para que podamos realizar el envío, las pruebas y la validación lo más rápido posible.

Supuestos de diseño emergentes

  • No podemos entender completamente el problema o su solución ideal sin muchas pruebas y aprendizaje. Los requisitos y el diseño deben deducirse , por lo que es mejor comenzar a construir las pruebas lo antes posible.
  • El cambio es más barato en el código que durante el diseño. (O al menos igualmente caro).
  • El diseño no se puede juzgar ni validar hasta que esté construido y se pueda utilizar en el mundo real.
  • Los diseñadores pueden crear soluciones técnicamente imposibles o costosas si su trabajo no se integra y prueba con frecuencia.
  • Demasiado diseño por adelantado (y cualquier documentación) es un esfuerzo inútil, ya que los requisitos cambiarán o surgirán nuevas soluciones incluso antes de que se implemente el diseño.

Fortalezas emergentes del diseño

  • El diseño evoluciona con el tiempo y puede aprovechar los nuevos aprendizajes.
  • El diseño es un esfuerzo colaborativo y no un proceso solitario y solitario. Como dijo Manuel Dahm: "Esto requiere que el diseñador se mueva de la solitaria torre de marfil del genio creativo al apartamento compartido de la mente del equipo".
  • El diseño y el desarrollo ocurren en paralelo, lo que facilita una tremenda colaboración entre equipos y una rápida resolución de problemas. Los incendios pueden apagarse a la primera señal de humo.
  • Poco queda a la suposición o la intuición. El diseño solo se implementa si los datos demuestran su éxito. Se elimina la incertidumbre sobre la efectividad del diseño.

Debilidades de diseño emergentes

  • Agile puede centrarse demasiado en la producción y fomenta la fábrica de funciones.
  • Irónicamente, el contexto de los sprints permite una integración más frecuente en el nivel macro, pero ofrece menos oportunidades para un pensamiento de diseño profundo y holístico. Un enfoque demasiado estrecho y una visión insuficiente significa menos posibilidades de integración en el nivel de los sistemas de diseño. Esto puede llevar a un diseño mediocre e inconsistente que carece de brillo y plenitud.
  • El diseño es difícil de costear porque es un objetivo en movimiento dictado por los comentarios de las partes interesadas y los ciclos de sprint. Es posible que el alcance total del diseño no surja hasta la mitad (o más) de un proyecto.
  • El ciclo de sprint y repetición a menudo concluye cuando surge un diseño "suficientemente bueno". Luego se envía sin muchas oportunidades de elevar el diseño más allá de la mediocridad. Los diseñadores pierden sus prioridades de control de calidad cuando las decisiones las dictan únicamente los datos.

Diseño suficiente por adelantado

"El diseño grande al principio es tonto, pero no hacer un diseño al frente es aún más tonto". Dave Thomas

Solía ​​pensar que la agilidad era enemiga del buen diseño, pero luego me di cuenta de que la mala agilidad no deja espacio para un buen diseño. Me resistí a adoptar una forma ágil o trabajar porque muchas de mis experiencias resaltaban las debilidades del diseño emergente y no las compensaban con sus fortalezas.

En ¿Es ágil el enemigo (del buen diseño)? , John Cutler dice que la cascada “buena” supera al Agile abusado cualquier día.

Tendría que estar de acuerdo.

Cualquier metodología de desarrollo de productos intenta responder preguntas de diseño cuando es más económico . Los partidarios ágiles creen firmemente que es más barato en pequeños incrementos durante los sprints cortos. BDUF funciona cuando es más barato desde el principio y se considera como una totalidad. Pero ninguno de ellos funciona para los diseñadores cuando no producen un buen resultado de diseño.

No creo que ni BDUF ni Agile encuentren el equilibrio adecuado. Está en algún punto intermedio. Por lo tanto, mi metodología de diseño preferida es Just Enough Design Up Front (JEDUF).

JEDUF al rescate

JEDUF reconoce que se requiere un diseño general para permitir un trabajo más detallado. No siempre podemos disparar desde la cadera con "desarrollo vaquero". Primero, necesitamos algunos postes de gol. Necesitamos arquitectura y diseño para sentar las bases de nuestros sprints.

  • El trabajo de diseño inicial puede ser difícil, pero siempre debe ser lo mejor posible, dada la información disponible en ese momento. Sí, mucho más trabajo de diseño tendrá que surgir más adelante, pero no queremos rehacer ningún diseño si podemos hacerlo bien la primera vez.
  • El diseño inicial debe considerarse como los aspectos más fundamentales de un proyecto o producto, por lo que informa las prioridades para construir y probar durante los primeros sprints. En otros términos, identifique los riesgos más altos y luego diseñe primero para ellos. Esto sienta las bases para un sistema de diseño, sometido a pruebas de estrés temprano y, a menudo, por piezas desarrolladas de mayor valor. Algunos llaman a este diseño inicial necesario el "todo primitivo".

Más allá de JEDUF

Mi propia versión de JEDUF incluye oportunidades para la descompresión e integración del diseño en varias etapas durante el proyecto. Yo lo llamo Just Enough Design Up Front & Middle .

JEDUF & M equilibra pequeños sprints (enfoque ampliado) y oportunidades para la integración de diseño holístico desde una perspectiva amplia. Cuando ha surgido una masa crítica de funcionalidad, el ciclo de sprint se puede pausar para considerar un diseño más profundo.

Piense en ello como otra sesión de diseño inicial, solo sus objetivos son de cohesión en lugar de exploración . Una vez que el sistema de diseño se siente holístico y bajo control, integrando y armonizando las revisiones de sprints y aprendizajes anteriores, comienza la siguiente ronda de sprints. Depende del diseñador reconocer cuándo se requiere la necesidad de una ruptura de diseño “intermedia” y no dejar que el proyecto quede atrapado en las minucias.

Descubrí que JEDUF & M es la metodología de diseño definitiva. Equilibra la capacidad de adaptación, las iteraciones rápidas y el enfoque en la validación, lo que hace que la agilidad sea tan poderosa, al tiempo que permite períodos de descanso, integración y pensamiento del sistema de diseño holístico que pueden perderse entre los sprints y la entrega de funciones.

Si, incluso bajo este equilibrio ideal de metodologías, se siente ansioso por la cantidad de incertidumbres, piénselo de esta manera: acepte la incertidumbre . Ahora está en condiciones de moldear en qué se convertirán esas restricciones , en lugar de tenerlas predeterminadas y dictadas. Esto es más responsabilidad, pero también más flexibilidad. Si maneja ese papel con aplomo, obtendrá un resultado sin arrepentimientos ni compromisos, incluso si el proceso es más desafiante en el camino.

Todavía hay mucho espacio para BDUF

No puedes darte el lujo de descartar a este dinosaurio por completo. Big Design Up Front es un modelo muy válido y eficiente cuando se utiliza en los proyectos adecuados.

El beneficio del diseño inicial aumenta a medida que disminuye la complejidad del sistema.

No todos los diseñadores están trabajando en aplicaciones empresariales complejas, con objetivos variables de partes interesadas y soluciones inciertas. No todos los proyectos requieren una exploración, pruebas y validación masivas por parte del cliente.

No puedo imaginarme tomando un enfoque ágil para diseñar y construir un sitio web simple para folletos o portafolios. Mis clientes pensarían que estoy loco. En estos casos, BDUF todavía está vivo y coleando.

BDUF y Agile son dos extremos de un solo espectro. Identifique lo que necesita validar antes, durante y después de la construcción, y luego adapte su proceso para facilitar el diseño correcto en el momento adecuado. La mayoría de los proyectos se ubicarán en algún lugar en el medio del espectro, no en las franjas radicales.

Y no olvidemos que el proceso en cascada no tiene por qué ser tan rígido y lineal como lo hacen parecer sus críticos. BDUF aún puede "entregar temprano y con frecuencia", recopilar comentarios de las partes interesadas, iterar rápidamente y evolucionar con el tiempo. Es solo que esta evolución ocurre completamente en el ámbito del diseño.

Podemos hacer mini-cascadas dentro de nuestra gran cascada. Hay muchas formas útiles de lograr pequeñas validaciones y avanzar sin que todo un equipo multifuncional lo introduzca directamente en el código y se apresure a enviarlo.

BDUF no significa que no haya capacidad para aprender, adaptarse y mejorar el diseño a través de comentarios e iteraciones. Si eso es lo que crees que es BDUF, ¿quizás lo has estado haciendo mal todos estos años?

Por favor ? c vuelta si encuentra esto valioso, y? f O me llow f o más escribir de esta manera, a medida que desarrollo de 18 años de conocimientos de diseño independiente?

Suscríbete para recibir mis mejores artículos en tu bandeja de entrada.

Esta historia también se puede encontrar en solowork.co