Como codificar Software que sea fácil de mantener?

Hay que diferenciar entre software fácil de mantener (mantenibilidad) y fácilidad en la codificación del software.
La facilidad para la codificación de software hoy en día son bien sostenidas por los nuevos IDEs y herramientas existentes y mucho más si se considera la relativa facilidad de obtención, aprendizaje e implementación de tales herramientas.
A su vez cada lenguaje tiene su particularidad y cada programador es particular en su forma de codificar y tal vez ese sea el motivo por el cual las organizaciones podrían necesitar establecer estándares de codificación y patrones de soluciones, proponiendo un método de trabajo homogéneo para toda la empresa. Esto sin lugar a dudas (de mi parte) ahorra muchos problemas y mejora la productividad.
Por cierto que tiene costos iniciales y me atrevo a decir que tienen más que ver con el cambio que implica en la metodología de trabajo que con el costo monetario.
Ahora bien, tener todas estas facilidades de ninguna manera garantiza que logremos genera software fácil de mantener ya que este aspecto de mantenibilidad, tiene que ver con la concepción misma del sistema.
Muchos dicen que es competencia exclusiva del Diseño y Arquitectura del software, pero yo me atrevo a decir que esto se trata mucho antes, cuando se plantean los alcances y se reconocen las limitaciones a nivel de herramientas tecnológicas, conocimientos del equipo del proyecto, cuestiones políticas, legales y hasta culturales.
La arquitectura y el diseño del sistema brindarán las propiedades de mantenibilidad necesarias y atributos como  testeabilidad, flexibilidad, escalabilidad, fiabilidad entre otros, pero siempre tendrán de limitantes los ítemes que antes mencioné.

Sin embargo, para no dejar colgado a aquellos que quieren alguna respuesta relacionada a la codificación y tanto a otros aspectos, comparto con ustedes este artículo de Martín Fowler “Código como documentación”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s