Ingeniería de software.
Primero, disipemos el mito de que la ingeniería de software (SE) es lo mismo que la programación.
¡Es más grande!
- Si tuviera un algoritmo muy rápido y distribuido para resolver el problema 3-SAT, ¿cuáles son los mercados relevantes para este algoritmo? ¿Para qué industrias sería relevante?
- ¿Cómo pueden los desarrolladores incorporar inteligencia artificial o aprendizaje automático en su software hoy?
- ¿Dónde puedo encontrar datos para practicar la ciencia de datos?
- ¿Los usuarios de Quora usarían Dice.com para encontrar un trabajo tecnológico?
- ¿Cuál era el tamaño de la memoria de la computadora básica?
- SE> programación + prueba
- SE> diseño + programación + pruebas
- SE> arquitectura + diseño + programación + pruebas
- SE> Requisitos + arquitectura + diseño + programación + pruebas
- SE> Negociación + requisitos + arquitectura + diseño + programación + pruebas
- SE> gestión de proyectos + negociación + requisitos + arquitectura + diseño + programación + pruebas
- …y así.
Dada la escala actual de sistemas y el poder de cómputo barato y la distribución global de recursos y equipos, ¡simplemente ser bueno en la visión limitada del ciclo de vida del desarrollo de software no es realmente suficiente!
Comprensión del panorama general:
- ¿Por qué lo necesitamos?
- Quien lo necesita
- ¿Qué tenemos que hacer para hacerlo?
- ¿Alguna asociación para forjar?
- Cuales son los riesgos?
- ¿Cuáles son los beneficios medibles?
- ¿Cuáles son los costos (de todo lo anterior)?
- ¿Qué es realmente importante / valioso / vale la pena hacer?
- ¿Cuánto se puede hacer teniendo en cuenta las limitaciones de horario / presupuesto?
- ¿Cómo podemos rastrear si realmente hicimos un buen trabajo?
- …¡y así!
¡Los puntos anteriores ni siquiera implican escribir una sola línea de código! Hay un viejo adagio en el mundo SE: la ingeniería de software es 80% de ingeniería de personas y 20% de desarrollo.
¡Los ingenieros de software del mañana no solo pueden ser buenos en los aspectos técnicos! Desperdiciamos miles de millones de dólares en malas inversiones en software (por ejemplo, Google para informes de Standish Chaos). ¡Y no porque la solución fuera tecnológicamente pobre, sino porque estaba mal administrada!
La mayoría de la gente puede aprender a codificar / probar bastante bien, pero aprender los verdaderos principios de SE – construir bien el software y administrarlo y comprender el panorama general es ¡órdenes de magnitud más importantes!
Hay tanto que aprender e innovar que te dejará boquiabierto. Este campo necesita muchos más pensadores y hacedores. Pero todo lo que tenemos son codificadores y probadores, pero muy pocos ingenieros, según las necesidades descritas anteriormente.
SE no es tan maduro como la ingeniería civil u otros campos de la ingeniería clásica. Por lo tanto, hay mucho que aprender y cambiar. De hecho, es bastante rico y fascinante. Considere seriamente este campo: ¡se sorprenderá gratamente de su profundidad!