Recientemente me uní a una nueva compañía dentro de este pequeño equipo. Me encuentro con este problema en el que mis compañeros de trabajo aprueban mi solicitud de extracción unos segundos después de que les pido que la revisen. Nunca hay comentarios al respecto, sin importar cuán compleja sea la solicitud de extracción.
Me estoy frustrando un poco con esto porque sé que mi código no es perfecto, claro, pero no podré aumentar mis habilidades de codificación si no recibo comentarios. Siento que puedo escribir cualquier código y obtengo las aprobaciones para fusionarlo.
Actualmente no tenemos un gerente directo, así que no puedo hablar con ellos sobre esto. También me siento raro acerca de ir a los desarrolladores y pedirles que revisen mejor mis solicitudes de incorporación de cambios. ¿Quizás no debería?
Tenga en cuenta que las solicitudes de extracción de otros equipos tienen toneladas de comentarios, buenos comentarios, no quisquillosos.
No estoy seguro de qué hacer aquí.
La respuesta corta es no
Es el trabajo de la persona que ejecuta la fusión asegurarse de que se ha seguido el proceso. Tú hiciste tu trabajo, ahora ellos tienen que hacer el suyo.
Puede hacer un seguimiento con ellos y preguntar por qué no hay comentarios o comentarios sobre sus solicitudes de extracción si cree que debería haberlos. Esta es una pregunta cultural: ¿cómo funciona normalmente su oficina? ¿La gente hace una revisión del código real? ¿Cómo son las relaciones públicas de otras personas?
Si bien las otras respuestas son buenas, mencionó algo nuevo y relevante en un comentario , lo que podría estar causando el comportamiento específico de sus compañeros de equipo en su caso. Tú dijiste :
También soy el desarrollador más senior del equipo.
Eso podría ser importante aquí. En ese caso, puedo imaginar fácilmente que lo tratan con más deferencia/respeto, y se podría aplicar una combinación de los siguientes (los he visto personalmente):
los otros miembros del equipo no quieren que los vea desafiando la calidad de su código; y/o
los otros miembros del equipo asumen que lo que escribes será mejor que lo que ellos escriben y por lo tanto (erróneamente) asumen que esto significa que no cometerás errores que podrían encontrar, incluso si revisaron tu código;
y por lo tanto:
simplemente "sellan" sus solicitudes de extracción, que es lo que ve que sucede.
Esto es especialmente cierto ya que usted tiene:
recientemente se unió a una nueva empresa
Entonces, dado que eres nuevo en el equipo, es posible que no sepan que el desarrollador senior todavía quiere revisiones detalladas de miembros del equipo menos senior (no todos los desarrolladores senior lo hacen). ¿Quizás su equipo haya tenido anteriormente un desarrollador senior que "explotó" cuando se revisó su código, por lo que se han condicionado a no hacerlo?
También me siento raro acerca de ir a los desarrolladores y pedirles que revisen mejor mis solicitudes de incorporación de cambios.
Sugiero llevar a un miembro del equipo a un lado en un momento tranquilo y privado , y sin indicios de que hayan hecho algo malo, solo pregúnteles por qué no revisaron su código más a fondo. Y espero que den una respuesta honesta. Su respuesta podría coincidir con una de mis sugerencias anteriores, o podría traer algo nuevo, por ejemplo, tal vez hiciste algo en el pasado (sin saberlo) que les hizo pensar que no querías revisiones en profundidad, por lo que siempre han estado siguiendo ese concepto erróneo. ¿desde?
No creo que sepas la respuesta hasta que alguien en tu equipo te diga por qué se comportaron de esa manera.
Como el desarrollador más senior del equipo, diría que es parte de su responsabilidad establecer expectativas para el flujo de trabajo de desarrollo de su proyecto.
He trabajado en proyectos que son colaboraciones entre desarrolladores sénior y competentes, donde las solicitudes de incorporación de cambios son pro forma , a menos que un relaciones públicas solicite específicamente que otros observen de cerca el código y vuelvan a verificar algo. Los comentarios detallados y las revisiones (especialmente sobre el estilo del código, etc.) no se esperaban ni eran bienvenidos por cada pequeño cambio. También he trabajado en proyectos en los que se examinan todas las relaciones públicas, incluso las correcciones de errores de una sola línea.
En su lugar, establecería expectativas con un empujón cortés y humilde, por ejemplo: "Estoy a punto de enviarle una solicitud de extracción para [Función X]. No estoy seguro de cómo solucioné [Problema Y]; ¿podría por favor, eche un vistazo y avíseme si detecta algún problema. Además, ¿tiene algún consejo sobre cómo podría refactorizar [Sección Z]? Creo que podría ser difícil de entender y mantener en el futuro, pero no veo una solución elegante".
Probablemente tendrá que dejarlo pasar hasta que obtenga un gerente directo.
Tenga en cuenta que la persona que aprueba su solicitud de extracción está tratando de "hacer su trabajo" y aparentemente, en su opinión, "su trabajo" no implica hacer una revisión extensa de su código. Pero ese es el problema: no puedes obligarlos a cambiar de opinión sobre en qué consiste su trabajo.
De manera realista, tendrá que esperar hasta que alguien con autoridad tenga la capacidad de indicar cuáles son las prioridades y pueda indicarle al otro programador que las revisiones de código son parte de lo que se supone que deben hacer.
Estoy de acuerdo contigo, esto es un problema, pero no creo que el problema sea que no hay comentarios. Creo que el problema es que las solicitudes de extracción se aprueban instantáneamente . Eso significa que nadie está revisando críticamente su código . Y si no están revisando su código, probablemente tampoco estén revisando el código de los demás. No está aprendiendo / mejorando, y el código incorrecto está aterrizando en la rama principal.
Lo que necesitas aquí son aliados. Averigüe quién en este equipo se toma en serio la revisión del código. Ponga la revisión del código en la agenda de su próxima reunión de equipo y discútalo. Si la mayoría está de tu lado, es más probable que ganes. Si no es así, incluso en la mayoría de las nuevas empresas, hay algo de gestión. Hágales entender que este problema de "aprobación de amigos" es muy real y una amenaza. Muéstreles ejemplos de aprobación instantánea o incluso de código obviamente malo que no fue detectado.
Con el respaldo de la mayoría o de la gerencia, diríjase a quien administre el repositorio y asegúrese de que se establezcan reglas en los repositorios de código que requieran al menos un revisor de confianza (que se tome en serio la revisión del código) para aprobar cualquier solicitud de incorporación de cambios antes de que se fusione. Por lo tanto, todas las demás "aprobaciones de amigos" tienen menos importancia. Sin embargo, creo que sigue siendo importante que aquellos que no se toman en serio la revisión del código aún estén obligados a hacerlo, con la esperanza de que mejoren.
He luchado contra este mismo problema en mi equipo y contar con revisores de confianza fue mi solución. Debe proteger el repositorio de los "aprobadores de amigos" habituales. En mi experiencia, si no puede hacer que eso suceda, probablemente no haya forma de que pueda ganar la batalla de la calidad del código. Lo mejor que podrá hacer en ese caso es cubrirse el trasero y esperar el inevitable desastre que fuerza el asunto. No seas el que sostenga la bolsa cuando suceda. No comprometa su propia disciplina de revisión de código; tal vez algo de eso incluso se les pegue. No combine sus propias solicitudes de extracción hasta que tenga más de la cantidad requerida de aprobaciones. Y asegúrese de escribir pruebas unitarias mejores y más completas que el próximo.
Si puede hacer esto sin siquiera la apariencia de echarle la culpa, entonces la próxima vez que un defecto evidente que debería haber sido detectado en la revisión del código llegue a la rama principal (es decir, código con malos anti-patrones), tráigalo a colación. equipo como una oportunidad para mejorar la calidad con un enfoque renovado en el proceso de revisión de código. Solo asegúrate de que no haya culpa, o solo dañarás tu propia reputación.
Específicamente en lo que respecta a la necesidad de comentarios, creo que los comentarios generalmente solo deben hacerse si ve un problema o tiene una pregunta. Si las relaciones públicas son buenas, no hay razón para comentar; solo apruébalo. Sin embargo, si se rechaza un PR sin ningún comentario, creo que sería un problema porque el contribuyente no sabe qué se debe cambiar para que el PR sea aceptable.
(Y, esta pregunta probablemente pertenezca a Software Engineering SE).
Haz lo que yo hago: pregúntale directamente a un desarrollador sénior si puede echar un vistazo a tu conjunto de cambios propuesto y ver si está satisfecho con él. Solicite comentarios. Todavía tengo que tener una experiencia negativa con este enfoque.
Si no tienen tiempo para echar un vistazo a su código, se lo harán saber.
Supongo que estoy un poco en contra de la corriente aquí, pero sí, esto es un problema y sí, deberías intentar ser parte de la solución. Antes de continuar, diré que este es un problema difícil de resolver. Este es el principio a seguir con las revisiones de código:
Si estamos aprobando la mayoría de las revisiones de código sin ninguna entrada, eso significa que creemos que generalmente hacemos las cosas correctamente la primera vez.
En términos generales, esa es una mala filosofía de vida. Para el software, sabemos que el código que ha sido probado y considerado digno de producción siempre tiene errores. Tuve un profesor en la universidad que afirmó que había aproximadamente 1 error por cada 100 líneas de código en la mayoría del software, pero no puedo encontrar una fuente para eso en este momento. Además, los errores son caros: algunos afirman que un error cuesta $ 10k si se encuentra en producción
Vale la pena dedicar un tiempo a revisar el código y al menos hacer preguntas al respecto.
En cuanto a resolver el problema, obviamente no puede obligar a las personas a cambiar ya que usted no es la gerencia (y, por supuesto, la gerencia realmente no puede obligar a las personas a cambiar). Recomiendo algunas cosas:
Reconocer este tipo de problemas e intentar resolverlos es un diferenciador importante entre los ingenieros.
Debe averiguar por qué no están revisando las solicitudes de incorporación de cambios antes de poder decidir qué hacer al respecto. Fuera de mi cabeza, podría ser cualquier combinación de:
Creo que el mejor caso que podrías esperar sería si tienen otro proceso para revisar compromisos complicados, pero no te lo han explicado y se preguntan en silencio por qué no lo estás siguiendo si eres más senior. En cuyo caso, si tiene una conversación rápida, ellos pueden explicarle cómo revisan el código... y le recomendaría dar su camino al menos un intento honesto antes de declarar inmediatamente que su camino es mejor.
Creo que el caso más probable y más desafortunado son las buenas prácticas, no saber mejor y tratar de omitir pasos para ahorrar tiempo o esfuerzo. Luego, como el más antiguo, es su trabajo enseñarles y fomentar las buenas prácticas (tal vez incluso hacer cumplir las buenas prácticas, si fue contratado como líder). Probablemente necesitará hacer revisiones de código como grupo por un tiempo para establecer sus expectativas sobre qué tan completos deben ser. Y deberá ajustar su velocidad, ya que durante un tiempo pasará mucho tiempo revisando el código. (Lo compensa más tarde al no tener que dedicar tiempo a la corrección de errores, pero sin ningún producto lanzado... ¡ay!).
Si está trabajando en un entorno ágil, arreglar esto es su responsabilidad , así como la del resto del equipo. Ustedes son responsables de su propio proceso, son dueños de su trabajo, son un equipo autoorganizado de desarrolladores de software capaces y deben mejorar en todo lo que puedan, tanto individualmente como en equipo.
El problema central aquí es que no están siguiendo el proceso de revisión de cada línea de código o el proceso no está bien definido (por ejemplo, solo establece que los PR deben aprobarse, no que los cambios deben revisarse). De cualquier manera, deben decidir cómo van a trabajar a partir de ahora, definir un proceso en el que todos estén de acuerdo, posiblemente escribirlo (principalmente para futuras contrataciones), comprometerse a seguir el proceso que ustedes mismos acaban de decidir y hazlo. Mencionar esto es responsabilidad de cada miembro del equipo, incluyéndote a ti. Es posible que algunos (por ejemplo, los jóvenes) no se den cuenta de esta oportunidad de mejorar su forma de trabajar, así que plantéelo usted mismo y enséñeles por qué esto es bueno para el equipo en general (mejor código, menos errores).
Como otros han mencionado, esto podría estar relacionado con que usted sea el desarrollador más senior. Algunos pueden pensar que cuestionarte es malo y no darse cuenta de que en realidad es una gran oportunidad para que entiendan por qué haces (la mayoría) de las cosas mejor que ellos y cómo piensas en los problemas para llegar a (en su mayoría) mejores soluciones. Enséñales esto. Y también, esfuércese por crear un ambiente seguro, donde aunque a veces no vea claramente oportunidades como esta, se sienta libre de cuestionar cualquier cosa y cualquier persona sin temor a que la otra persona se sienta atacada. Es posible que desee preguntar cómo otros equipos de su empresa hacen eso y cómo pueden lograrlo ustedes.
Su trabajo debe ser revisado adecuadamente antes de ser aceptado. Dado que su compañero de trabajo aparentemente no está dispuesto a hacerlo, debe revisar su código usted mismo. Es una buena idea hacer esto de todos modos; cuanto mejor sea el código que permita que otros revisen, mejor para su reputación y menos trabajo para todos.
Eso no significa que no debas hacer que revise tu código correctamente.
Algunas cosas de la experiencia personal que pueden ayudar con su problema:
Mi empleador asignará dos líderes de ingeniería a cada proyecto. Uno es el "líder de ingeniería" del mismo nombre que está a cargo de asignar tareas al proyecto y responder directamente a la producción y el control de calidad, y es esencialmente un tipo "el dinero se detiene aquí". El otro es un "ingeniero principal" cuya función laboral es esencialmente "ser el tipo que lo sabe todo".
Los ingenieros principales a menudo establecen pautas arquitectónicas para el proyecto, dictan que se usen (o no se usen) ciertas tecnologías y hacen cumplir las mejores prácticas en la base de código. Hasta cierto punto, esa base de código es su bebé y no deberían permitir una imperfección en el caparazón de ninguna de sus muchas tortugas. Con ese fin, el director mismo debería revisar una proporción decente de los RP que ingresan, o al menos revisar las revisiones .
Si tiene un ingeniero en un rol similar, le recomiendo que acuda a él con sus inquietudes. Parecen estar bien fundados. Si no lo hace, le recomiendo enfáticamente que (dada su antigüedad) desempeñe ese puesto usted mismo, con la soborno de su jefe de departamento.
Hay muchas buenas respuestas aquí, pero no noté a nadie que sugiriera eso en su PR:
Otra cosa que podrías hacer, y yo hago esto con mis propias relaciones públicas, es después de enviar tu propia revisión de relaciones públicas .
Eso significa quitarse el sombrero de "Yo escribí esto" y ponerse el sombrero de "Alguien más escribió esto".
Pretenda que fue su desarrollador más joven en el equipo quien escribió el código y revíselo exactamente como esperaría que se revisara. Comente su PR de la forma en que esperaría que la gente lo comentara.
Ha habido varias veces al revisar mi propio código que descubrí cosas que olvidé arreglar/depurar código que olvidé eliminar.
También parece que tienes un cambio cultural que necesitas hacer. Como desarrollador sénior, tiene algo de peso, pero debe decidir si quiere gastar el capital político para exigir las cosas por decreto, o si quiere dedicar tiempo a desarrollar las habilidades de equipo que está buscando. . Este último es probablemente más eficaz, aunque puede llevar más tiempo.
Como se trata de Workplace.SE y no de Software Engineering SE, responderé esta pregunta desde el punto de vista general de "nueva contratación de ingenieros".
Estás en un nuevo trabajo en un equipo pequeño. Como tal, necesita orientación sobre la forma en que se hacen las cosas en esta empresa y en el proyecto en el que está trabajando. Pero como un equipo pequeño que probablemente ha tenido que lidiar con falta de personal hasta que lo contrataron, es probable que tengan una acumulación de trabajo que deba hacerse. ¿Has preguntado esto?
Tenemos una nueva contratación en nuestra empresa (ingeniería, no software). Al principio, solo se le asignó un proyecto, uno de mis proyectos, y estaba claramente frustrado porque no estaba recibiendo la supervisión que le gustaría. Pero tenía cosas urgentes que hacer (ya que hemos estado cortos de personal durante varios meses) y solo podía ayudarlo con cosas que deben hacerse perfectamente AHORA (es decir, cosas que iban fuera de la empresa al cliente y proveedores). De manera proactiva, se encargó de preparar la lista de materiales para uso interno de la empresa para el proyecto (no en el formulario de la empresa, ya que no se le mostró dónde estaba). Su formato resultó ser una gran mejora en el formulario de la empresa, por lo que Le dije que siguiera adelante pero que hiciera algunos ajustes en el contenido. Ahora tiene varios proyectos en los que trabajar para que el problema se resuelva; de hecho, solo un par de semanas después,
El punto es que debes averiguar si lo que está sucediendo es una situación temporal o si es lo que siempre hacen allí. Claramente sienten que escribir "su código" es su responsabilidad y más importante que revisar "su código", que es claramente incorrecto. Documente lo que está sucediendo para que cuando alguien se queje de que su código no funciona o no cumple con los estándares de la empresa, pueda responder con "Era nuevo en la empresa y nadie me dio ninguna orientación". Eso es lo mejor que puedes hacer.
Inferior
sf02
mkki
mkki
Inferior
mkki
Inferior
jmoreno
cris
ProgramaciónLlama
Bromista alegre
BittermanAndy
BittermanAndy
lucasgcb
Capitán hombre
Ellesedil
daniel r collins
Zibbobz
Andrejs
max630
Thorbjorn Ravn Andersen