¿Cómo lidiar con la "programación agresiva"? [cerrado]

18

Así que estoy seguro de que todos se han topado con esta persona en un momento u otro, alguien se entera de su proyecto o idea e inicialmente muestra cierto interés. Puede hablar sobre algunos de sus métodos y, por lo general, alrededor de esta época se interponen diciendo cómo debe usar el método X, o simplemente usar la biblioteca Y. Pero no como una sugerencia amigable, sino que limita con un mandamiento. A menudo repite el mismo consejo una y otra vez como un loro demasiado celoso.

Personalmente, me gusta reinventar la rueda cuando estoy aprendiendo, o incluso por diversión, incluso si resulta peor de lo que se ha hecho antes. Pero esta persona aparentemente no puede imaginar recrear CUALQUIER utilidad para tales propósitos, o posiblemente intentar algo que no siga estrictamente las prácticas tradicionales de OOP, y no se conformará con nada excepto su sentido de perfección, y por lo tanto, naturalmente, arrojará su fango de críticas por mis oídos con toda su fuerza. . Para colmo, eventualmente comienzan a justificar su consejo (retraso) al enumerar todas las cosas increíblemente complejas que han codificado por sí solas (generalmente en la línea de "confía en mí, he hecho / usado el programa X durante mucho tiempo"). , bla, bla, bla").

Ahora, estoy lejos de ser un maestro de programación, probablemente ni siquiera soy tan bueno, y como tal valoro los consejos y las críticas, pero creo que los consejos / críticas tienen un momento y lugar. También hay una gran diferencia entre ser útil y ser narcisista. En el pasado, probablemente hubiera usado un rechazo de estilo George Carlin algo más fuerte, pero no creo que quemar puentes sea el mejor enfoque.

¿Tienes algún consejo sobre cómo lidiar con este tipo de flagelación verbal?

Peter G.
fuente
10
También me gusta "reinventar la rueda". Esa es una excelente manera de entender realmente una nueva tecnología. Lo que, a su vez, te ayuda con los demás. Además, francamente, a menudo es tan rápido reinventar una rueda como aprender, mantener y alterar la rueda mal codificada y mal documentada de alguien.
GrandmasterB
31
Reinventar las ruedas es excelente para aprender y muy recomendable. Sin embargo, para el código 'real' que va a hacer algo importante, ¡elija la solución probada existente!
Peter Boughton
66
A veces, cuando "reinventa la rueda", termina "construyendo una mejor trampa para ratones".
Rusty
2
Haces una rueda de mierda, entiendes que ES una mierda, y ve y encuentra una fantástica hecha por alguien que sepa cómo hacerlo.
1
@Rusty, con el problema de que es una trampa para ratones y no una rueda;)
Matthew Whited

Respuestas:

36

No solo los dejes hablar. Ponlos frente a un teclado. La frase "ok, muéstrame" debería hacerlo. Mi experiencia es que la mayoría de los golpes no son tan buenos, y cuando realmente intentan hacer lo que dicen, no funciona y las cosas se ponen realmente tranquilas.

Conrad Frix
fuente
1
Puedo esperar Honestamente, probablemente sean mejores programadores que yo, pero me cuesta mucho aprender de, o estar en la misma habitación que un embaucador social haciendo alarde de sus habilidades como si fuera una licencia para ser un completo idiota.
Peter G.
1
El hecho de que sean mejores que tú no significa lo que siempre saben de lo que están hablando.
Conrad Frix
Voy a probar su método, la próxima vez que suceda. Gracias.
Peter G.
2
Pragmático es la palabra clave.
rwong
1
@PeterG. como fue esto
17

Llevo treinta años programando. Conozco a muchas personas que me consideran un "maestro de programación". ¿Quieres saber mi pequeño secreto sucio? Apenas soy competente en algunas áreas, pero eso es todo. Sobre todo soy un asco .

He trabajado con algunos genios increíbles en esos años, no con el genio de la actriz en un podio burbujeante sobre su coprotagonista, sino con el deslumbrante coeficiente intelectual, Genius con un genio de capital-G. Heck, he leído a Knuth.

Si trabajas duro y lo suficiente, tarde o temprano, te darás cuenta de que lo mejor que puedes hacer es realmente insignificante en comparación con la amplitud y profundidad del talento que hay. No veo cómo alguien puede llegar a ese punto y salir con cualquier cosa que no sea la más profunda humildad.

Cualquiera que domine sus puntos de vista sobre otra persona y crea que su camino es el correcto sobre todo lo demás, simplemente no es un muy buen programador. Toma mi palabra por ello.

Mi consejo, estás en el camino correcto no quemando puentes. Escucha cortésmente, toma lo mejor que puedas y luego sigue tu propio camino.

par
fuente
Creo que hay diferentes maneras de ver "ser bueno", a veces comparo el tipo de programación que hago con un artesano / comerciante, dudo que alguna vez logre un gran avance en la informática o invente algún algoritmo loco que pueda ser un gran avance, sin embargo, las personas que hacen ese tipo de cosas a menudo se aburren creando aplicaciones "normales", ya que siempre quieren algo cada vez más desafiante, de todos modos estoy divagando, pero creo que hay algo que decir por ser un sólido programador en algunas áreas, ya que aún puede ser muy valioso para un empleador
programmx10
5

