Supongamos que tengo un objeto PHP, digamos: companyObj.
class companyObj
{
private company_name;
private company_address;
public function print_contact()
{
//logic
}
}
Este es el objeto que escribí y compartí con los compañeros de equipo. Ahora me gustaría hacerlo más poderoso, así:
class companyObj
{
private company_name;
private company_address;
private company_contact_person;
public function print_contact()
{
//logic updated
}
}
Ahora, ¿cómo puedo notificar a mis compañeros de equipo que mi objeto tenía más atributos que pueden establecer?
En lugar de enviar correos electrónicos a todos los miembros del equipo de desarrollo, ¿cómo hago para que el equipo sepa lo que está sucediendo, cuando no quiero que mis compañeros de equipo pierdan su tiempo para ver lo que ha cambiado en el nivel del código fuente?
programming-practices
teamwork
communication
Ted Wong
fuente
fuente
Respuestas:
Depende mucho de la situación concreta. Supongamos que la nueva propiedad que agregó es obligatoria, es decir, debe establecerse siempre. Luego, debe buscar el código usted mismo y actualizarlo en todas partes donde
companyObj
se cree, para asegurarse de que se construye correctamente (incluida la configuración de la nueva propiedad). Supongo que PHP tiene constructores, en cuyo caso solo necesita agregar un nuevo parámetro de constructor y el compilador marcará automáticamente cada llamada de constructor sin el parámetro adicional como un error de compilación. Esto también asegurará que los compañeros de equipo conozcan la nueva propiedad tan pronto como usen acompanyObj
.Si la nueva propiedad es opcional, sin embargo, las cosas están menos claras. Puede o no tener un valor predeterminado adecuado para ello. En el último caso, aún sugeriría que actualice todas las creaciones de instancias para establecer la nueva propiedad siempre que sea apropiado. Esto es para garantizar que el código se mantenga en un estado coherente en todo momento .
Comunicar el cambio a tus compañeros de equipo es otro paso distante aquí. Los equipos ágiles prefieren la comunicación cara a cara y, en mi humilde opinión, por una buena razón. Confiar en los documentos es un medio muy lento e ineficaz de difundir información alrededor de un equipo. Un Wiki es algo mejor, pero aún así, documentar cada atributo de clase es una exageración de mi humilde opinión. Solo se convertirá en una gran carga para el equipo, y de todos modos rápidamente se volverá poco confiable e inútil, ya que somos humanos, por lo que a veces olvidaremos la actualización, además, apuesto a que no muchos miembros del equipo lo harán regularmente revise la documentación (ya sea en cualquier forma) para informarse de los últimos cambios en el código.
Esto último también es válido para la documentación generada automáticamente a través de, por ejemplo, Javadoc o Doxygen. Aunque se pueden configurar en una compilación automática para mantener actualizada la documentación generada en todo momento, nunca he visto un equipo de desarrollo con miembros que naveguen regularmente por la documentación para informarse sobre los últimos cambios en el código. Y si está utilizando algún sistema de control de fuente, el primer lugar para notar los cambios es cuando actualiza su copia local del código de todos modos; luego puede verificar los cambios en las clases conocidas y ver exactamente qué y cómo ha cambiado (junto con un breve explicación y / o referencia a una ID de tarea, si su equipo está acostumbrado a agregar comentarios de registro significativos, que faltarán en los documentos generados automáticamente).
La comunicación es una de las principales razones por las que los equipos de Extreme Programing hacen programación en pares. Si realiza los cambios junto con un compañero de equipo, hay dos de ustedes de inmediato que conocen cada cambio, y la próxima vez que cada uno de ustedes se empareje con otra persona, la información útil se difundirá rápidamente. Sin embargo, no siempre es aplicable por varias razones. Salvo eso, simplemente puede hablar con sus vecinos sobre el cambio en un momento apropiado (por ejemplo, durante el almuerzo, si almuerzan juntos), o enviar un correo electrónico si es un cambio más grande, más importante o más complicado.
En el último caso, puede haber una buena razón para documentarlo adecuadamente. Los documentos de diseño de la OMI son mejores cuando ofrecen una visión general de alto nivel del sistema, mientras que los detalles de implementación están en el código (que se adhiere al principio DRY ).
fuente
¿Has considerado simplemente hablar con ellos ? Programe una reunión breve: "hey, hice algunos cambios en el objeto X, quiero mostrarles qué cambió y por qué". O simplemente hable con cada persona individualmente si una reunión parece demasiado formal o perjudicial.
fuente
Si tiene un equipo, probablemente también tenga un documento de diseño. Si no. empezar a hacerlo Y use alguna herramienta UML para mapear sus diseños.
fuente
Podrías usar una herramienta como doxygen dentro de tu código. Ahora cree un script que genere la documentación de doxygen y ejecútelo regularmente, tal vez como parte de su compilación nocturna (usted hace una compilación nocturna, ¿verdad?).
Creo que puede asignar un atributo personalizado en doxygen a su adición para resaltarlo como nuevo.
Si sus compañeros de equipo son buenos, revisarán la nueva documentación.
fuente
Bueno, no debes informar a tus compañeros de equipo sobre cada pequeña cosa que hagas. De lo contrario, tendría que enviar muchos correos electrónicos. Si es algo importante, puede hacer una pequeña reunión y hacerles saber lo que hizo (si lo hace scrum, entonces no es necesario establecer una reunión por separado).
Si usa un IDE que admite la finalización automática, sus compañeros de equipo deberían notar su cambio. Solo espero que comentes tu código.
fuente