"Emplea tu tiempo cultivándote a través de los escritos de otros,
así ganarás fácilmente lo que para nosotros ha sido una dura tarea"
(Sócrates)
Manifiesto de El Libro Negro del Programador
El desarrollo de software profesional tiene más aspectos artísticos y creativos que técnicos. Desafortunadamente, los desarrolladores de software solemos caer en los mismos errores una y otra vez.
Recibimos una formación de años para hacernos con multitud de conocimientos que más tarde difícilmente vamos a poder aplicar.
Desarrollamos proyectos en empresas que desconocen la naturaleza frágil y evanescente de un producto software bien desarrollado, aplicando criterios de producción industrial.
Nos gusta investigar (lo cual es bueno) y alardear (lo cual no lo es) del conocimiento de toda tecnología emergente que va surgiendo. En cierto modo somos víctimas de un diletantismo un poco infantil.
Mostramos resultados espectaculares cuando internamente el nivel de fragilidad de una aplicación te obligará a tirarla al cabo de meses por su inmantenibilidad.
Olvidamos demasiado a menudo que cualquier éxito en software (y en otras profesiones) es una mezcla de tecnología, talento y metodología. Nada medianamente complejo se puede realizar sin un guion previo o marco de trabajo en el que hacer las cosas ordenadamente (metodología).
Dejamos que los responsables, jefes y capas de decisión en general no tengan ni idea de la naturaleza creativa y artística del desarrollo de software.
Nadie nos enseña ni a trabajar en equipo ni que el éxito de un proyecto software nace de la buena colaboración de entre todos sus miembros.
Hay a quienes les gusta ir de gurús, llenos de soberbia cuando les reconocen como tales, pero cuyo individualismo les impide trabajar con éxito dentro de un equipo.
Confundimos cumplir las fechas con entregar un producto de calidad.
Nos gusta ser imprescindibles y hacer las cosas enrevesadas para apropiarnos de una parcela de poder y sentirnos imprescindibles (convirtiéndonos en esclavos de nosotros mismos).
No aprovechamos lo suficiente la enorme capacidad emprendedora que podemos tener aplicando nuestro conocimiento de la tecnología en una economía que se mueve hacia lo digital.
Necesitamos, por tanto, un libro que recoja estas reflexiones y nos enseñe cómo abordar todos estos aspectos de una profesión que ni está suficientemente valorada socialmente ni suficientemente recompensada económicamente.
Sostengo que el desarrollo del software tiene más características de arte que de ciencia, construimos más que calculamos, creamos más que ensamblamos.
¿De dónde surje El Libro Negro del Programador?
La razón es muy sencilla: después de muchos años batallando en multitud de proyectos, contando con innumerables experiencias, buenas, malas y malísimas y añadiendo a la coctelera una pasión visceral por el software bien hecho, quiero aportar todas estas vivencias desde lo que peor sabemos hacer (y que precisamente no nos enseñan durante nuestra etapa de formación). Doy gracias por haberme equivocado tanto: que no nos quepa duda de que los fracasos nos enseñan mucho más que los éxitos.
Parafraseando al gran Fernando Trías de Bes, en su Libro Negro del Emprendedor, pretendo aportar una visión holística y necesaria a quienes nos dedicamos al desarrollo del software profesionalmente centrándome en aspectos que rodean a nuestra actividad diaria y que determinan sí o sí el éxito o fracaso de nuestro trabajo. En aquel libro se muestra lo que la mayoría de los emprendedores insisten en hacer mal; en este pretendo exponer lo que muchos de los profesionales de la programación también insisten en hacer obstinadamente mal.
¿Te estás planteando estudiar ingeniería informática como profesión de futuro?. Este libro es el que a mí me gustaría que me hubieran contado en su momento para ahorrarme tantos equívocos y sinsabores, pero también cómo gestionar los éxitos, cómo darle la importancia por encima de todo lo demás al trabajo en equipo y cómo introducir en mi ADN que es mejor una metodología cutre que ninguna.
Si no es así y crees saberlo todo de una profesión que se reinventa cada pocos años, te contaré igualmente cómo gestionar situaciones que rodean el desarrollo de software pero que en definitiva determinan su calidad, éxito o fracaso.