Como la mayoría de las situaciones sociales, depende del contexto.

Si esta persona está en un papel principal (el contexto probablemente sea un lugar de trabajo), entonces eres una especie de manguera a menos que puedas convencerlos de que usen técnicas diferentes a las que elijan. Esperemos que estén abiertos a las críticas de su equipo. En muchos casos, descubrí que presentar argumentos buenos, sólidos y basados ​​en hechos sobre por qué su enfoque particular es mejor para el proyecto a menudo los convencerá. Si continúan siendo tercos solo porque "así es como se supone que debe hacerse" (o alguna otra razón tonta), entonces terminan viéndose mal de todos modos y parece que al menos trataste de ser racional. En este caso, también recomendaría revisar carreras . Entonces ...

Si esta persona es su compañero, puede ignorarlo y seguir adelante. Mejor sería pedirles que expliquen por qué valoran una biblioteca o enfoque en particular. A través de la discusión, pueden darse cuenta de que sus limitaciones son diferentes de lo que anticiparon (por ejemplo, no necesita una "biblioteca súper rápida X increíble" porque no necesita una velocidad de pedal al metal sin procesar, o no no desea usar el "componente precompilado Y" porque su objetivo es minimizar las dependencias). También puede obtener información valiosa sobre algunos de lo que están sugiriendo. Por lo general, en situaciones como estas, termino yendo principalmente a mi manera, pero generalmente también obtendré información útil al menos en cualquier enfoque / tecnología / biblioteca que defienden.

Si esta persona está debajo de ti, entonces dile que se moleste :) Ok ... tal vez sea un poco más constructivo que eso (¡no seas el mismo tipo de persona con la que estás tratando de tratar!), Y nuevamente intenta Comprenda lo que está sucediendo y comuníquese de manera efectiva.

Al final, si la persona realmente está siendo un duro fanático que no quiere comprometerse, no es de mente abierta y no le importa aprender; entonces todo lo que realmente puede hacer es ignorarlo e intentar sacar lo mejor de la situación.


fuente
Probablemente todavía no soy lo suficientemente bueno como para conseguir un trabajo, por lo que todos son compañeros / personas en línea / etc. No tengo problemas para aprender otros métodos (en realidad lo valoro), pero cuando le digo a alguien que quiero probar esto, y luego responden diciendo cuán horrible es una idea, siento que la pierdo. Quizás evitar es el mejor enfoque.
Peter G.
2
Para Nick, no ignoraría a un compañero duro. Tienen la capacidad de escabullirse debajo de ti y explotar tus iniciativas. Blowhards tiende a ser político también, por lo que es mejor nunca subestimar su capacidad de hacer daño, por tontos que sean.
luis.espinal
1
@luis "Blowhards también tiende a ser político, por lo que es mejor no subestimar su capacidad de hacer daño", ... si pudiera, le daría +100 en esto. He estado allí, lidié con eso.
Bill
1
@Peter G: si eres un estudiante. Ignóralos, deja de conversar. Avanzarán a tiempo y tú también. Si está empleado ... tiene muchos problemas diferentes.
rápidamente_ahora
5

Intenta descubrir por qué siente la necesidad de entrometerse de esta manera.

  • ¿Teme que hagas algo incorrecto y malgastes el dinero / tiempo de la empresa?
  • ¿Es inseguro y teme ser irrelevante?
  • ¿Está tratando de ser útil, sugiriendo una mejor solución, pero fracasando?
  • ¿Está malinterpretando su objetivo al explorar el espacio de la solución?
  • ¿Es esta su forma de ser amigable?
  • ¿Alguien le dijo que siempre deberías usar X, por lo que siempre sugiere X? ¿Por qué le dijeron eso?
  • ¿Es un vendedor de tecnología X?

Todos estos tienen diferentes respuestas.

Con una mejor comprensión de su 'duro', comience por perder esa etiqueta para él, será mucho más capaz de encontrar una manera de trabajar juntos.

También podría investigar por qué esto le molesta tanto. ¿Por qué no puedes ignorar su entrada o desviarla inofensivamente?

Alex Feinman
fuente
+1 por considerar que podría no darse cuenta del efecto que está teniendo. La mayoría de las personas que nos molestan no tienen idea de lo que están haciendo y, a menudo, terminamos interpretando lo que alguien dice en función de nuestras experiencias, que son diferentes a las de ellos, por lo que hemos atribuido significado a un comportamiento y establecemos "reglas" que nadie conoce sino nosotros.
Tim Claason
2

Cambie a un modo de programación funcional. La mayoría de los expertos conocen Java y nada más. Entonces, en el momento en que los golpees con algo extraño como decir Haskell o Lisp o incluso Ruby, se detendrán en seco.

Zachary K
fuente
1

Les diría que se jodan (podría usar más verborrea diplomática si lo desea) o simplemente ignorarlos. No hay muchas opciones más allá de lo que he dicho. (El asesinato podría funcionar, pero la legalidad varía según el lugar).

