El Arte de un Código Limpio
Esta serie le muestra siete principios que tienen el poder de aumentar su potencial como programador en órdenes de magnitud.
Tabla de Contenidos
El Principio 80/20 en la Programación
¡Mantenlo Simple, Estúpido!
Construya un Producto Mínimo Viable
Escribir Código Limpio y Sencillo
La Optimización Prematura Es La Raíz de Todo Mal
Flujo
Haz Una Cosa Bien
_______
Hoy aprenderá sobre el principio 80/20 y sus implicaciones para los programadores. Puede encontrar la versión completa en el blog de Finxter aquí:
El Principio 80/20 en la Programación
El principio 80/20 tiene muchos nombres, pero el segundo más famoso es el principio de Pareto, que lleva el nombre de su descubridor Vilfredo Pareto. Entonces, ¿cómo funciona el principio y por qué debería importarle?
Fundamentos del Principio
El principio dice que la mayoría de los efectos provienen de la minoría de las causas. Por ejemplo,
la mayoría de los ingresos los obtiene la minoría de personas,
la mayoría de las innovaciones provienen de la minoría de investigadores,
la mayoría de los libros está escrita por la minoría de autores,
la mayoría de las ventas provienen de una minoría de los clientes, y
la mayoría de los goles son disparados por la minoría de jugadores de fútbol.
Lo más probable es que ya haya oído hablar del principio 80/20: está en todas partes en la literatura de productividad personal. La razón de su popularidad es doble.
En primer lugar, el principio le permite ser perezoso y productivo al mismo tiempo, si puede descubrir las cosas que importan y concentrarse en ellas sin descanso.
En segundo lugar, el principio es observable en todas partes en el mundo real. Es muy difícil incluso llegar a algún fenómeno en el que los efectos provengan igualmente de las causas. Adelante, intenta encontrar algunos ejemplos de distribuciones 50/50 en las que el 50% de los efectos provienen del 50% de las causas. Claro, la distribución no siempre es 80/20. Los números concretos pueden cambiar a 70/30, 90/10 o incluso 95/5.
Sin embargo, la distribución siempre está muy sesgada hacia la minoría de las causas que producen la mayoría de los efectos.
Pocas personas saben que el principio fue empleado con éxito por grandes empresas informáticas como IBM, Microsoft y Apple para construir computadoras que se sienten mucho más rápidas y para crear una experiencia de usuario que antes no se había escuchado.
¿Cómo lo hicieron?
Canalizaron su enfoque en el"20% superior", optimizando repetidamente el 20% del código que el usuario promedio ejecutaba con mayor frecuencia. No todo el código es igual. Una minoría del código tiene un impacto dominante en la experiencia del usuario, mientras que gran parte del código apenas tiene impacto.
Por ejemplo, haga doble clic en un icono varias veces al día—los programas deben carga muy rápido para una gran experiencia de usuario—pero usted puede cambiar los derechos de acceso de un archivo de sólo raramente, en todo caso. El principio 80/20 dice donde enfocar sus esfuerzos de optimización!
De hecho, el principio 80/20 es un principio de enfoque. Al centrarse en los pocos puntos vitales en lugar de los muchos triviales, puede 10x, incluso 100x su productividad en el trabajo. ¿No me crees? Vamos a calcular donde estos números vienen, suponiendo un subyacente 80/20 de distribución.
Digamos que en una empresa de 10 personas, solo dos personas producen el 80% de los resultados, mientras que ocho producen el 20% de los resultados, una consecuencia directa del principio 80/20. Si divide el 80% entre dos, obtendrá un rendimiento promedio del 40% por persona de alto rendimiento en la empresa. Al mismo tiempo, si se divide el 20% de los resultados generados por las ocho personas, se obtiene un promedio de 2,5% por persona de bajo rendimiento. La diferencia en el rendimiento es 16x!
Y tenga en cuenta que esto no es un teórico de la diferencia que se podría conseguir en algunas práctico configuración—este 16x diferencia en el promedio de rendimiento es ya un hecho en millones de organizaciones en todo el mundo.
La diferencia de rendimiento que existe: hay dos personas en su organización que crear más de 10 veces más de potencia que un "normal" de los empleados. La pregunta es: ¿cómo puede usted convertirse en uno de esos dos?
Implicaciones para los Codificadores
Veamos otro ejemplo: si estás leyendo esto, eres un programador. En la programación, los resultados son mucho más fuertemente sesgada hacia la parte superior que en la mayoría de los otros campos.
En lugar de 80/20, la distribución a menudo parece más 90/10. Bill Gates dijo que una "gran operador de tornos comandos varias veces el salario promedio de un operador de tornos, pero un gran escritor de software de código por valor de 10.000 veces el precio promedio de un escritor de software".
Según Gates, curiosamente, la diferencia entre a grande y a no es 16x como he argumentado anteriormente, sino que lo ha visto anteriormente. La diferencia entre un gran escritor de software y un promedio es 10,000 x!
¿Cómo puede ser esto?
Bueno, aquí hay una serie de razones por las que esta distribución de Pareto extrema se mantiene especialmente en el mundo del software:
Un gran programador puede resolver algunos problemas que el programador promedio simplemente no puede resolver. En algunos casos, esto lo hace infinitamente más productivo.
Un gran programador puede escribir código que es 10,000 veces más rápido que el código de un programador promedio. Esto puede hacer o deshacer la viabilidad de toda una línea de productos de una empresa de miles de millones de dólares.
Un gran programador escribirá código que tenga menos errores. Piense en el efecto de un solo error de seguridad en la reputación y la marca de Microsoft.
Un gran programador escribirá código que sea más fácil de extender, lo que puede mejorar la productividad de miles de desarrolladores que trabajan en su código en una etapa posterior del proceso de desarrollo de software.
Un gran programador pensará fuera de la caja y encontrará soluciones creativas para eludir los costosos esfuerzos de desarrollo y ayudar a concentrarse en las cosas más importantes.
Cada uno de los argumentos expuestos anteriormente muestran por qué un gran desarrollador de software puede ser 10.000 veces más productivo. En la práctica, una combinación de esos factores está en juego, de modo que la diferencia puede ser aún mayor.
La pregunta clave es: ¿cómo te conviertes en un gran programador?
Porque si puedes convertirte en un gran programador, siempre tendrás mucho más trabajo del que puedes manejar, y las compañías más exitosas del mundo, Google, Facebook, Amazon, Apple y Microsoft, estarán felices de pagarte grandes primas por tus servicios.
Una Métrica de Éxito para los Programadores
Desafortunadamente, la afirmación "conviértete en un gran programador" no es una métrica de éxito que puedas optimizar directamente, es un problema multidimensional.
Un gran programador puede significar muchas cosas. Él o ella
comprende el código rápidamente,
conoce algoritmos y estructuras de datos,
conoce las diferentes tecnologías y sus fortalezas y debilidades,
puede colaborar con otras personas,
es comunicativo y creativo,
se mantiene educado y conoce las formas de organizar el proceso de desarrollo de software, y
posee cientos de habilidades blandas y duras.
¡Pero no puedes dominar todos esos!
Si no te enfocas en los pocos vitales, te convertirás en esclavo de los muchos triviales. Para convertirte en un gran programador, debes concentrarte en los pocos vitales.
Una de esas pocas actividades vitales que asegurarán que te conviertas en un mejor programador con el tiempo es la métrica de éxito "escribe más líneas de código".
Si escribes más líneas de código que tus compañeros, te convertirás en un mejor programador que la mayoría de tus compañeros.
Es una simplificación del problema multidimensional, pero simplificamos hacia los pocos vitales: al optimizar la métrica proxy "escribir más líneas de código", aumentamos nuestras probabilidades de tener éxito en la métrica objetivo "convertirse en un gran escritor de código de software".
Pasos de Acción:
Comience su nuevo hábito de éxito hoy y realice un seguimiento de la cantidad de líneas de código escritas.
Nunca te vayas a la cama sin haber escrito al menos una línea de código (reduce la barrera), ¡pero trata de escribir más!
No hay comentarios.:
Publicar un comentario