Buenas respuestas ya, pero esta es mi opinión sobre la Ingeniería de Software (SE) como disciplina.
Al igual que Agile y Scrum, debe usar solo la cantidad de SE que el proyecto necesite.
Un proyecto pequeño y desechable que requiere solo 1 o 2 desarrolladores durante unas pocas semanas (por ejemplo, un proyecto de migración de datos único) necesita muy poco del proceso formal de SE.
- Cómo mejorar en la arquitectura de una aplicación de software
- ¿Qué plan de estudios debo seguir para convertirme en ingeniero de software, especialmente en el aprendizaje automático, después de aprender una cantidad suficiente de Python?
- ¿Cuál es la mejor manera de implementar ITIL en una organización que hace UX (diseño de experiencia de usuario)?
- ¿Vale la pena cambiar al desarrollo de software desde las pruebas de automatización en esta etapa de mi carrera, si tengo conocimiento del núcleo de Java, los conceptos básicos de Spring y JDBC?
- ¿Cuáles son algunas de las mejores prácticas para usar el cambio de funciones (como la aplicación Gargoyle Django) en su base de código?
A medida que cualquier dimensión del proyecto se amplía (o se puede anticipar que se ampliará en el futuro), se necesitan más procesos de SE. SE, como cualquier otra disciplina de ingeniería, es una colección de procesos y herramientas, conocimiento si lo desea, que mejoran la calidad, la mantenibilidad y la usabilidad de los sistemas de software durante todo el ciclo de vida del sistema.
He trabajado en varios millones de líneas de sistemas de código que no siguieron las buenas prácticas de SE y el resultado fue una confusión que hizo que las correcciones de errores y las mejoras costaran al menos 10 veces más de lo que deberían tener. A esta escala, o en cualquier sistema crítico para la seguridad (p. Ej., Control de tráfico aéreo o dispositivos médicos), no seguir buenas prácticas formales terminará costando mucho dinero o incluso vidas.