Retrospectiva y lecciones aprendidas tras publicar El Libro Negro del Programador
Un artículo de Rafa G. Blanes
Han pasado varios meses desde que se publicó oficialmente El Libro Negro del Programador después de año y medio trabajando en este proyecto. Desde entonces he recibido muchos comentarios, la mayoría afortunadamente positivos (algunos también no tan positivos); en general, todo me hace pensar que los desarrolladores de software nos quejamos casi siempre por las mismas razones independientemente de dónde realicemos nuestra actividad (Chile, Venezuela, Brasil, España, USA, etc.) y que la manera de entender el desarrollo de software desde el mundo corporativo viene a ser muy similar en casi cualquier parte. Cuanto más grande sea la empresa y su nombre se parezca más a "Consultoría de servicios IT", más se pierde el carácter de artesanía (craftmanship) en el trabajo que se realiza, lamentablemente.
En cualquier proyecto siempre se aprende algo, en ocasiones muchísimo, todo depende de la actitud que afrontemos durante el mismo. Incluso si repetimos el mismo tipo de proyecto, siempre podemos encontrar mejores formas de hacer las cosas, por tanto, el que sepamos aprender y mejorar más o menos depende directamente de nuestra actitud.
Sólo mejoramos si tenemos una motivación interna para ello, nadie, ni nuestro jefe, ni nuestros compañeros, ni nuestra empresa, etc. nos va a hacer mejorar profesionalmente si antes no tenemos esa predisposición.
Creo que el mejor valor que podemos aportar a nuestra organización es el de mantener siempre una actitud de aprendizaje y adaptacíon continuos y esto se debería apreciar y tener en cuenta en los departamentos de recursos humanos.
Mientras le daba forma al libro fui poniendo por escrito muchas gemas de sabiduría que quería compartir; al mismo tiempo, se asentaban en mí ciertas ideas al tiempo que profundizaba en otras. Escribir un libro es ya en sí mismo toda una lección de humildad y cada capítulo te pone a prueba.
Siempre intenté mantener una actitud activa y de escucha cuando publicaba el adelanto de cada capítulo en la web. Nada peor que pensar que uno tiene la última palabra y la razón absoluta, esta actitud un poco egoica (que no egoísta), actúa como un bloqueo que nos impide descubrir nuevas posibilidades pero sobre todo, nos impide darnos cuenta de nuestros propios errores. Los comentarios de ánimo por el trabajo, sobre erratas y también a veces las críticas anónimas mordaces, me hicieron mejorar mucho el contenido y calidad de la mayoría de los capítulos del libro.
Del mismo modo, uno descubre pronto que hablar sobre ciertos temas como aquel que trata el capítulo titulado Cuando el gestor del proyecto es su mayor enemigo, puede causar cierta incomodidad e incluso incompresión por parte de antiguos conocidos, por lo que se aprende muy rápido eso de que no podemos agradar a todo el mundo (gran lección, por si aún no la conocías). Si precisamente el libro propone mejorar ciertos aspectos negativos y recurrentes de nuestra profesión, obviamente ¡tengo que señalarlos para indicar el remedio!, y que conste que soy el primero en haber cometido casi todos los errores típicos que se mencionan en el libro, de modo que soy un ejemplo fantástico y de primer orden...
En ocasiones el hecho de no hacer incomodar a ciertas personas supone un freno para poner en marcha proyectos, mejorar el funcionamiento del departamento en el que trabajamos, etc. Irónicamente también a veces esas personas que suponen un obstáculo ni siquiera nos caen bien... Lección: ignorar que parte de tu trabajo pueda sentar mal o remover malos sentimientos entre ciertos individuos. Afortunadamente, esto es algo muy puntual.
No es lo mismo pensar que sabes algo y que tienes cierta idea sobre algunos temas que intentar ponerlos por escrito para transmitíselo a otros de una manera clara, sencilla y atractiva; son dos ámbitos de pensamiento completamente distintos, de modo que si realmente queremos alcanzar la maestría en algo, nada mejor que dedicar parte de nuestro tiempo a enseñarlo.
Escribir un libro sobre cualquier tema te obliga a poner en cuestión todo aquello en lo que creías, por la sencilla razón de que lo tienes que justificar y argumentar. Del mismo modo tienes que ganarte credibilidad desde la primera línea, indicando referencias, experiencia, no incurriendo en contradicciones y manteniendo siempre una línea coherente con todo. Nada peor que esos libros de desarrollo de software sobre la tecnología X en los que se intuye que el autor ha realizado más bien pocos proyectos con esa misma tecnología.
De aquí la siguiente lección: si quieres escribir con credibilidad sobre algo para ganar cierta atención, tienes que tener autoridad demostrable en la materia y ser lo más experto posible en ello. Cuanto más experto seas, más atención y seguidores obtendrás. No sólo es bueno sino buenísimo que tengamos nuestro propio blog donde de vez en cuando vamos publicando tutoriales, articulillos, etc. sobre los temas que más nos interesan. Es más, debería ser una práctica habitual y casi obligada entre los empleados de las empresas para mantener siempre un espíritu de progreso en aquello en lo que estamos trabajando.
Escribir sobre algo en un proyecto de más de un año require de mucha disciplina (de muchísima tenacidad) y de aguantar periodos en los que el resto de tus actividades te mantienen exhausto y otros en los que sientes un bloqueo absoluto para avanzar el desarrollo de ciertos temas. Si eres incapaz de mantener cierta rutina para una tarea de duración larga, olvídate ya de intentar escribir un libro.
El Libro Negro del Programador es un proyecto que se ha gestado de noche (a partir de la hora en la que mis dos hijas están ya en la cama...), en fines de semana con huecos suficientes como para poder concentrarme en un tema más de dos horas seguidas y, por supuesto, en vacaciones, quitándole tiempo a tu familia y resto de actividades que realizas fuera de tu trabajo full-time. Por esta razón digo que más que trabajo duro se require de disciplina, el saber aguantar mes a mes aún viendo cómo llevas bloqueado en cierto tema algún tiempo.
Otra cuestión bien distinta es considerar si merece la pena este sobresfuerzo y esto sí que tiene muchas caras y ángulos distintos.
También es una cuestión de metodología: cualquier trabajo que hagamos, sea del tipo que sea, si nos paramos un momento, damos un paso atrás y lo intentamos planificar y ordenar aunque sea mínimamente, entonces obtendremos mejores resultados y lo haremos en menos tiempo; la productividad es eso, ni más ni menos.
En el caso del libro me planteé una metodolodía de escritura y revisión de cada capítulo más o menos así:
- Planteamiento de las ideas generales del capítulo.
- Desarrollo del primer borrador.
- Revisión a fondo del borrador.
- Publicación parcial en la web como adelanto.
- Digestión y análisis de los comentarios (curiosamente muchos me llegaban por correo a través del formulario de contacto y no directamente como comentarios en la web).
- Desarrollo de un segundo borrador.
- Revisión de nuevo y etiquetado como finalizado.
- Enésima lectura y si algo no seguía quedando a mi gusto, de nuevo a revisar.
Desde el primero punto hasta el último podían pasar varias semanas, de modo que era habitual que fuera superponiendo el trabajar en varios capítulos al mismo tiempo. De este modo, la lección sobre este punto a mí me parece muy importante: si pretendemos trabajar en un proyecto al que no nos dedicamos al 100% y que se va a alargar mucho en el tiempo, necesariamente tenemos que organizarlo de alguna forma, planteando cómo y qué pasos dar en cada momento (esto es, hay que trabajar con algún tipo de planificación y metodología).
Inicialmente hice un esquema básico de los temas en los que quería trabajar, rescatando muchos escritos personales que llevaba varios años realizando; después de hacer una lista de unos cincuenta temas que quería desarrollar, muchos de ellos fueron finalmente cubiertos en varios capítulos, otros fueron descartados y otros, a pesar de haber escrito sobre ellos, fueron capítulos que bien por extensión, bien por no alcanzar la calidad mínima que yo mismo me exigía o bien por coherencia con el resto del libro, no fueron incluidos en el trabajo final.
Otra lección para mí muy importante: saber desprenderse de aquello en lo que uno ha trabajado, aunque se hayan dedicado muchas horas en ello. Esto me recuerda al enorme esfuerzo que nos cuesta a veces eliminar parte de una solución software que se ha quedado obsoleta, que nunca se ejecuta o bien que queremos sobrescribir por haber encontrado una forma mejor de resolver un problema.
Para cualquier proyecto personal es importante plantearse una fecha máxima de realización. Establecer una fecha no tiene ningún sentido si no nos comprometemos con ella. Este compromiso con uno mismo actúa como resorte que te obligará a sacar fuerzas en los momentos bajos y te hará pisar el acelerador cuando se acerca el mes en el que te habías propuesto terminar el trabajo. Nada peor que decepcionarse a uno mismo, aunque suene raro.