3 puntos por GN⁺ 2024-05-06 | 1 comentarios | Compartir por WhatsApp

La simplicidad tiene ventajas, pero lamentablemente la complejidad se vende mejor

¿Por qué se vende mejor la complejidad?

  • La complejidad significa esfuerzo
    • Un paper con ideas difíciles y detalles técnicos recuerda al sudor y a las lágrimas
    • Un sistema con más componentes y funciones parece requerir más esfuerzo que uno con menos componentes
    • Dado que se percibe que un resultado complejo requiere más esfuerzo, se considera más difícil de construir y por eso más valioso
    • Debido al esfuerzo asociado con la complejidad, con frecuencia se la interpreta como de mayor calidad
  • La complejidad significa pericia
    • Un sistema complejo con muchas piezas móviles sugiere que quien lo diseña domina cada componente y sabe integrarlos
    • Un paper lleno de terminología técnica y demostraciones difíciles de entender muestra pericia en ese tema
    • Si una persona común no puede comprender una idea o un sistema complejo, entonces su creador probablemente sea un experto
  • La complejidad significa innovación
    • Un paper que inventa una arquitectura de modelo completamente nueva se reconoce como más novedoso que uno que aplica una red existente
    • Un sistema con componentes construidos desde cero se percibe como más creativo que uno que reutiliza partes existentes
    • Basarse en trabajo previo o reutilizarlo no se considera particularmente innovador
  • La complejidad significa más funcionalidades
    • Un sistema con componentes que se pueden combinar y alinear sugiere flexibilidad para cubrir una base más amplia
    • Como los sistemas complejos tienen más bloques que los simples, se cree que son más adaptables y responden mejor a los cambios

Por qué la simplicidad tiene ventajas

  • Las ideas y funcionalidades simples son más fáciles de entender y usar
    • Esto incrementa la adopción y genera impacto
    • También es más fácil comunicar y recibir retroalimentación
    • En cambio, un sistema complejo es difícil de explicar y gestionar, y al usuario le cuesta entender qué debe hacer y cómo hacerlo
  • Un sistema simple es más fácil de construir y escalar
    • Cuanto menos componentes tenga, más fácil es implementarlo
    • Si se usan tecnologías estándar de paquete, es más fácil encontrar personas capaces de implementarlo y mantenerlo
    • Los sistemas simples son más fáciles de comprender y probar porque tienen menos complejidad, menos código y menos interacciones dentro del sistema
    • Por el contrario, un sistema innecesariamente complejo requiere más tiempo y recursos, lo que lleva a ineficiencia y desperdicio
  • Un sistema simple tiene menor costo operativo
    • El despliegue del sistema no es la línea de llegada, sino la línea de salida
    • La mayor parte del esfuerzo se invierte cuando el sistema ya está en producción; al mantenerlo simple se reducen los costos de mantenimiento y se alarga su vida útil
  • En machine learning, las técnicas simples con frecuencia no rinden peor que las más sofisticadas
    • Los modelos basados en árboles superan a las redes neuronales profundas en datos tabulares de tamaño medio
    • Un algoritmo voraz supera a las redes neuronales de grafos en problemas de grafos de optimización combinatoria
    • El promedio simple muestra un rendimiento igual o mejor que optimizadores complejos en problemas de aprendizaje multitarea
    • En 32 papers, los métodos simples superan a los complejos en precisión de predicción
    • En recomendación y búsqueda, el producto punto rinde mejor que el filtrado colaborativo neuronal

El problema de recompensar la complejidad

  • Incentiva a las personas a diseñar de forma innecesariamente compleja
    • Usar un método simple o construir un sistema simple se percibe como menos valioso porque parece más fácil
    • Como resultado, las personas manipulan los sistemas para obtener más recompensa, y la solución más simple ya no es la más obvia
  • Fomenta una mentalidad de “no fue inventado aquí”, prefiriendo construir desde cero y evitar reutilizar componentes existentes, aunque eso podría ahorrar tiempo y esfuerzo
    • Esto termina desperdiciando tiempo y recursos y, a menudo, provocando peores resultados

Cómo pensar la complejidad

  • El objetivo debería ser resolver problemas complejos con la solución más simple posible
    • En vez de centrarse en la complejidad de la solución, deberíamos centrarnos en la complejidad del problema
    • Una solución simple demuestra una comprensión profunda del problema y la capacidad de evitar una solución más compleja y costosa
  • En vez de una solución compleja que intente resolver todo, conviene considerar varias soluciones enfocadas
    • La solución todo en uno normalmente no es tan flexible ni reutilizable como se espera
    • Al existir para múltiples casos de uso y partes interesadas, tiende a quedar “estrechamente acoplada” y requiere más ajustes durante la planificación y la migración
    • En cambio, operar y retirar sistemas de propósito único es más fácil

Opinión de GN⁺

  • Este texto explica de forma persuasiva por qué se prefiere la complejidad y cuáles son las ventajas de la simplicidad. Me pareció interesante que la complejidad sea preferida porque sugiere pericia, innovación y funciones.
  • Sin embargo, en todos los casos, no me parece que la solución más simple sea mejor. Según la naturaleza del problema, puede ser necesaria cierta complejidad. Parece importante hallar un equilibrio entre simplicidad y complejidad.
  • Me parecieron interesantes los casos en machine learning donde los modelos simples tienen mejor desempeño. Al desarrollar un modelo nuevo, conviene compararlo con métodos simples existentes.
  • En la evaluación de desempeño de la organización, hay que cuidar no dar tanto peso a la complejidad; en cambio, conviene enfocarse en la dificultad del problema y en la efectividad de la solución.
  • En el diseño de arquitectura, también puede ser buena idea considerar varios sistemas simples de propósito único, en lugar de un sistema complejo y universal.

1 comentarios

 
GN⁺ 2024-05-06
Comentarios de Hacker News

Resumen:

  • El enfoque de ir acumulando iterativamente MVP (producto mínimo viable) también puede ser una causa de complejidad.
  • Un sistema que recompensa más la resolución de problemas complejos puede, a la inversa, generar complejidad innecesaria.
  • Por la diferencia entre consumidores avanzados y consumidores aspiracionales, para las empresas a menudo es una elección razonable cumplir con lo que buscan estos últimos.
  • El software complejo y lleno de errores se prefiere justamente porque permite ocultarse detrás de él.
  • Nos criamos con la idea de que "más es mejor".
  • Como ingenieros, tendemos a sentir más atracción por lo desafiante que por una solución sencilla.
  • Existe una psicología contradictoria: preferir la simplicidad y, al mismo tiempo, rechazar lo que parece simple.
  • Es fácil criticar en retrospectiva una solución compleja, pero esa crítica queda vacía si no se conocen las limitaciones y requisitos de ese momento.
  • El principio de "tan simple como sea posible, pero no más simple de lo necesario" siempre es correcto, aunque su implementación no es sencilla.
  • Incluso cuando un proyecto empezó siendo simple, muchas veces el crecimiento de los requisitos lo vuelve inevitablemente complejo.