Ajedrez - antoniomartel.com

Archivos de Categoría: Blog 1

Número 64 en Internet y Web

Hoy recibo una notificación de Google Alerts indicando que Amazon está mostrando mi libro, Gestión práctica de proyectos con Scrum, en la posición número 64 de los libros (ebooks y libros convencionales) más vendidos en la categoría de Internet y Web. Además está en la posición número 10 en ventas para la clasificación de ebooks sobre Programación y desarrollo de software.

Muy contento de que, después de más de siete años de haber sido publicado, siga alcanzando buenos puestos en la lista de ventas, pero aún más contento de las 288 opiniones y comentarios que el libro tiene. Leerlos siempre me supone un subidón de ego, pero hoy aún más al saber que el libro forma parte de la bibliografía de una de las asignaturas de la Universidad de Buenos Aires, una universidad con más de 200 años de experiencia formando a sus alumnos.

Aquí algunos de los ejemplos de las reseñas del libro:

Programar sin ego (II): el equipo de 10 programadores

Hablábamos la semana pasada de cómo entregar tu trabajo para ser revisado, curado, y hasta vapuleado por tus compañeros de equipo, logran grandes piezas de código. Líneas de texto que formarán parte de módulos capaces de resistir casi una década sin generar errores.

Vuelvo esta semana a comentar sobre el concepto de egoless programming de Gerald Weinberg y otro de los ejemplos reales de su libro: el incorruptible equipo de 10 programadores en una empresa aeronáutica.

Se trataba de un equipo que rechazó mudarse cuando su empresa anterior cerró sus instalaciones en la zona para moverse a otro lugar del país. Aunque tenían buenas ofertas individuales, ellos decidieron irse solo con quién los contratase a los diez a la vez.

Fue una el departamento de desarrollo de una empresa de fuselajes de avión la que los contrató y allí continuaron trabajando un tiempo. Cuando el director de desarrollo de esta empresa se encontró en una conferencia con el antiguo mánager de este grupo, le preguntó extrañado: «¿De dónde sacaste a esta gente? ¿Tienes a más gente como ellos? ¿Cuál es su secreto?». Le explicó que siempre que necesitaba que algo se hiciese bien y a tiempo, solo tenía que encargárselo a uno de estos diez. Deben ser algún tipo de genios, exclamó.

Nada había de particular en ellos, le contó, una de ellas era una recién graduada en italiano, otro había enseñado matemáticas en un instituto, un tercero era un ingeniero profesional y otra más se graduó en empresariales, trabajando después como secretaria ejecutiva y contable.

No eran seres sobrenaturales, simplemente, cuando uno de ellos recibía un trabajo, los diez trabajaban sobre él y lo revisaban entre todos hasta dejarlo perfecto. Cuando trataron de explicarle sus métodos, su nuevo mánager entendió que solo uno o dos hacían todo el trabajo y protegían al resto, que quedaban escondidos detrás de los genios de verdad.

Este director no fue tan obtuso como para llegar a disolver este grupo, pero no supo ver la eficacia de estas técnicas, y mucho menos aplicarlas al resto de sus 300 programadores. Un tiempo después estos diez programadores se volvieron a mover, otra vez en bloque, a una empresa más comprensiva con sus métodos.

Apuesta por los pull request, el pair programming, collective ownership, peer reviews y por los tests por todo el equipo. Es una de esas inversiones a largo plazo que se verán recompensadas cuando poco a poco empiezas a salir del caos, las prisas y de las llamadas de clientes enfadados por un bug en producción.


Si quieres saber más sobre egoless programming, echa un vistazo a mi post de la semana anterior: Programación sin ego.


Referencias:

  • The Psychology of Computer Programming por Gerald Weinberg, Nueva York, Van Nostrand Reinhold, 1971.

Programar sin ego

Gerald Weinberg, en su libro The Psychology of Computer Programming, nos habla de la Egoless Programming o Programación sin ego. Se refiere con este término al hábito de no considerar el código que hacemos como solo «nuestro» y de nadie más, sino artefactos que pertenecen al equipo y que seguramente contienen errores y que pueden ser muy mejorables.

Es una disonancia cognitiva habitual la de no reconocer nuestros propios fallos, y considerar nuestros programas como verdaderas genialidades. Si alguien encuentra un bug, lo negaremos rotúndamente y echaremos la culpa al análisis que estaba mal hecho, al cliente que no nos dijo que lo quería así o que alguien «tocó» nuestro código.

Weinberg cuenta la historia de alguien llamado Bill al que, consciente de poder tener un mal día, pidió a su compañera Marilyn que revisara el importante trozo de código que acababa de escribir. Marilyn fue capaz de encontrar 17 bugs. Pero para ella esto no era suficiente, sabía que donde se habían encontrado 17 errores, seguramente podría encontrarse alguno más. Entregó una copia a otros compañeros, y entre todos, aún encontraron 3 errores más.

