Cap II: ¿Qué es tener exito en un proyecto de software?, El libro negro del programador. 💻
Tags: spanish, programming, productivity, books
Published: 2023-01-10 20:00:00

## **¿Qué es tener éxito en un proyecto de software?**
> **«Un proyecto software no puede considerarse de éxito aunque se
entregue a tiempo cuando el equipo que lo desarrolla trabaja bajo el síndrome del quemado, la hostilidad y hermetismo entre los desarrolladores son enormes y cuando muchos esperan la más mínima pifia del compañero de al lado para tapar sus propias miserias. Sutilmente, en un ambiente así, se desarrollará un código de pésima calidad, frágil y con tendencia a la corrupción de diseño.
Necesariamente la solución desarrollada va a carecer de los pilares fundamentales de un buen software.»**

* ¿Cuáles son los factores que determinan si un proyecto de software fue exitoso o no?
* ¿Si cumplimos con las fechas de entrega a rajatabla, se podría decir que el proyecto tuvo éxito verdad?

Estas son las preguntas que se hace el autor para comenzar este capítulo y trata de responderlas contando una anécdota de trabajo:

Hace tiempo, relata, participó de un proyecto internacional que a primera impresión parecía genial: 

* 1 año para terminar el proyecto.
* Uso de tecnologías modernas.
* Más de 10 compañeros de trabajo con experiencia.
* Un equipo de testing.

Todo pintaba que era el proyecto en el que cualquier ingeniero de software quisiera participar, lastimosamente al paso de los 10 primeros meses todos se dieron cuenta de que el proyecto iba a terminar mal.

Con tan solo 2 meses mas para la fecha límite, el ambiente laboral se vino abajo, los compañeros eran muy tóxicos, las soluciones propuestas eran de baja calidad, abundaba el código espaguetti, las reuniones eran de lo peor, se atacaban uno a otro, etc., en resumen, en un ambiente como el descrito no puede salir un producto bueno.

Hoy en día se escucha mucho que un buen desarrollador debería trabajar también sus habilidades blandas, para el autor, una de las principales es la **resiliencia**.

La **resiliencia** es la capacidad de aprender de los errores y reponerse del fracaso, en desarrollo de software los errores son muy comunes, por ello un desarrollador de alto valor debe tener la capacidad de poder aprender más de los errores que de los éxitos.

> El desarrollo de software necesita un entorno creativo, lúcido, tranquilo, optimista y positivo, esto generará código de mejor calidad y altamente mantenible escrito con buenas prácticas.

No se puede comprar un trabajo hecho con amor contra uno hecho solo por dinero, cuando el ambiente laboral es malo uno espera la hora de salida para huir de la oficina y esto repercute en la calidad del código final.

Tampoco confundir con amar nuestras líneas de código, simplemente que un trabajo hecho con gusto y pasión saldrá mejor que uno sin estas características. 

Uno de los términos que me llamaron la atención fue: **«happy path»** que en términos simples es cuando intentamos realizar aportes al proyecto (pruebas, por ejemplo), pero con la intención que sean lo menos problemáticas posible para evitarnos problemas, y no así hacer lo que de verdad sería útil y provechoso para el proyecto.

> Un software funcional, pero hecho con malas prácticas, es similar a un auto que no podemos arreglar. 

> El manager del proyecto es el que debe preocuparse por temas del ambiente laboral.

> En la economía actual, podemos competir como profesionales con cantidad o calidad, el autor sugiere mejor optar por lo segundo dejando a la cantidad como un mero factor de productividad.

Respondiendo a la pregunta inicial: ¿Si cumplimos con las fechas de entrega a raja tabla, se podría decir que el proyecto tuvo éxito verdad?

La respuesta es un rotundo **NO**, existen muchos factores que evaluar para determinar el éxito o fracaso de un proyecto de software, y uno de los más importantes es la **salud mental y emocional** del equipo acompañado de un **ambiente laboral idóneo**. 

## **Conclusiones**
* El desarrollo de software es una actividad creativa.
* "Entregar" como sea un proyecto en la fecha prevista es síntoma de que alguien no planificó bien los tiempos.
* Trabajar rápido y con estrés hará que el código baje de calidad.
* Se debe fomentar un ambiente laboral adecuado.
* En un curriculum pesan más los proyectos bien terminados que un montón de proyectos inconclusos.

---

Te dejo el link gratuito de [*El libro negro de programador*](https://underpost.net/ir/pdf/cy3/el-libro-negro-del-programador.pdf) por si te intesa leerlo, o dale click a la imagen:



[![libro](https://www.digitalskillsinstitute.com/assets/media/books/5541eba31b4b42b5bb021dc77c70d658-480.jpg)](https://underpost.net/ir/pdf/cy3/el-libro-negro-del-programador.pdf)