¿Qué es esencial para convertirse en un ingeniero de software profesional?

Que yo sepa, la industria no cumple ningún requisito general. Las empresas individuales y los puestos específicos tienen requisitos previos. Entonces, en un nivel, depende del trabajo que estés persiguiendo. En realidad, lo único que es esencial para convertirse en profesional es un empleador o cliente que esté dispuesto a compensarlo por sus contribuciones.

Sin embargo, creo que hay algunos principios básicos que un ingeniero de software debe conocer y debe saber cómo aplicar a un proyecto real de cualquier escala. Estos incluyen metodología, procesos y patrones de diseño. Estas tres áreas hablan de las tres dimensiones del desarrollo de productos (no respectivamente)

  1. Producto: habla de lo que el cliente quiere que sea el resultado de dicha ingeniería
  2. Costo: habla de los recursos disponibles para gastar en convertir el concepto en un producto concreto
  3. Programación: habla de cuánto tiempo llevará desde el principio hasta el final entregar algo al cliente.

Fuera de las habilidades técnicas, las habilidades de comunicación y la empatía son vitales.

Empatía
La parte más importante de la ingeniería de software es comprender realmente lo que el cliente está pidiendo. Esta comprensión no ocurre en el vacío, debe tener en cuenta su presupuesto y calendario realistas, así como su presupuesto, calendario y capacidades técnicas.

Comunicación
Necesita poder comunicar ideas a escala. Deberá poder comunicar ideas complejas a personas altamente técnicas, así como a personas a las que no les importe la eficacia algorítmica o los porcentajes de espacio en blanco. No es descabellado concebir la compresión de un proyecto de 10 meses en 5 minutos (o menos) para un posible cliente o inversor.

La comunicación de ideas también incluye técnicas de diagramación como UML, diagramas de secuencia, diagramas de casos de uso, guiones gráficos y estructura de alambre para nombrar algunas de las muchas formas de comunicar y visualizar grandes diseños e ideas complejas.

Métrica

Si no lo mide, no puede arreglarlo.
Si completó un proyecto pero no recopiló ningún dato, ¿alguna vez lo completó?

El uso de métricas contribuye en gran medida al éxito de un producto, pero paga dividendos cuando se trata de proyectos futuros. Imagine poder decir con certeza que su equipo tardará 10 semanas y $ 30,000 en desarrollar un producto para un cliente. Esa es la esencia de recopilar datos sólidos sobre diferentes componentes del desarrollo de productos. Las métricas brindan una visión objetiva de su capacidad o la de su equipo para tener éxito y proporcionan información sobre las áreas problemáticas. Una ingeniería de software profesional debe, como mínimo, comprender qué métricas recopilar para diversos objetivos.

Programación
Luego está la programación. La programación es otra herramienta en el cinturón de herramientas del ingeniero de software. Es similar al martillo en el cinturón de herramientas de un carpintero. El martillo no hace al carpintero, pero me sorprendería ver que uno tenga éxito en el campo sin tener uno a mano en todo momento. Le conviene apreciar la programación e incluso aprender a aplicar algunos idiomas específicos.

Pruebas
Terminaré con las pruebas. ¿Construiste lo que el cliente pidió? ¿Construiste correctamente? Un ingeniero profesional debe conocer las diversas formas de prueba. Cuando son útiles / obligatorios, dónde deben aplicarse y cómo responder a los resultados.

Estas herramientas y técnicas sirven para complacer y deleitar al cliente. Este objetivo debe motivar todas las decisiones en el proceso de desarrollo de productos de software.