Responsabilidad sobre el código

Repasando el último podcast de JavaHispano me viene a la mente el concepto de la excelencia técnica en nuestra profesión.

En dicho podcast se habla de metodologías ágiles de desarrollo que, en contraposición con las tradicionales o predictivas, profesan la cercana relación con el cliente y el constante cambio. Este último requiere sin duda, además de la eliminación de la burocracia de los funcionales y el papeleo innecesario, de la excelencia en nuestro trabajo.

Una de las características que más me llaman la atención en muchos de los proyectos en los que he participado es la ausencia de la responsabilidad consciente sobre el código. Característica que a mi parecer es básica para garantizar la excelencia técnica.

Normalmente el código lo escribe una persona y lo modifica otra y otra y otra sin que ninguna de ellas se responsabilice del resultado final. Esto lleva a tener sistemas ilegibles, con diferentes metodologías para nombrar variables, diferentes metodologías para tabular el código y diferentes patrones y estructuras aplicadas mezcladas en el mismo módulo, archivo o función. Existen muchas formas de garantizar que esto no pase, pero todas ellas pasan por introducir el concepto de responsabilidad.

Entendemos como "responsable sobre el código" a la persona conocedora del código y que es capaz de garantizar su correcto funcionamiento.

Existen diferentes atributos que debemos dejar claro respecto a este tema antes de empezar un proyecto:

  • El tiempo de asignación: dependiendo de la metodología de desarrollo del proyecto, la asignación de responsabilidades se hará en tiempo de análisis o en tiempo de desarrollo. El primer caso para las metodologías predictivas y el segundo para las ágiles
  • Dependiendo de el tamaño de el proyecto se deberá determinar la granularidad de la responsabilidad: si será a nivel de módulo, de clase, de función,.... Esta característica no es global para todo el proyecto, sino que variará dependiendo de cada persona, modulo o clase. En un proyecto pueden coexistir módulos de tamaños tan dispares que obliguen a seguir diferentes políticas para cada uno de ellos. En los desarrollos ágiles se tomaran estas decisiones en tiempo de desarrollo.
  • La fuerza de la responsabilidad: existen diferentes formas de entender el concepto de responsabilidad del código: una persona responsable puede ser quien escribe todo el código o quien lo supervisa y refactoriza para normalizarlo. El segundo caso es más ágil, pues desarrolladores no responsables pueden incorporar nuevas características a un módulo.

Siendo conscientes de la responsabilidad de cada uno de los miembros del equipo y realizando asignaciones teniendo en cuenta la experiencia de cada uno de ellos será posible mantener los niveles de calidad exigidos invirtiendo los recursos mínimos.

Contact

Are you interested in our services?

Contact us