2 Propiedad Colectiva del Código

Anuncio
[[Nombre de la institución]]
Guía respecto a la Propiedad Colectiva del Código.
[[fecha]]
Versión 1.0
[[Nombre del proyecto]]
1
1.1
Introducción
Propósito del documento
<Insertar los propósitos particulares del documento para la institución>
Cualquier miembro del equipo desarrollador podrá cambiar una línea de código para añadir
funcionalidad o eliminar algún tipo de error.
El documento presentado a continuación establece la filosofía de esta práctica como una guía para
que [[institución]] la pueda implementar de forma fácil al aplicar la programación extrema como
metodología de desarrollo.
Para profundizar en la guía se recomienda leer el documento: Guía_Propiedad_Colectiva.doc
2
Propiedad Colectiva del Código
Dentro de la programación extrema el código es una propiedad colectiva compartida por todos los
miembros del equipo de desarrollo. Según lo anterior, cualquier desarrollador puede cambiar
cualquier línea de código, añadir funcionalidad, arreglar fallos o aplicar refactoring.
Esta forma de trabajo debiera animar a todos los miembros del equipo de desarrollo de
[[institución]] a contribuir y aplicar refactoring con nuevas ideas en todos los apartados del
sistema, con lo cuál las personas dejarían de ser un cuello de botella en cuánto a la programación.
El objetivo fundamental de esta forma de trabajo es reducir al mínimo las obstrucciones para
distribuir e implementar rápidamente las tareas de programación. Adicionalmente, es un recurso
muy efectivo para evitar los problemas de cambio de personal.
Esta filosofía puede resultar difícil de comprender al principio. Es posible que para miembros del
equipo de desarrollo de [[institución]] sea inconcebible que todos ellos puedan responsabilizarse
del sistema, viendo imposible que se pueda llegar a buen término sin un jefe visionario de la
arquitectura del mismo. Bajo esta perspectiva clásica es fácil que un jefe de proyecto responda a
una pregunta sobre el sistema con una respuesta incorrecta. Responsabilizar a una sola persona
de la arquitectura del sistema hace que el resto del equipo no se beneficie de la visión del sistema
que el arquitecto mantiene en su mente.
Mantener bajo control [Nombre del Proyecto]] dentro de un contexto de propiedad colectiva, en
el cuál todo el equipo tiene capacidad de decisión se puede realizar a través la comunicación, las
pruebas unitarias y la integración frecuente. Dentro de la XP la comunicación en el equipo de
desarrollo es fundamental para que todos sus componentes trabajen en la misma dirección. Si a
esto se añade que todo el código del repositorio debe incluir pruebas de unidad, es posible lograr
que el conocimiento de la arquitectura del sistema sea distribuido sobre todos los miembros del
equipo, ya que cuando algún desarrollador modifica la funcionalidad del sistema el conjunto de
pruebas de unidad garantiza el sincronismo y la calidad del producto. Para completar lo anterior, la
integración frecuente permite que los posibles problemas generados por esta filosofía sean
detectados y corregidos de forma temprana.
[[Nombre del Proyecto]]
[[Nombre de la institución]]
Página 1 de 2
Guía respecto a la Propiedad Colectiva del Código
Versión 1.0
[[Autor]]
Uno de los efectos de la propiedad colectiva es que el código complejo no dura mucho tiempo
porque todo el mundo suele mirar todo el sistema y dicho código se encontrará tarde o temprano. Y
cuando se encuentre, alguien intentará simplificarlo. Si la simplificación no funciona, como
evidenciarán los fallos en las pruebas, entonces el código será desechado.
La propiedad colectiva tiende a prevenir también que sea introducido código complejo al sistema
desde el primer momento. Si se tiene conciencia que otro compañero pronto mirará lo que se está
escribiendo en ese momento, el desarrollador lo pensará dos veces antes de añadir una
complejidad que no pueda ser justificada inmediatamente.
Mediante una buena comunicación, pruebas de unidad e integración frecuente es posible eliminar
muchos de los problemas que puede generar la propiedad colectiva del código. Sin embargo,
todavía existen algunas situaciones derivadas de esta práctica que requieren actuaciones
complementarias por parte de [[institución]]:
1. Algunos desarrolladores pueden querer hacerse dueños del código y no permitirán
que otros lo modifiquen.
2. Como todo el mundo es responsable del código al final nadie es responsable del
mismo.
3. El conocimiento se encuentra distribuido, pero ningún miembro del equipo es lo
suficientemente experto.
4. Es difícil trabajar sobre el código fuente escrito por otro desarrollador.
3
Ventajas y desventajas de la propiedad colectiva
La propiedad colectiva del código tiene una serie de ventajas y beneficios como fue mencionado de
forma previa, algunas de ellas son las siguientes:





Ayuda a la integración, confiabilidad y creatividad en los equipos de trabajo.
Requiere y se esfuerza por un estilo y filosofía consistente para todo el sistema.
Maneja fácilmente el crecimiento y la contracción de los equipos.
Responde rápidamente a cambios o incrementos en los requerimientos.
Tiende a prevenir código complejo en la primera parte de construcción del sistema.
Como todo, también tiene su parte negativa que puede ser traducida en las siguientes desventajas:



La responsabilidad y los roles de las tareas puede ser difícil de establecer.
El sistema podría perder una arquitectura común, y su propósito inicial podría ser difícil de
alcanzar.
Existen posibilidades de realizar repetidos cambios de acuerdo a diferentes estilos
personales de programación.
[[Nombre del Proyecto]]
[[Nombre de la institución]]
Página 2 de 2
Descargar