Decodificando el Diseño de Software, Parte 1

En la lectura de libros sobre diseño en general, había adquirido uno sobre diseño de software. No se asuste, por el momento no pienso entrar en los intríngulis de la disciplina. Es un pequeño libro pocas páginas, del 2016 y publicado por el MIT (Instituto Tecnológico de Massachussets).
El prefacio parte con la siguiente pregunta: ¿Que hace a un diseñador de software un experto?

Experiencia y cierta habilidad innata parece ser una respuesta insuficiente. Aún cuando parte de lo anterior es cierto resultan poco útiles desde el punto de vista del aprendizaje y la generalización.  Los expertos desarrollan hábitos específicos, tienen prácticas adquiridas y principios observados que emplean de forma deliberada en su trabajo. El libro ofrece, en suma, una mirada a tales hábitos, prácticas y principios en los practicantes expertos.
La construcción de software, agrega, no está limitada por la tecnología sino por la imaginación. Sin embargo, el software que surge de tal imaginación hacia la realidad es complejo y el entorno en el cual ocurre tal realidad es más complejo aún. La única forma de afrontar estos retos es mediante la excelencia en diseño.

Los expertos lo hacen simple

 

  • Prefieren soluciones simples
  • Resuelven los problemas simples primero
  • Aplican el principio de «Divide y vencerás»
  • Los expertos no sobre-generalizan
  • Diseñan abstracciones elegantes
  • Introducen metáforas

Prefieren soluciones simples: Porque saben que son mas fáciles comunicar, cambiar y mantener.aun habiendo encontrado una solución a un problema, continúan buscando una  solución mas simple.

Resuelven los problemas simples primero. Resuelven el problema principal, pero de manera mas acotada. Esto permite encontrar rápidamente soluciones candidatas y arrojan ideas sobre como seguir con las mas complejas.

Aplican el principio de «Divide y vencerás»: Resuelven las partes sin perder de vista el todo.

Los expertos no sobre-generalizan: Prefieren soluciones generales frente a las particulares, sin embrago no sobre-generalizan, esto es, se dan cuenta cuando la sobre-generalización agrega complejidad y esfuerzo. Un balance entre reutilizar una solución y la optimización para la situación inmediata.

Diseñan abstracciones elegantes: Una buena abstracción hace evidente que es importante.

Introducen metáforas: Frecuentemente emplean metáforas para discutir o explicar partes de un diseño. Las ideas y las asunciones se yacen mas evidentes mientras se fomenta la colaboración.

Nota al pié

Son apuntes de parte de los autores de muy alto nivel para mi gusto y los ejemplos brillan por su ausencia.

Sin embargo, algunas de éstas generalidades me van a ayudar a pensar mientras sigo trabajando sobre Diseño como anoté antes.

Post Relacionados

 

Deja un comentario