ChaosPandion
fuente
44
No creo que sea la mejor manera de lidiar con la situación ...
TheLQ
1
He intentado el enfoque menos que diplomático, pero no me gusta hacerlo. Gritar solo me hace sentir peor. Muchas veces he tenido ganas de golpearlos a través de una pared, pero generalmente son mucho más grandes que yo (me viene a la mente Shamu). Y en mi físico de cornstalk de 6 '130 libras, sería como intentar asaltar una bola de boliche con un limpiador de pipas.
Peter G.
@ Peter: estoy considerando eliminar esto, ya que no es exactamente una respuesta seria de mi parte.
ChaosPandion
1
Está bien. La vida necesita más comedia / sarcasmo de todos modos.
Peter G.
No creo que me hayan llevado tan lejos en el lugar de trabajo, pero esta es probablemente su única opción con un extremo duro.
JeffO
1

¿Por qué te importa lo que dice esta persona? ¿Son tu jefe? ¿A quien le importa? Cada trabajo tiene un chico, con suerte no tú, que evitan, o lo escuchan venir por el pasillo y se agachan. Simplemente no les gusta. Puede que ni siquiera sepan por qué. Pero así es como es el mundo. Sé cordial y a quién le importa. Parece que quieres tu libra de carne y golpearlo un poco.

johnny
fuente
Difícil si trabajas para alguien así.
rapid_now
0

Había un tipo como este en mi último lugar de trabajo. No solo tenía una opinión sobre cada tarea discreta en la que todos los demás estaban trabajando, sino que también se enrollaba y preguntaba "¿qué estás haciendo? ¡Solo estoy interesado!" justo cuando estaba entrando en una tarea, en lugar de continuar con su propio trabajo al que había sido asignado. Una cosa es tener una opinión sobre algo de vez en cuando, cada uno de nosotros tiene puntos de vista, y los equipos productivos siempre deben estar abiertos a las aportaciones válidas de sus pares, pero es una perspectiva muy diferente cuando una persona repetidamente deja a otros desarrolladores de su trabajo al pedirles que lo hagan. Detener lo que están haciendo y explicárselos, con la esperanza de que puedan desarrollaruna opinión durante el curso de la conversación que proponen tener en lugar de dejar que sus colegas continúen con su trabajo.

Cuando este tipo en particular intentó lo anterior conmigo, su línea de apertura fue "¿Qué estás haciendo?", A lo que di un resumen breve y cortés de la tarea en la que estaba empezando, en caso de que en realidad solo preguntara casualmente que buscar un debate largo y poco esclarecedor sobre el tema, como sospechaba por dolorosa experiencia previa, era su intención. Cuando, en respuesta a mi explicación general, continuó diciendo "¿No entiendo? ...", en un tono que sugería que nada me haría más feliz que detener lo que estaba haciendo para explicarle mis intenciones con más detalle, Solo dije "¿Por qué necesitarías entender?", Lo que lo detuvo en seco.

Todos los demás desarrolladores de la oficina se rieron a carcajadas mientras regresaba malhumorado a su asiento, incapaz de responder a mi pregunta. La lección aquí, si puedo presumir de dar una, es que estas personas siempre se tratan mejor de manera civil y tranquila, pero con firmeza. Si no logra entretener su interferencia con su trabajo, y corta cualquier conversación que amenace con tomar el tono de una discusión antes de que comience, estas personas generalmente no tienen a dónde ir en su intento de descarrilar su proceso de pensamiento.


fuente
No estoy seguro de que me guste ese enfoque, todos en el equipo deberían saber qué están haciendo los demás: enfoque y todo, de lo contrario, si están fuera por alguna razón, nadie puede aprender de ellos. Además, cuando sea posible, todo el equipo debe contribuir con respecto a la técnica para garantizar el mejor enfoque.
Orbling
No estoy de acuerdo: somos equipos de desarrollo, no The Borg. El diseño por comité no funciona, y tampoco lo hace cortar y cambiar tareas como si los desarrolladores fueran simplemente partes intercambiables. Ciertamente estoy abierto a que otras personas contribuyan respetuosamente con puntos de vista y opiniones a mi trabajo, pero como se señaló anteriormente, hago una distinción entre tener una opinión existente y simplemente dejar a otras personas de su trabajo al pedirles que dejen de hacer lo que están haciendo y quemar tiempo explicándote sus ideas. A algunas personas les gusta escuchar el sonido de su propia voz, y este desarrollador en particular estaba en esa categoría.
@orbling, ¡me parece una razón para una reunión programada !
@ Thorbjørn Ravn Andersen: En el mundo moderno, a menudo se han distribuido equipos en los continentes. Una reunión programada puede ser algo muy difícil de lograr, algo que se debe evitar siempre que sea posible.
Orbling
@Orbling, la respuesta hablaba claramente de que los desarrolladores se encuentran en la misma ubicación física. Sin embargo, incluso para equipos distribuidos necesita coordinación para evitar que las personas se vean interrumpidas todo el tiempo.
-2

Golpéelos con la línea "Nunca debe usar algo que no entiende".

Maxpm
fuente