Dejando a un lado a los malos ingenieros de software y las malas organizaciones (respondidas ya por Jack Menéndez), la ingeniería de software debería, en buenas condiciones, tener un gran impacto en los aspectos arquitectónicos y de producción del desarrollo de software.
Si tuviera que proporcionar una respuesta en pocas palabras, diría que la Ingeniería de Software afecta el software producido por ser un tomador de decisiones en todo el proceso de desarrollo. Pero esto requiere un poco de explicación.
Ingeniería de Software participa en todo el ciclo de producción de software; Pre-desarrollo, durante el desarrollo y post-desarrollo.
- ¿Por qué a la gente le gusta la arquitectura?
- ¿Por qué UML todavía está en cursos en entornos académicos? ¿Cuál es el futuro de este lenguaje?
- ¿Cómo se pueden encontrar trabajos de software a tiempo parcial en Hyderabad (preferiblemente nuevas empresas)?
- ¿Cuáles son las diferencias clave entre las metodologías ágil y rup?
- ¿Qué proyecto o empresa utiliza el modelo de cascada?
- Desarrollo previo: Ingeniería de software diseña el software y toma decisiones sobre herramientas. Esta es la fase de análisis y diseño, para la cual se capacitó a cualquier buen ingeniero de software.
- Durante el desarrollo: la ingeniería de software desarrolla, supervisa y adapta el diseño a las condiciones cambiantes. Los ingenieros de software deberían participar idealmente en el proceso de desarrollo junto con los desarrolladores; ellos también son programadores. También debe monitorear si el desarrollo está siguiendo lo establecido durante el diseño y debe ser inteligente y humilde al hacer cambios sobre la marcha en su diseño si el desarrollo demuestra mejores estrategias o si cambian los requisitos del software.
- Postdesarrollo: las responsabilidades gerenciales de ingeniería de software no terminan con el producto terminado. La ingeniería de software ayuda a establecer prácticas de mantenimiento de software y, por lo general, prepara hojas de ruta para otras versiones del software.
Esta es una visión simplista de cómo actúa la ingeniería del software en el ciclo de producción del software. Pero siento que dos notas son importantes:
Nota 1:
La ingeniería de software, como disciplina formal, solo es realmente relevante para proyectos de tamaño medio o grande. Los proyectos pequeños pueden prescindir de la participación formal de los ingenieros de software en la estructura organizativa de los equipos de desarrollo. Esto no quiere decir que las habilidades no sean necesarias o que estos productos no requieran alguna forma de diseño y análisis. Pero un enfoque ad-hoc para la ingeniería de software a menudo es todo lo que se requiere.
Nota 2:
Lo anterior funciona si la organización detrás del software comprende claramente el desarrollo del software y se compromete a producir productos de buena calidad. Como menciona Jack Menéndez, desafortunadamente este no es el caso en muchas compañías que son, sorprendentemente, compañías de desarrollo de software. Las razones para esto no son un poco complejas y están destinadas a otra pregunta. Lo que hay que tener en cuenta es que no hay nada intrínsecamente malo con la Ingeniería del Software como disciplina. Es un bien absoluto, por así decirlo. Sin embargo, los ingenieros de software a menudo trabajan como enlaces entre la gerencia y la producción. Y las presiones del lado de la administración a menudo los llevan a comprometer y traicionar su propio enfoque riguroso de disciplina para el desarrollo de software.