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
Comentarios de Hacker News
Resumen: