Tratar un defecto de diseño fundamental cuando eres nuevo en el proyecto [cerrado]

13

Acabo de empezar a trabajar en un proyecto de código abierto con alrededor de 30 desarrolladores. Estoy trabajando para solucionar algunos de los errores como una forma de entrar en el "bucle" y convertirse en un comentarista regular del proyecto. El problema es que creo que he descubierto una falla de diseño fundamental que está causando uno de los errores en los que estoy trabajando. Pero siento que si incluyo esto en la lista de correo, me pareceré arrogante, y algunas de las discusiones que he tenido sobre el tema están afectando a algunas personas. ¿Cómo debo hacer esto?

    
pregunta Matt Phillips 06.01.2011 - 01:09

5 respuestas

20

Incluso si estás bastante seguro de que este es un "defecto de diseño fundamental", recuerda que eres un intruso. Podría estar allí por una buena razón. O, dependiendo de la antigüedad del proyecto, podría haberse colocado allí por una buena razón en ese momento y ahora todavía existe por razones históricas.

En lugar de "arruinar esto en la lista de correo", intente hacer una pregunta. Algo como:

  

"Oye, acabo de encontrarme con X, y   no tiene ningún sentido para mí Eso   Parece la forma correcta de implementar   esto sería Y, pero de nuevo sé   Soy nuevo aquí y no quiero saltar   a cualquier conclusión. Es esto un error   en el diseño, o hay algo   ¿Estoy perdido? ¿Alguien me puede llenar?   Gracias. "

La ingeniería es uno de los pocos lugares en el mundo donde la humildad todavía se considera una virtud genuina, y hacer preguntas sobre "problemas obvios" de esta manera es una muy buena manera de obtener buenas respuestas y aprender cosas nuevas.

    
respondido por el Mason Wheeler 06.01.2011 - 02:18
6

Una de las 48 leyes del poder :

  

Gana a través de tus acciones, nunca   a través del argumento

     

Cualquier triunfo momentáneo que creas ganado   a través del argumento es realmente un pírrico   Victoria: el resentimiento y la mala voluntad.   te mueves es más fuerte y dura   más largo que cualquier cambio momentáneo de   opinión. Es mucho más poderoso   lograr que otros estén de acuerdo contigo a través de   Tus acciones, sin decir una palabra.   Demuestre, no explique.

Este es uno que aprendí de la manera difícil después de muchos argumentos sin sentido.

En este caso particular, te aconsejaría crear un código muy simple y específico que debería funcionar pero no lo hará debido a este defecto de diseño. Como dice el viejo dicho, "No se puede discutir con el compilador / intérprete".

La otra cosa es que para tener influencia sobre un grupo, debes ser percibido como un miembro del grupo . Aunque se haya unido a la compañía, las personas aún no lo perciben como miembro del grupo. Por lo tanto, podría ser mejor seguir al grupo establecido hasta que aprendan a percibirlo como uno de ellos.

    
respondido por el Jason Baker 06.01.2011 - 02:08
5

¿Podría preguntar por qué se utilizó un diseño en particular? De esta manera, puede obtener más de la historia de fondo, ya que puede haber algunas buenas razones por las que se eligió algo que no conoce. Me gustaría la idea de que usted no es el experto que puede desarmar el diseño, pero preguntar puede ser una forma de aprender más para que finalmente pueda preguntar sobre la falla que encontró para que el mensaje no se vea. Como cebo de llamas o trolling.

    
respondido por el JB King 06.01.2011 - 01:14
4

Probablemente no te guste esto ... pero, aquí va ...

  

Estoy trabajando para solucionar algunos de los errores como una forma de entrar en el "bucle" y convertirse en un comentarista regular del proyecto. El problema es que creo que he descubierto una falla de diseño fundamental que está causando uno de los errores en los que estoy trabajando.

No, no lo hiciste. Si lo hicieras, no estarías tan indeciso al respecto. El hecho de que usted mismo no esté seguro de la "falla de diseño fundamental" significa que no ha descubierto uno. Cuando intentas señalar el error de otra persona, no te compra ningún amigo para usar superlativos (como "fundamental").

Lo que puede haber descubierto es un diseño ligeramente mejor, para el problema que está teniendo. Sin embargo, probablemente deberías probarlo a fondo, ya que, como eres nuevo en el proyecto, existe la posibilidad de que no tengas idea de lo que estás hablando.

  

Pero siento que si incluyo esto en la lista de correo, saldré como arrogante

Definitivamente llamándolo un "defecto de diseño fundamental" definitivamente aparecerá como arrogante. En este sentido, incluso señalar que puede ser un error no es la mejor idea. Si no sabe por un hecho (y puede hacer una copia de seguridad) de que es un problema, entonces debe hacer preguntas e investigar con humildad hasta que lo entienda completamente . Mejor que a quien quieras convencer.

  

... y algunas de las discusiones que he tenido sobre el tema se enfrentan a algunas personas. ¿Cómo debo hacer esto?

Detente. Esto no es un problema moral, y no está matando a nadie (supongo). Si pretende ser un miembro a largo plazo del proyecto, primero debe ganarse la confianza antes de cuestionarlos. Arregle los errores, haga un trabajo increíble (según las métricas de los valores del grupo), diseñe algunas características y gane un asiento en la mesa.

Luego, sin señalar con el dedo o llamar algo roto, humildemente, haga una sugerencia para mejorar el diseño del grupo. Y es mejor que hayas pensado en todas las consecuencias y soluciones para ellas, o serás abatido por ser "ingenuo". Prepárese para una discusión sobre por qué su diseño es mejor. Esté preparado para perder, y perder con gracia.

Si tu idea realmente es mejor, o bien el grupo la aceptará (aunque quizás no el diseñador original), al grupo no le importa o el grupo es estúpido. En cualquiera de los últimos casos, ¿por qué querría ser parte del grupo?

...

Si eres capaz, la alternativa es simplemente codificar la maldita cosa con tanta fuerza que temblarán de asombro ante tu destreza de codificación y no tendrás más remedio que aceptar la elegante simplicidad y la verdad eterna de tu diseño. Los desarrolladores respetan la competencia, pero hay que tener cuidado: el castigo por la incompetencia (o arrogancia injustificada) es bastante severo. Sin embargo, dado que estás haciendo esta pregunta, supongo que la ruta de arrogancia brillante y descarada no es realmente una opción. ;)

    
respondido por el Mark Brackett 06.01.2011 - 04:03
2
"Hola, gracias por darme la bienvenida a tu hogar. Cuando entro por la puerta, quiero que todos en la familia sepan que su bebé es feo y que alguien lo vistió de forma divertida".

Un error es un error, y está bien llamarlo. Decir que es causado por un "defecto de diseño" es señalar con el dedo al tipo que tienes delante (lo más probable es que el "papá") y decirle que es un idiota.

No es necesario y contraproducente. Sugiero:

"En lo que respecta al problema #blah, creo que puedo solucionarlo haciendo X Y y Z, pero no estoy seguro de cómo afectará esto al resto del proyecto. ¿Estaría bien?"

Donde X Y y Z corrigen el problema. Deja que te digan que fue un defecto de diseño; Puede haber una solución alternativa. O las suposiciones detrás de la 'falla' pueden ser tan profundas a lo largo del proyecto que cambiarlo solucionará el error pero ¡romperá todo lo demás!

    
respondido por el Steven A. Lowe 06.01.2011 - 04:05

Lea otras preguntas en las etiquetas