¿Son los ingenieros de software generalmente malos para explicar cosas a personas que no son técnicas?

Algunas de estas respuestas son raras, algunas son buenas. Hay algunos mitos que necesitan ser descubiertos.

En los años 80 y 90, la imagen de un programador (lo que hoy podríamos llamar ingeniero de software) era un poco diferente. La mayoría de las empresas utilizaron un modelo que estaba muy formalizado para desarrollar su software (por lo general, Waterfall, V-Model o una versión incremental de uno de los primeros). Es posible que se hayan practicado métodos ágiles en algunos lugares de la industria, pero definitivamente hubo un estigma de que el programador reciba un documento sobre qué construir, y luego vaya y codifique. (Una sensación similar se aplicó a muchas otras disciplinas de ingeniería).

Así que me pareció bastante sorprendente y refrescante cuando entré en el campo de la universidad con mi título de Ingeniería en Computación para descubrir que a menudo NO son los problemas técnicos los que nos retrasan como equipos. Es la habilidad blanda los problemas de las personas. ¿Qué quiero decir con eso? Ni siquiera es necesariamente una cuestión de explicar a los clientes no técnicos o miembros del equipo en qué hemos estado trabajando, sino encontrar una manera de compartir adecuadamente en lo que estamos trabajando, y luego revisar cada uno. otros trabajan de una manera que es útil para otros.

La realidad es en realidad lo contrario. Los equipos en los que he trabajado mejor, aprendieron a comunicarse entre sí y los mejores equipos se destacaron. No se trataba de logros individuales sino del trabajo del equipo colectivamente (lo que va en contra de gran parte de lo que aprendí en la universidad para este fin).

Entonces, volviendo a la pregunta original. “Depende” es la respuesta que se aplica. Hay algunos ingenieros de software que son MUY buenos para presentar y compartir conocimientos con otros. Hay algunos que todavía están trabajando en ello, y hay algunos que luchan con él.

Tendría cuidado de suponer que obtendrás mala información de cualquier ingeniero de software, solo porque el estereotipo no se mantendrá en todos los casos. Además, tendría cuidado al interrumpir a mi ingeniero de software para obtener respuestas a preguntas ‘no técnicas’. Gran parte del trabajo que hacemos depende de establecer un flujo que sea positivo para producir el trabajo que hacemos. Las interrupciones a menudo detienen lo que sucede en la mente y, por eso, lleva tiempo volver a subir. Entonces, si interrumpe a un ingeniero que está trabajando en un problema particularmente complejo, no se sorprenda si su mente es un poco más técnica en su explicación de lo que desea, porque tampoco los pone en el lugar. Después de todo, no es tanto la regla, pero como con la comedia, el momento de la comunicación es crítico.

Voy a tomar el contrapunto de todas las respuestas actuales: los ingenieros de software definitivamente están por encima del promedio cuando se trata de explicar cosas técnicas a los no técnicos, y los buenos ingenieros se destacan en eso.

Contrariamente a la creencia popular, los ingenieros de software no son criaturas solitarias que arrojan código cuando se les alimenta con alimentos poco saludables. La ingeniería de software no se trata de escribir código, se trata de resolver problemas significativos como equipo. El SWE es solo el que implementa parte de la solución.

En una semana típica, paso al menos el 20% de mi tiempo en reuniones. Este es tiempo explícitamente dedicado a discutir problemas técnicos con personas que no son ingenieros. Si no puedo explicar por qué en lo que estoy trabajando es lo más importante que puedo hacer con mi tiempo en este momento, me invitarán a hacer otra cosa.

Al codificar, no es suficiente escribir código que funcione. El código debe revisarse antes de que pueda integrarse a la base de código, por lo que si no está lo suficientemente claro, no se aprobará.

De hecho, en Uber la comunicación es tan crucial para la ingeniería que hasta hace poco era el criterio número 1 por el cual se evaluaba el desempeño del ingeniero. El rendimiento de ingeniería experimentó algunos cambios desde entonces, pero la comunicación sigue siendo una de las habilidades esenciales que se espera que muestre un ingeniero.

Richard Feynman dijo: “Si no puedes explicarlo simplemente, no lo entiendes lo suficiente”. Pero si un ingeniero de software no puede explicarlo simplemente, ni siquiera entrará en producción.

Si alguna vez visitó un hospital últimamente, es posible que haya observado que los médicos tampoco son tan buenos para “explicar cosas” (cosas médicas) a los pacientes.

Creo que la mayoría de las personas que se especializan en un dominio (ingenieros de software, médicos, estadísticos, ingenieros de naves espaciales, economistas) tienden a acostumbrarse a una jerga particular y suponen implícitamente que todos lo saben; También toman muchos “conceptos básicos” de su profesión como obvios, olvidando darse cuenta de que algunas personas no están familiarizadas con ellos. Por lo tanto, las explicaciones se vuelven técnicas y crípticas.

