- Documentos de diseño: UML, listado de requisitos, casos de uso, etc. etc. Éstos tienden a ser independientes de la tecnología y el lenguaje, aunque los cambios en las metodologías (Agile vs. Waterfall) podrían requerir ajustes de formato.
- Anti-patrones de diseño: los patrones de diseño se promocionan como herramientas de comunicación entre ingenieros de software. Los antipatrones pueden cumplir funciones similares, pero al reconocerlos en su propio trabajo, puede reparar las cosas antes. Lo que significa un poco menos. . .
- . . . Lidiando bien con las críticas: esto nunca será obsoleto y puede llevarse a cualquier campo.
- Gestión de reuniones: mantener las reuniones en marcha significa mucho más que limitar las tangentes. Asegurarse de que todos se sientan escuchados, realizar un seguimiento de las tangentes que se discutirán fuera de línea, mantener informados a quienes no pudieron asistir.
- MATLAB, IDL, Fortran – Porque simplemente. no lo haré morir.
- Mantenerse al día: mi lector de RSS es la pieza de tecnología de la que menos me gustaría prescindir. Cultivar una lista de sitios o autores de noticias de tecnología y poder elegir de manera eficiente lo que es relevante y lo que no le permite saber a dónde ir si necesita una pieza de tecnología.
Como ingeniero de software experimentado, ¿qué tipo de conocimiento debo obtener, que no será obsoleto para 2031?
Para habilidades técnicas específicas (lenguajes de programación, marcos, plataformas y demás), es literalmente imposible de decir. La tecnología avanza rápidamente y a un ritmo difícil de predecir. Probablemente ni siquiera podamos predecir qué estará en uso dentro de 5 años, y mucho menos 15 años.
Concéntrese en habilidades blandas y principios técnicos que serán los mismos sin importar la tecnología que se utilice:
1. Aprende a comunicarte bien. Eso significa escuchar y leer y escribir y hablar y una buena gramática y transmitir sus ideas claramente
2. Comprensión de los patrones de diseño en software. Dichos patrones de diseño prevalecen independientemente de la tecnología en uso (aunque pueden verse ligeramente diferentes en cada plataforma)
3. Diseño de interfaz de usuario: que incluye presentación, facilidad de uso, etc.
4. Análisis de negocio / requisitos: desarrollo de requisitos de clientes, etc.
5. Trabajando bien con otras personas. Eso significa manejar el conflicto, saber cómo ayudar a las personas que lo están haciendo mal, y aprender de las personas que lo están haciendo bien, y poder trabajar bien con equipos y horarios
6. Un sesgo hacia el aprendizaje y la superación personal: debe explicarse por sí mismo. Siempre busca avanzar y mejorarte
Si eres un ingeniero de software experimentado, tienes mucha experiencia que no será obsoleta en 15 años. Se trata de cosas abstractas: habilidades de comunicación, trabajo en equipo, análisis de sistemas y procesos, diseño de soluciones, interacción con usuarios / clientes.
Todas las tecnologías que utiliza en un momento dado son candidatas para ser historia en los próximos cinco años.
More Interesting
¿Es socialmente inaceptable conducir un Porsche en Silicon Valley como ingeniero de software?
¿Cuál es el mejor consejo que puede dar a un programador junior?
Cómo aprender rápidamente a convertirse en un ingeniero de software senior con experiencia limitada
¿Qué habilidades debo probar al contratar a un ingeniero de software?
¿Vale la pena que un ingeniero de software practique matemáticas en Khan Academy?
¿Puede un ingeniero de software convertirse en ingeniero de datos?