De acuerdo, ya que está convencido de que los ingenieros mecánicos son “ingenieros” reales, comparemos el ciclo de vida del desarrollo de un producto para un ingeniero mecánico y un ingeniero de software.
Requisitos:
La etapa inicial de un producto. En esta fase, el ingeniero mecánico intentará averiguar cuáles son los requisitos de este producto. ¿Es esto científicamente factible? Intentarán documentar estos requisitos, tal vez hagan algunos cambios aquí y allá para que el producto sea lo más económico posible.
Por otro lado, los ingenieros de software pasan por la misma fase. Intentan reunir tantos requisitos como sea posible. Los documentan y hacen los cambios correspondientes. De hecho, se considera una de las fases más importantes en un ciclo de vida de desarrollo de software.
Diseño y arquitectura:
El ingeniero mecánico luego pasaría a hacer los diseños del producto, en papel, tal vez usando algunas herramientas, como usted lo dijo. Intentarán hacer que este diseño sea lo más eficiente posible teniendo en cuenta la consideración económica. Se decidirán las herramientas que se utilizarán en el desarrollo de este producto. Se definirá el marco temporal, decidieron los equipos de técnicos .
La misma rutina será seguida por un ingeniero de software, usarán las herramientas disponibles para hacer todo tipo de diagramas relacionados con el software para este producto. Intentarán diseñarlo para reducir costos y aumentar la eficiencia. Se decidirán herramientas, en este caso: IDEs, marcos, idiomas. Equipo de técnicos, en este caso: los desarrolladores / codificadores se unirán y también se definirán los plazos.
- ¿Debo comprar una computadora portátil con Windows y descargar el sistema operativo Linux, o debo comprar una computadora portátil con sistema operativo Linux?
- ¿A qué edad se convierte una persona en ingeniero de software?
- ¿Debería primero renunciar y buscar un trabajo o conseguir un trabajo y luego renunciar?
- Como ingeniera de software femenina, ¿cómo puedo saber si soy discriminada por mi género (por equipos exclusivamente masculinos) o si simplemente no tengo habilidades de comunicación?
- Cómo prepararse para una entrevista práctica de ingeniero de software
Desarrollo:
¡Hora de construir el producto! El ingeniero mecánico se asegurará de que todo el desarrollo se realice según lo previsto. Se asegurarán de que todas las partes mecánicas estén en su lugar según el diseño. Es posible que tengan que cambiar el diseño, mover algunos plazos aquí y allá para acomodar cualquier cambio o callejón sin salida que puedan haber encontrado. En resumen, se asegurarán de que el producto se desarrolle lo más cerca posible de lo previsto.
Aquí es donde estás confundido. Los ingenieros de software también se someten a este proceso de construcción del producto. Sus partes mecánicas pueden consistir en bibliotecas, API y clases de código. Pero tienen que asegurarse de que todo esté funcionando a medida que avanza el desarrollo del producto.
Pruebas:
Por supuesto, no se lanza ningún producto antes de probarlo en ningún tipo de ingeniería. Por lo tanto, el producto mecánico se someterá a una fuerte inspección. El ingeniero se asegurará de que cumpla con todos los requisitos que se documentaron inicialmente. Las piezas defectuosas serán descartadas, para ser reemplazadas por otras nuevas y mejores. Y al final, se forma un producto pulido. Lo que puede no ser perfecto, lo que definitivamente no es perfecto. Y es por eso que tenemos versiones de autos fijas, mejoradas y mejoradas cada año.
Lo mismo ocurre con los ingenieros de software, se aseguran de que el software cumpla con las especificaciones y que cumpla con el propósito general. Los errores se corrigen, se descarta el código defectuoso y se escribe uno nuevo en su lugar. Del mismo modo, después de un lanzamiento, el producto se actualiza regularmente con correcciones anteriores y nuevas características.
Para resumir, aquí está la definición de “Ingeniería” de wikipedia:
Ingeniería (del latín ingenium , que significa “ingenio” e ingeniore , que significa “inventar, idear”) es la aplicación de conocimientos científicos, económicos, sociales y prácticos para inventar, diseñar, construir, mantener y mejorar estructuras, máquinas , dispositivos, sistemas, materiales y procesos.
Ahora no entiendo por qué un ingeniero de software (inteligente) no puede aplicar el conocimiento científico, económico, social y práctico para diseñar, desarrollar, mantener y mejorar sistemas, procesos y, en este caso, software. 🙂