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.
- ¿Cuáles son los rasgos de un desarrollador de software promedio y cómo se mejora de un desarrollador de software promedio a un buen desarrollador?
- ¿Cuáles son los mejores planes de inversión y jubilación que debe seguir un ingeniero de software?
- ¿Cuáles son las áreas de investigación abiertas en arquitectura de software?
- ¿Cómo puedo implementar y monitorear múltiples servicios de Python en múltiples hosts?
- ¿Cuáles son las desventajas de usar Cython vs. C / C ++?
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.