Revisión por pares: Difference between revisions

Jump to navigation Jump to search
No edit summary
Line 11: Line 11:
==Consideraciones básicas==
==Consideraciones básicas==
Es aconsejable tener en cuenta las siguientes consideraciones básicas a la hora de implantar esta técnica en un equipo de desarrollo:
Es aconsejable tener en cuenta las siguientes consideraciones básicas a la hora de implantar esta técnica en un equipo de desarrollo:
 
*Las revisiones por pares buscan la '''identificación temprana de errores''', por lo que se deben realizar de forma incremental según se van completando etapas en el desarrollo (mejor varias revisiones pequeñas que una única revisión al finalizar el desarrollo).
* Las revisiones por pares buscan la identificación temprana de errores, por lo que se deben realizar de forma incremental según se van completando etapas en el desarrollo (mejor varias revisiones pequeñas que una única revisión al finalizar el desarrollo).
*'''El foco''' de las revisiones por pares '''debe ser siempre el código''', no la persona que lo ha desarrollado.
* Ll foco de las revisiones por pares debe ser siempre el código, no la persona que lo ha desarrollado.


A partir de estos principios, es posible construir sistemas más o menos complejos de revisión entre pares: sistemas básicos donde la revisión se realiza por un único desarrollador que toma el rol de revisor, o donde la revisión se realiza por un grupo de desarrolladores/revisores.
A partir de estos principios, es posible construir sistemas más o menos complejos de revisión entre pares: sistemas básicos donde la revisión se realiza por un único desarrollador que toma el rol de revisor, o donde la revisión se realiza por un grupo de desarrolladores/revisores.
Line 19: Line 18:


{| class="wikitable"
{| class="wikitable"
! width="100 px" style="background:Lavender; color:Black"|Tipo
! width="200 px" style="background:Lavender; color:Black"|Tipo
! width="100 px" style="background:Lavender; color:Black"|Ventajas
! width="200 px" style="background:Lavender; color:Black"|Ventajas
! width="100 px" style="background:Lavender; color:Black"|Inconvenientes
! width="200 px" style="background:Lavender; color:Black"|Inconvenientes
|-
|-
|'''Individual'''||Muy sencilla de implementar||Puede producir pactos tácitos de no agresión. Puede provocar conflictos entre autor y revisor.
|'''Individual'''||Muy sencilla de implementar||Puede producir pactos tácitos de no agresión. Puede provocar conflictos entre autor y revisor.
|-
|-
|'''Grupal'''||Son más efectivos que los sistemas de revisión individual.Se fomenta la colectivización del código.||Puede surgir la figura de líder que reste efectividad al método.Algunos autores se sienten incómodos ante este tipo de  revisión.  
|'''Grupal'''||Son más efectivos que los sistemas de revisión individual. Se fomenta la colectivización del código.||Puede surgir la figura de líder que reste efectividad al método. Algunos autores se sienten incómodos ante este tipo de  revisión.  
|}
|}


 
==Centrarse en lo importante==
====Centrarse en lo importante====


El valor de las revisiones por pares reside en detectar el impacto de nuevos desarrollos en el sistema. Por ello, durante las revisiones se debe mantener el foco en los aspectos realmente importantes:
El valor de las revisiones por pares reside en detectar el impacto de nuevos desarrollos en el sistema. Por ello, durante las revisiones se debe mantener el foco en los aspectos realmente importantes:
 
*¿Se siguen los principios de la Programación Orientada a Objetos?
* ¿se siguen los principios de la Programación Orientada a Objetos?
*¿Se utilizan correctamente las librerías y ''frameworks''? ¿Se está utilizando alguna no estándar?
* ¿se utilizan correctamente las librerías y frameworks? ¿se está utilizando alguna no estándar?
*¿Hay refactorizaciones claramente necesarias que mejorarán la legibilidad del código?
* ¿hay refactorizaciones claramente necesarias que mejorarán la legibilidad del código?
*¿Se pueden prever problemas de rendimiento, ''memory leaks''...?
* ¿se pueden prever problemas de rendimiento, memory leaks...?
*¿Se están usando correctamente las excepciones, el log...?
* ¿se están usando correctamente las excepciones, el log, ...?
*...
* ...


Otros aspectos superfluos, como el cuestionarse la visibilidad de un atributo o método de una clase, o indicar las deficiencias de formato del código; podrán obviarse, especialmente cuando estos puedan ser solucionados de manera automática (por ejemplo, usando un formateador de código).
Otros aspectos superfluos, como el cuestionarse la visibilidad de un atributo o método de una clase, o indicar las deficiencias de formato del código; podrán obviarse, especialmente cuando estos puedan ser solucionados de manera automática (por ejemplo, usando un formateador de código).