DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Updated on

 

Cap IV: Una vuelta de tuerca a la ley del cambio, El libro negro del programador. 💻

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.


Principios detrás del Manifiesto Ágil


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.


Te dejo el link gratuito de El libro negro de programador por si te intesa leerlo, o dale click a la imagen:

libro

Top comments (0)

The AI Brief

AI generated git commit messages

Minimize the struggle of remembering what you just coded. AI-generated commits make it easier to manage projects and keep track of changes. The Nutlope/aicommits project demonstrates how AI can improve commit messages.

I open sourced an AI that creates any UI in seconds

Make AI-generated user interfaces a breeze. This open-source project harnesses the power of generative AI technologies like chatGPT to create versatile, quick, and intuitive UI components.

Use AI to commit like a PRO in 1 second

Upgrade your commit message game with AI. Boost your productivity by using ChatGPT to generate commit messages and avoid context switching. OpenCommit is an open-source library that helps you achieve this easily.

Build your own ChatGPT starter kit

Train AI models on custom data for improved domain-specific knowledge. Combine the power of WebView technologies and this starter kit to train your ChatGPT model on specific websites, allowing for better-optimized outcomes.