Cap IV: Una vuelta de tuerca a la ley del cambio, El libro negro del programador. 💻
Tags: programming, spanish, books, productivity
Published: 2023-01-12 18:02:52

## **Una vuelta de tuerca a la ley del cambio**

* **La ley del cambio**: La probabilidad de que nuestro software debe evolucionar y cambiar es mayor cuanto más tiempo de vida tenga.
* La mayoría de los programadores no digerimos aun la naturaleza cambiante de cualquier software.
* El cambio hace notar ciertos bugs que pasaron desapercibidos, las exigencias de nuevas funcionalidades, la aparición de nuevos cambios legales, etc.
* **«Cambio continuo»**: cada nueva release implementa más y mejores funcionalidades y resuelve problemas anteriores.
* **«Continuous delivery»**: iteraciones periódicas donde entregamos software funcional mejorado. (Lo que hacen las metodologías ágiles actuales.)
* Cuando se lanza al mercado un producto, cuanto más éxito tengas, más cambios y mejoras se le va a pedir; **La necesidad de aplicar cambios es un síntoma de éxito.**
* La necesidad de poder modificar y evolucionar nuestro software debe ser la piedra angular de nuestros desarrollos: **Todo cambio es bienvenido.**
* Un programador profesional no reinventa la rueda, usa y acopla de manera óptima librerías de terceros, las cuales también cambian con el tiempo (para bien y para mal).
* **La capacidad de desarrollar software es también la de saber ensamblar correctamente módulos que nosotros no escribimos.**
* Uno de los motivos por el cual la tecnología avanza tan rápido es que nos gusta compartir nuestro trabajo para que otros lo utilicen, y al hacer esto los programadores encuentran mejores maneras de resolver los mismos problemas.
* Uno de los grandes errores que cometemos como programadores es elegir librerías de terceros desde un punto de vista de gustos personales o por que es la más reciente y no evaluamos aspectos más técnicos e importantes.
* Podemos afirmar casi sin margen de error que mientras más popular sea un tecnología más cambios tendrá y por ende más evolucionara en el tiempo. 
* En la medida de lo posible antes de elegir una librería externa debemos saber: 

1. Tiene una comunidad amplia
2. Hay documentación buena y confiable.
3. Es posible reemplazarla con otra de manera sencilla.
4. Qué tan nueva es la liberia.

* El coste de hacer una mala elección a mediano plazo puede ser abrumador y fatal para el proyecto. 

* Los términos para elegir una tecnología deben ser más técnicos que emocionales.

* El error de un desarrollador novato es usar tecnologías por la única razón de que le guste y nada más. El desarrollador profesional evaluará  el costo-beneficio a mediano y largo plazo que provoca elegir esa tecnología para el proyecto.

* Cualquier tecnología que se use siempre debe poder ser justificada técnicamente.

* Te guste o no, el tiempo de vida de una aplicación de software es limitado.

* Tenemos que tener el hábito de desacoplar lo más posible nuestro software del resto de componentes. Esto nos permitirá poder sustituirlos de manera más fácil y menos traumática.

---

## <center>**<mark>Principios detrás del Manifiesto Ágil</mark>**</center> 

<center> 
Nuestra máxima prioridad es satisfacer al cliente
a través de la entrega
temprana y continua de software valioso.

**Bienvenidos los requisitos cambiantes**, incluso al final del
desarrollo. Los procesos ágiles aprovechan el cambio para
la ventaja competitiva del cliente.

Entregue software que funcione con frecuencia, desde un par de semanas hasta un
par de meses, con
preferencia a la escala de tiempo más corta.

Los empresarios y los desarrolladores deben trabajar
juntos diariamente durante todo el proyecto.

Construir proyectos en torno a individuos motivados.
Bríndeles el entorno y el apoyo que necesitan,
y confíe en ellos para hacer el trabajo.

El método más eficiente y efectivo para
transmitir información hacia y dentro de un equipo de desarrollo
es la conversación cara a cara.

El software de trabajo es la medida principal del progreso.

Los procesos ágiles promueven el desarrollo sostenible.
Los patrocinadores, desarrolladores y usuarios deben poder
mantener un ritmo constante indefinidamente.

La atención continua a la excelencia
técnica y el buen diseño mejoran la agilidad.

La simplicidad, el arte de maximizar la cantidad
de trabajo no realizado, es esencial.

Las mejores arquitecturas, requisitos y diseños
surgen de equipos autoorganizados.

A intervalos regulares, el equipo reflexiona sobre cómo
ser más efectivo, luego sintoniza y ajusta
su comportamiento en consecuencia.

</center>

---

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)