Este código estuvo en producción durante 9 años sin que ningún nuevo error fuese nunca encontrado. Bill, lejos de sentirse herido por las tremendas correcciones hechas a su software, contaba divertido la historia a todo el que la quería oir: le habían encontrado 17 errores en 13 líneas de código!!

Además, ahora no solo Bill sabía cómo funcionaba ese trozo de código, Marilyn y los otros compañeros entendían también de qué iba y cómo mejorarlo cuando las inevitables modificaciones llegasen. El equipo al completo estaba al tanto de esa librería, y además de ser una pieza limpia de errores, cualquiera podía integrarse con ella o ampliarla, si fuera necesario.

Por esto funcionan prácticas como las peer reviews, tests por otros miembros del equipo de desarrollo o el pair programming. Tendremos un código más caro, y lento en producirse, pero más fiable y seguro. Más económico a la larga. Menos estresante también: no será tan habitual las sesiones maratonianas un viernes hasta las 2 de la mañana intentando encontrar un bug o las llamadas de clientes por una caída en producción.


Referencias:

  • The Psychology of Computer Programming por Gerald Weinberg, Nueva York, Van Nostrand Reinhold, 1971.

Yo gano si tu pierdes

Solemos verlo así, como un juego de suma cero, pero en raras ocasiones lo es. Lo hacemos con casi todo en la vida, el dinero que ganamos, las amistades que tenemos o los méritos que recibimos o dejamos de recibir.

Pensamos que, si nosotros nos llevamos 100 en un acuerdo, pero por su colaboración con nosotros, nuestros partners se llevan 150, es que hemos salido perdiendo, hemos negociado mal o nos han engañado. Saldríamos mucho más contentos si nos hubiésemos llevado 80, pero nuestros partners solo 60.

No se trata de llevarte el trozo más grande de una tarta (dejando solo migajas para los demás). Se trata de que todos ganen en el acuerdo actual, para que sigan contando contigo en las tartas y contratos que vendrán. Ahora estamos cegados con el proyecto que tenemos delante y no podemos ver más allá de las cifras del trimestre y el balance anual, pero después de este negocio, vendrán otros y luego otros más. Queremos participar en todos, aunque no sea con el trozo de tarta más grande, ¿no?

Intenta hacer la tarta más grande para todos. Busca acuerdos, sinergias y ventajas en la colaboración. Preocúpate de ganar tú, pero piensa también en lo que ganarán los otros. Intenta que ganen lo más posible. Con una buena disposición, serás el primero en llamar cuando haya otro negocio a la vista.

Lo mismo sucede con los clientes, haz que ganen mucho contratándote. Entrégales un gran producto y no racanees en exceso con lo que te piden. Recuerda que si ellos ganan mucho con el acuerdo, tú también lo harás. Si tú pierdes 20 haciendo ese esfuerzo extra, pero ellos ganan 100, tú también terminarás ganando.

El teléfono no parará de sonar cuando hayas acabado el contrato. Serás el primero que tendrán en cuenta cuando quieran buscar a un proveedor de nuevo. Se crean más contratos, y se abren oportunidades que de otra manera irán hacia otro lado o no se crearán. Nadie decide dedicar dinero porque solo augura problemas, discusiones o chapuzas en el trabajo. Ten siempre presente que después de este proyecto deben haber más, este no es el último que vas a hacer.

Tampoco son un juego de suma cero los elogios en el trabajo o el reparto de méritos. Si premian a un compañero de tu equipo por su gran trabajo, también ganas tú. Si tu equipo ha hecho una labor estupenda, pero nadie te menciona, sigues ganando aún más. Los elogios y las buenas consideraciones, si son sinceras, no se gastan, no se pierden, solo se multiplican. Solo pueden sumar.


Referencias:

  • Curso de Coursera Successful Negotiation: Essential Strategies and Skills de George Siedel.

De nuevo en Kindle Flash

Amazon ha escogido de nuevo uno de mis libros en formato electrócnico para su promoción Kindle Flash. El próximo martes, 30/6, el libro Gestión práctica de proyectos con Scrum va a ser enviado en una newsletter, junto a otros 3 o 4 libros en español, a todos los usuarios de Amazon suscritos.

Estés suscrito o no, el libro estará solo durante las 24 horas del martes con un 70 u 80% de descuento. Anímate a comprarlo, normalmente no participan ahí libros de gestión, software o informática.

Y si lo compras, no lo dejes luego entre tu lista de lecturas pendientes, léelo cuando tengas un rato. Son solo unas 120 páginas que se leen casi del tirón y que seguramente encontrarás muy entretenido.

Te dejo en la imagen un enlace a Amazon España, pero puedes encontrarlo también en Amazon México y Amazon.com (aunque solo participará en la versión española de Kindle Flash).

antoniomartel.com

Suscríbete