Todavía estoy en la escuela y sé que tengo problemas para tratar con otras personas.
No soy enojado, tímido o diferente, solo me gusta trabajar a mi manera y con mis opiniones respetando las de los demás, tengo una gran curiosidad y hambre de conocimiento, pero me falta práctica y creo que la gente no quiere trabajar conmigo porque podrían temer que yo hablara algún tipo de moral. (Por ejemplo, comencé a aprender programación usando Linux en lugar de Windows, incluso si uso mucho Windows. Y tengo una Mac).
¿Qué les sucede a los programadores que carecen de trabajo en equipo? ¿Dónde comienzan los problemas? ¿Ser un buen programador compensa al menos un poco? ¿Es normal que un programador tenga una visión sobre su trabajo en lugar de simplemente hacer lo que le dicen?
Respuestas:
Tu comportamiento es bastante común a tu edad. Yo era como tú.
La buena noticia es que la mayoría de las veces, evoluciona en la buena dirección. Aprenderá cómo integrarse dentro de un equipo. ¡Lo amarás! Pero conocí a algunas personas que no pudieron hacerlo y ahora están atrapadas en la depresión.
Dependiendo del estilo de gestión de su empresa, su equipo lo rechazará o simplemente lo despedirá después de un tiempo. Por lo tanto, debe estar preparado para enfrentar algunas dificultades.
El estilo de gestión más común de Francia se basa en el miedo y el castigo. Esta no es una buena noticia para ti, ya que alentará tu individualismo. Entonces alentará tu comportamiento.
Dicho esto, ya sabes que hay un problema contigo, por lo que es una buena indicación de que tienes todo lo que necesitas para evolucionar sin ayuda externa. El primer paso es estar atento. El segundo, el más difícil, es actuar sobre ello.
fuente
Depende de lo que requiera el trabajo. A veces ni siquiera tendrás un equipo para ciertas tareas. Pero la mayoría de las veces, tendrá un gerente.
Además, tener un equipo realmente te ayuda a recordarte de vez en cuando que escribes un código basura. :
Lo que significa que tener un equipo hará que sea más fácil aprender las cosas más rápido. Ser solitario te convertirá en ermitaño;)
fuente
Entonces se hace difícil trabajar en proyectos que son demasiado grandes para un solo programador. Difícil para el programador en solitario, y difícil para el resto del equipo.
Todo tipo de lugares. Actualmente tenemos un solo programador que es malo para trabajar como parte de un equipo. Tiende a hacer atajos que tienen malos efectos en el resto de la aplicación porque está demasiado centrado en solucionar el error que tiene delante. O escribir la nueva característica de tal manera que no sea compatible con el resto de la aplicación. Tenemos que reorganizar las cosas para que el resto del equipo revise cada código de su registro. Pero para no identificarlo, también revisamos los registros de códigos de todos los demás, por lo que, junto con la reunión de estado de la mañana, no trabajamos hasta después del almuerzo. Entonces, en nuestra oficina, esto significa que 4 personas están perdiendo medio día de trabajo todos los días porque un chico es pésimo en el trabajo en equipo. No puedo decir que sea una mejora con respecto a las aventuras anteriores, porque podríamos perder aleatoriamente un día a una semana (generalmente persiguiendo nuevos errores) de sus registros que rompen cosas (los llamamos "robstacles"). Algunas de las correcciones a su código terminarán borrando media docena de errores debido a lo enredada y desordenada que es la aplicación (mi recomendación paraatacarlo desde la órbita y comenzar de nuevo porque esa es la única manera de estar seguro de que no fue aceptado).
Cuando estamos en un estado de ánimo generoso, lo llamamos un "programador cabeza abajo", tiende a mirar el teclado y escribir muy rápido. No presta atención a lo que otros están haciendo.
No. La mayoría de los programadores que son malos jugadores de equipo tienen una opinión muy alta de sus propias habilidades, y esto se llama el efecto Dunning-Kruger . PDF de papel.
Tal vez: el programador en solitario necesitaría ser mucho mejor que el resto del equipo. Pero esto solo significa que nadie más puede mantener lo que hace; y cuando eso sucede, probablemente significa que el programador en solitario no es realmente mejor que el resto del equipo: él (y casi siempre es un hombre) es simplemente mejor para engañar a todos.
En el desarrollo de software empresarial, la compañía estará presente mucho después de que se vaya. Lo más probable es que los programas se hayan escrito antes de comenzar, y se mantendrán mucho después de que usted se haya ido. Si escribes cosas que son tan especiales y sorprendentes que nadie más puede entenderlas, entonces terminas en la situación en la que se encuentra Naughty Dog : su desarrollador principal renunció, nadie más entiende el lenguaje de programación patentado que escribió el tipo (y escribió cosas en), por lo que ahora tienen que cambiar todo a C ++.
Es común, como un embotellamiento o diabetes. No lo llamaría normal. En el mundo corporativo, hay muchas otras cosas a considerar; El fuerte ego que muchos desarrolladores tienen típicamente hace que el desarrollador piense que nada más importa. Esta "falta de ajuste" y falta de consideración para el resto del negocio es la razón por la cual tantos tipos de gerentes llegan a la conclusión de que es difícil trabajar con los desarrolladores de software.
fuente
Es una habilidad que se puede aprender. Puede aprender ahora (simplemente tratando de trabajar con otros) o aprender de la manera difícil, en el trabajo. (Sugeriría lo primero).
Si no puede trabajar con otras personas, entonces no puede construir grandes sistemas. Tampoco puedes trabajar con personas más inteligentes que tú, lo que significa que no puedes aprender tanto o tan rápido.
fuente
Ser un buen programador compensará un poco pero solo un poco. En dieciséis años en la industria, todos los mejores programadores con los que he trabajado podrían seguir adelante con la gente; puede que no haya sido algo natural para ellos, pero lo lograron y fue una habilidad absolutamente clave. Aquellos que no pudieron fueron tolerados pero, sinceramente, no mucho más.
Para mí, el área principal, la capacidad de trabajar con otros entra en juego es con usuarios y analistas. No importa qué tan bien pueda codificar si está codificando lo incorrecto y una buena relación de trabajo con las personas que están definiendo el producto es clave para eso.
El primer paso podría ser entender un poco más sobre ti. Dices que estás feliz de respetar las opiniones de los demás, pero ¿es esto realmente cierto? Si es así, ¿por qué implica que es propenso a adoptar posiciones morales sobre los problemas (que tienden a ser lo opuesto a respetar las opiniones de los demás)?
En general, llevarse bien con los demás tiende a ignorar quién tiene la razón y quién está equivocado (lo que cree o no es irrelevante en el 80% de las situaciones) y centrarse en hacer lo que sea que haga avanzar el proyecto.
fuente
El desarrollo profesional de software hoy es principalmente un esfuerzo de equipo. El mejor software se produce mediante el intercambio de nuevas ideas y una alta colaboración, y no jugando con tu yo solitario. El ideal del codificador de vaqueros es un impedimento conocido para los equipos. De hecho, es por definición todo lo contrario del trabajo en equipo.
Entonces sí, tener malas habilidades de equipo en un entorno de equipo es muy malo. Pero si está sinceramente dispuesto a trabajar con él, ¡no hay razón para que eventualmente no sea un gran colaborador de equipo (con excelentes habilidades de codificación para arrancar)!
fuente
Otros ya han cubierto la mayor parte de lo que iba a decir, así que solo agregaré esto: solo porque tenga una opinión o una visión no significa que tenga razón o que su enfoque sea el mejor. Hay mucho que puedes aprender de los demás si abres tu mente a la posibilidad de que ellos también tengan una opinión y / o visión.
El trabajo en equipo consiste en hacer que todas esas opiniones se unan en algo que se base en la experiencia colectiva de las personas involucradas y aborde defectos que una sola persona podría no haber considerado.
Esa fue una de las primeras lecciones que aprendí en el trabajo, y me convertí en un mejor programador después de eso.
fuente
Si no puede colaborar con otros y no es un genio estelar nato de la codificación, básicamente se bloquea para trabajar en cualquier proyecto no trivial, porque para estos desea un equipo, si no es otra cosa que reducir el factor del bus.
Si simplemente no le gusta el contacto físico, pero trabaja bien con el teletrabajo o en las listas de correo de código abierto, tendrá que especializarse en esas habilidades que le permitirán trabajar de esa manera.
fuente
Desafortunadamente, esto puede ser un problema, ya que es raro trabajar en proyectos grandes y no tener que trabajar en equipo. Incluso si trabaja en un proyecto de manera interdependiente, generalmente encontrará que tiene que trabajar más de cerca con los usuarios finales, lo que vuelve al trabajo en equipo, por lo que es algo muy importante.
Sin embargo, dicho esto, como otros han señalado, esta es una habilidad que se puede aprender (hasta cierto punto) y si pones el esfuerzo en ello. Generalmente hay algunos cursos que puede tomar aquí en los Estados Unidos en ciudades más grandes para desarrollar habilidades de liderazgo; sin embargo, parte de ser un buen líder también es ser un buen seguidor, por lo que esas habilidades también se desarrollan. Del mismo modo, ser capaz de comunicarse efectivamente en público a veces es una habilidad con la que las personas necesitan practicar y está relacionada con las habilidades de trabajo en equipo, pero a veces se pasa por alto: alguien que no puede comunicarse de manera efectiva podría ser citado como no "jugador del equipo" aunque solo necesito trabajar un poco en sus habilidades de comunicación.
Sin embargo, una gran parte de trabajar con un equipo es conocerte a ti mismo y sentirte cómodo contigo mismo y con los demás, por lo que a veces no hace daño hablar con un psicólogo o consejero para ver si hay algo que puedas mejorar. en lo que respecta a trabajar con otros.
Con respecto a su carrera como un todo, aquí en los Estados Unidos, tener una reputación de "ser difícil trabajar con" o "no ser un jugador de equipo" puede ser extremadamente perjudicial para sus perspectivas profesionales a largo plazo y me arriesgaría a adivinar que sería lo mismo en la mayoría de los otros países. Esta también es una reputación difícil de sacudir una vez que se ha establecido sin tener que mudarse a otra compañía o posiblemente a otra industria, dependiendo del campo en el que trabaje.
fuente
Como eres un buen alumno, hay una cosa más que debes aprender, que algunas personas ya saben.
Hay momentos para ser independientes, y hay momentos para unirnos. Los dos son importantes.
Ya que estás en la escuela, puedes ejercitar tu curiosidad y buscar nuevas y diferentes formas de hacer las cosas. Esa es una buena cosa.
Cuando trabajas con un equipo de software, puedes aportar tus buenas ideas. Algunos serán aceptados. Algunos no lo harán. Luego, todos "ponen su hombro al volante" y hacen el trabajo. Eso también es algo bueno.
Mi experiencia en proyectos es que hay una moral grupal que es baja al principio, cuando la gente todavía está tratando de enfocar el panorama general. Luego, la moral aumenta constantemente a medida que se avanza hacia la meta. Hacia el final es muy alto ya que su "bebé" viene a "nacer". Eso es algo que no quieres perderte.
fuente
Puedo pensar en varios programadores excelentes que son considerados (por muchos) como "bastante difíciles de trabajar":
En esta industria, creo que una buena cantidad de nosotros esperamos y asumimos que la competencia y la capacidad de articular nuestra competencia es crítica. Después de todo, vamos a trabajar para realizar algunas tareas con el fin de ganar dinero, hacer amigos es secundario.
En algún momento de tu vida, te darás cuenta de una de dos cosas:
Usted está en condiciones de ser tan sarcástico, retraído, antisocial, cínico o grosero como quiera, porque a pesar de su comportamiento, sus habilidades (y su capacidad para articular su conocimiento) terminan con todos los argumentos.
Usted es como todos los demás y necesita poder trabajar en equipo, mientras soporta (y escoge el cerebro) un comportamiento sarcástico, retraído, antisocial, cínico y grosero de otros cuyas habilidades y competencia para articular el conocimiento termina la mayoría de los argumentos.
Si está cuestionando esto, creo que ve algún valor en participar de manera agradable en un entorno de equipo, y tal vez 'hacerlo por el simple hecho de hacerlo' es una excusa suficiente para explorar la posibilidad.
También me parezco mucho a ti. Odio las interrupciones. Me llevó casi cinco años aprender a no interrumpir y despedir a las personas. También trabajé en equipos donde aprendí más en un mes de lo que podría haber aprendido en un año por mi cuenta. ¿No es extraño que solo quieras personas a tu alrededor cuando tienes algo interesante que mostrar o discutir?
Si aún no lo ha visto, vea la película " Real Genius ". Presta especial atención a Lazlo Hollyfeld . Salta a un equipo con una mente abierta, y no dudes en pedirme prestado mi pijama.
fuente
No tiene nada de malo tener opiniones firmes sobre cómo deberían ser las cosas. Cualquier gran programador tiene muchos de ellos. Sin embargo, debe preguntarse: ¿por qué estoy escribiendo este código?
Si es para tu propio entretenimiento, y puedes hacer todo el trabajo tú mismo, entonces haz lo que quieras. Sin embargo, si lo está haciendo para que otras personas lo usen, o si necesita ayuda, o si espera que otros programadores la mantengan después de aburrirse, deberá comenzar a tener en cuenta las necesidades y nociones de otras personas.
Tener una visión está bien. Pero en realidad solo hace la diferencia si puedes persuadir a otras personas para que compartan tu visión. Gates, Jobs y Torvalds lograron dar vida a sus visiones al hacer productos que sirvieron a mucha gente y lograr que compren sus visiones. Trabajar a tu manera es más puro y satisfactorio, pero tiene un costo. Puedes, como dijo Voltaire, dejar que lo perfecto sea enemigo de lo bueno ("Le mieux est l'ennemi du bien").
fuente
El trabajo en equipo es una parte importante de la ingeniería de software. Si está trabajando solo, es posible que no le moleste cómo son los demás y qué esperan las personas de usted. Pero si está trabajando con otra persona, trabajar juntos realmente cuenta. Cuando se trata de software, lo que quiere decir con trabajo en equipo es realmente un " buen comunicación ". Simplemente respete a su colega y sea tolerante con todas las ideas. Debería estar bien.
fuente
Si cree algo, dígalo y dígalo en serio, pero una vez que se demuestre que está equivocado o superado, acéptelo y aprenda de ello. El trabajo en equipo no consiste en ponerse de acuerdo todo el tiempo, sino en tener una manera de llegar a las mejores soluciones posibles en la situación y el marco de tiempo dados.
fuente
Como se está preparando para ingresar a la fuerza laboral, voy a señalar algo más.
Los programadores de nivel básico nunca son superestrellas. No puedes entrar a un trabajo pensando que eres mejor que los demás porque, evidentemente, no lo eres. Has estado compitiendo con otras personas a tu nivel, así que puedes pensar, soy mejor que estas personas, debo ser un gran programador.
Pero alguien recién salido de la escuela no sabe lo que sabe la persona que tiene diez años de experiencia profesional. Simplemente no lo sabes todavía. Ahora admito que no todos los que tienen mucha experiencia son una superestrella tampoco y el solo hecho de ser principiante no significa que no puedas ser un programador decente. Ni siquiera significa que no puedas convertirte en una superestrella con menos sazón que otras personas (Bueno, algunas nunca serán superestrellas, pero eso también está bien).
Pero no tendrá la credibilidad para implementar sus ideas hasta que no sea la persona más joven del equipo. Para obtener esa credibilidad, debes ser un jugador de equipo. Necesita aprender sobre el dominio comercial y cómo operan las empresas. Debe comprender que sus necesidades y deseos personales son irrelevantes en la mayoría de los lugares de trabajo. Serás contratado para hacer un trabajo específico y producir resultados. Hasta que haya producido algunos de ellos, las personas serán escépticas de lo que sugiera, incluso si tiene razón. Tienes que caminar el camino antes de poder hablar.
fuente
Terminarás trabajando solo.
Beneficios de trabajar en equipo:
1- Ayuda interactiva: no se quedará atrapado en un problema durante horas / días.
2- Aprenderá cosas que no encontrará en libros / tutoriales en línea, foros.
3- Competencia: alimentará tu motivación para superar a los compañeros de té.
4- Discusiones: que es mejor que horas leyendo libros y blogs.
fuente