A menudo, medio en broma, sugiero a las personas que expliquen las cosas como si se las estuvieran explicando a su tío (o tía, personas que saben que son “personas simples” fuera del dominio, obviamente esto no se aplica a todos). A veces esto ayuda da un poco de contexto …

Los ingenieros en general no son buenos para comunicarse con personas no técnicas. Es una habilidad que se puede practicar; A la mayoría de las personas no les importa tomarse el tiempo para hacerlo.

Alguien que puede cambiar de contexto sobre la marcha es inmo rara avis *. Pero lo encuentras entre cualquier grupo que tiene una jerga propia.

Por otro lado, desafortunadamente, las personas que pueden escuchar activamente no son comunes.

Me han dicho: “Sí, pero eres ingeniero. El inglés es solo su segundo idioma, el primero es FORTRAN “.

* pájaro raro de hecho

Es difícil explicar la tecnología a personas no técnicas. Cuando lo hago, tiendo a caer en el vocabulario que uso a diario. Además, hay conceptos tan fundamentales que alguien necesita saber primero. A menudo tan fundamental que doy por hecho ese conocimiento.

Como ejemplo, le estaba mostrando a una novia cómo usar la palabra. Abrí la aplicación para ella y le estaba explicando cómo abrir un nuevo documento haciendo clic en el icono del nuevo documento. Estaba confundida y le preguntó qué significa “clic”.

No hace falta decir que tuve que respaldar aún más. Pero es común cuando estoy cubriendo un tema técnico, que la persona a la que le estoy explicando no comprende conceptos fundamentales como los patrones de diseño. Por lo tanto, lo que es una simple discusión de 60 segundos con un compañero, podría convertirse en un “se necesita mucha más información” antes de que podamos hablar.

Algunas de las respuestas aquí son groseras / ofensivas limítrofes, independientemente de la profesión en cuestión.

Los ingenieros de software son personas. Tienen una variedad de otros pasatiempos, intereses, antecedentes familiares y habilidades fuera de la ingeniería de software.

Hacer suposiciones generales sobre los grupos es irrespetuoso con las personas del grupo.

Eso es cierto para las razas, los géneros y las profesiones.

Por favor, aprenda a respetar a las personas y deje de buscar excusas para generalizar sobre grupos de personas.

Gracias.

Sí, porque trabajamos toda nuestra vida con las cosas técnicas, y muy a menudo estamos completamente desconcertados por las preguntas que demuestran la falta total de pistas. Ayer, no uno sino dos llamados desarrolladores, es cierto que no eran especialistas en Java o especialistas en la nube, pero preguntaban la diferencia entre Spring y Kafka y podrían trabajar juntos. Recibo muchas de esas preguntas y muchas veces estoy desconcertado y me resulta difícil responder de una manera tranquila, pero muchas veces encuentro buenas respuestas, analogías y les muestro imágenes o dibujo en la mesa mientras lo explican. Todavía es frustrante.

Los programadores de computadoras en general tienen muy pocas habilidades de comunicación. Un programador que puede escribir un párrafo de inglés correcto y / o explicar incluso un concepto simple de manera comprensible para un no especialista es una joya muy rara. A menudo, estos pocos raros pasan al análisis de sistemas u otros dominios en los que su doble capacidad para comprender la programación y la comunicación se puede aprovechar.

Observo que existe una correlación entre las habilidades de programación muy fuertes y las habilidades de comunicación, pero esto puede deberse simplemente a una mayor inteligencia en tales individuos. Los programadores de variedades de jardín y mediocres se comunican e interactúan con dificultad.

More Interesting

¿Qué es la paradoja de los pesticidas en las pruebas de software?

¿Cuáles son las oportunidades de crecimiento en Cisco (India) como desarrollador de software para una nueva?

¿Cuál es la mejor manera para que un profesional de TI migre a los Estados Unidos?

Profesionales: ¿Qué separa a íconos como Steve Jobs y Bill Gates de sus empleados o competidores que trabajan tan duro como ellos o tal vez incluso más?

¿Qué lenguaje / s de programación utiliza Google principalmente para sus algoritmos de búsqueda eficientes?

¿Cuál es la mejor oportunidad profesional, Java o .NET?

Recibí dos ofertas de trabajo como ingeniero de automatización de software. Uno de Unisys y el otro de Accenture. Ambos están en el espacio de contratos federales. ¿Con cuál debo ir y por qué?

¿Qué es lo que te apasiona y técnicamente, en qué estás más interesado en trabajar? Software

¿Cuál es el software más sorprendente que has escrito?

Cómo asignarme una tarea de programación

¿Cuáles son los 3 proyectos de código abierto más grandes por esfuerzo total de programación?

Como desarrollador o probador, ¿por qué Agile es beneficioso para usted? Como ayuda

¿Cómo se construyeron grandes proyectos de software para desarrolladores múltiples antes de la creación de redes informáticas?

¿Cómo se sienten los ingenieros de las compañías tecnológicas acerca de la profesión contable?

Desde una perspectiva de UX, ¿cómo deberían las compañías de software aumentar sus precios?