Entre las tendencias de 2023 encontramos nuevas formas de enfocar la programación, y una especialmente interesante es la del egoless programming. ¿Habías oído hablar de él? ¡Nosotros te contamos lo que es!
¿Qué es el egoless programming?
Encontramos la primera mención a este tipo de programación en el libro The Psychology of Computer Programming, de Gerald Weinberg.
La definición que nos aporta es el hábito de no considerar el código que desarrollamos como únicamente nuestro, sino como un artefacto de un equipo y aceptar el hecho de que puede tener errores y que puede ser mejorable. En resumen, la idea del egoless programming es minimizar nuestros factores personales para aumentar la calidad de nuestro código.
Este tipo de programación se basa fundamentalmente en el aprendizaje continuo y la colaboración entre personas.
Ventajas
- Es una opción mucho mejor para completar tareas complejas.
- Como utiliza canales de comunicación abiertos, es mucho más fácil que la información llegue a todos los miembros del equipo.
- En general, es más sencillo llegar a una conformidad total, lo que se traduce en una documentación más consistente.
- En la mayoría de las ocasiones, la satisfacción de los trabajadores aumenta.
Limitaciones
- Los proyectos llevan bastante más tiempo.
- Se puede experimentar un aumento de fallos debido a la descentralización del código, aunque esto suele depender íntegramente de la comunicación entre los miembros del equipo de desarrollo.
- Como ya no trabajan solos, a veces los programadores utilizan soluciones más arriesgadas para arreglar un problema.
- Si el proyecto es muy simple, puede llegar a complicarse a causa de los canales de comunicación (efecto “teléfono estropeado”).
Herramientas que utiliza
En el egoless programming, podemos encontrar diversas prácticas que nos ayudan a mejorar nuestro código, siempre partiendo desde un punto en el que debemos ser capaces de aceptar las críticas y asumir que todos cometemos errores y que, como se suele decir, “cuatro ojos ven más que dos”.
Algunas de estas prácticas son:
- Peer reviews: proceso por el que se revisa y aprueba el código que se desarrolla. Se trata de una evaluación de la calidad, utilizada por personas con competencias similares a las de los desarrolladores principales.
- Testing: proceso que verifica y valida la funcionalidad de un programa para garantizar que éste se encuentre libre de defectos y coincida con los requisitos que se le piden. Es un proceso paralelo al desarrollo.
- Pair programming: método que se usa principalmente en el desarrollo ágil de software, donde existen dos personas trabajando en un mismo código. Uno de ellos es el que se encarga de escribirlo (piloto), y la otra, lo supervisa en tiempo real (copiloto).
Los Diez Mandamientos del egoless programming
1. Entiende y acepta que cometerás errores.
Una vez aceptado que tu código no es perfecto, el objetivo es encontrar los errores lo más rápido posible, evitando así que lleguen a producción (el cliente final).
2. Tú no eres tu código.
Ten en cuenta que la meta es encontrar problemas, y que eso es lo que va a ocurrir. Lo importante es no tomártelo de forma personal y saber aceptar y utilizar a tu favor las críticas.
3. No importa cuánto sepas, siempre habrá alguien que sepa más.
Además, puedes aprender de los demás, y en eso también se basa el desarrollo personal. Es bueno el buscar y aceptar consejos e información de otros, en especial cuando crees que no es necesario.
4. No reescribas código sin consultarlo antes.
En muchas ocasiones, es complicado encontrar la diferencia entre corregir y reescribir el código. La idea no es perfeccionarlo por tu cuenta, sino escuchar y añadir las posibles mejorías que te recomiendan tus compañeros o revisores.
5. Trata a los que saben menos que tú con respeto, educación y paciencia.
Al contrario que en el punto 3, también te verás atrapado en situaciones con gente que no tiene conocimiento técnico, y que, además, tienen en su cabeza el estereotipo de “programador estándar”. En este punto, es fundamental controlar la ira y la impaciencia.
6. La única constante en el mundo es el cambio.
A lo largo de un desarrollo, se reciben cambios a los requisitos, plataformas o herramientas. Hay que tomárselo como retos, aceptarlos y evolucionar, no luchar contra ello como si fuesen problemas.
7. La única autoridad real deriva del conocimiento, no de la posición.
En los entornos egoless, lo que más se valora y se respeta es el conocimiento. Por eso, se ve como un símbolo de autoridad.
8. Lucha por lo que crees, pero acepta la derrota con deportividad.
Habrá ocasiones en las que tus ideas y consejos no se tomen en cuenta, pero procura aceptarlo y no ser rencoroso si “tenías razón”. Recuerda: en el egoless programming, lo importante es el trabajo en equipo, no tu triunfo individual.
9. No seas “ese tío de la habitación”.
El entorno egoless es un entorno abierto y colaborativo. Por eso, no tiene cabida la persona que se niega a mantener contacto social o que prefiere programar sola en su habitación. Y ojo, no es ni mejor ni peor… simplemente, no es un buen candidato para el egoless programming.
10. Critica el código y no a la gente.
Hay que hacer una clara separación entre lo personal y lo laboral. Una persona puede ser encantadora, y al mismo tiempo, su código puede estar plagado de errores. Y, por supuesto, hay que ser muy estricto a la hora de revisar el código, pero nunca hacer alusión a temas personales, y siempre mantener un tono cordial y educado, que permita explicar los problemas, no a modo de reprimenda.
Y tú, ¿te apuntas al egoless programming?