¿Cuál es la diferencia entre ingeniero de software y desarrollo de software y cuáles son los requisitos o habilidades?

Muchas organizaciones, como las agencias gubernamentales, usan el título de “Ingeniero de software” para la asignación de recursos humanos y razones de escala salarial. Creo que el término “ingeniero de software” se usa tanto que realmente no hay diferencia en términos realistas entre un desarrollador de software, un ingeniero de software e incluso un programador. En teoría tienen diferentes significados.

Esto es lo que he entendido que son a lo largo de los años. Por otra parte, solo estoy sacando esto de la parte superior de mi cabeza. Lo digo porque realmente no quiero comenzar un gran debate sobre cuál debería ser cada título. Esto es solo mi entendimiento, por defectuoso que pueda ser.

Desarrollador de software

Un desarrollador de software es cualquiera involucrado en el proceso de desarrollo de software (es decir, programadores, desarrolladores líderes, evaluadores, expertos en la materia, analistas, control de calidad, etc.). Los desarrolladores de software abarcan todas las diferentes áreas del desarrollo de software. Incluso con ese título, el desarrollador de software se asocia más comúnmente con un programador / codificador y se usa indistintamente con un ingeniero de software.

Ingeniero de software

Un ingeniero de software es alguien que hace una contribución significativa al diseño y desarrollo de un producto de software mientras utiliza prácticas de ingeniería y participa en una metodología bien establecida del ciclo de desarrollo de software.

Por lo general, alguien con al menos una licenciatura en Ciencias de la Computación y una sólida comprensión de la misma, posee este título. Este es alguien que generalmente tiene una sólida formación en todo lo relacionado con CS y programación. No es necesario un título si aprendió la teoría de CS por su cuenta, pero de cualquier manera debe saberlo.

El ingeniero de software generalmente está influenciado por el título y muchas organizaciones tienen requisitos de credencial sólidos para este título. Por ejemplo, se le puede exigir un mínimo de una licenciatura en informática. SIG o TI. En ciertos estados, es posible que se le solicite tener una licencia de educación física para mantener a este ingeniero en su título.

Todavía hay debate sobre este título.

Programador

Este es alguien que escribe código en un lenguaje de programación de computadora. Un ingeniero de software siempre es un programador, pero no al revés. Un programador suele ser un desarrollador. Muchos programadores pueden producir software, pero es posible que no tengan la experiencia sólida o el deseo de producirlo utilizando las mejores prácticas. Un programador es cualquiera que puede escribir código, incluso si todo lo que sabe es un idioma y 0 teoría.

Puedes ser un programador horrible y producir software que funcione lo suficientemente bien.

¿Importa el título?

¿Dónde importaría cuál es tu título? Esa es una buena pregunta y relevante.

No es tanto que los títulos importen, pero la composición de cada título sí importa y aquí está el por qué.

¿Qué tipo de trabajo requiere ingeniería?

Si está creando y diseñando software que podría causar lesiones o la muerte, definitivamente debe ser un ingeniero de software. Será mejor que pueda comprender los principios de ingeniería. Cosas como la heurística, la tolerancia a fallas, los mecanismos de seguridad, etc., son muy importantes con los sistemas en tiempo real.

Si está construyendo sistemas de procesamiento pesados ​​como Google y Amazon’s of the world o está escribiendo código que raspa el metal para su optimización en un sistema propietario como los Oracles of the world, probablemente también debería ser un ingeniero. Los sistemas como este tienen métricas de rendimiento garantizadas y pueden provocar grandes pérdidas financieras o una impedancia significativa para las operaciones de una organización.

Si está creando un software de procesamiento hardcore, debe ser un ingeniero. Tendrá que profundizar en toda esa teoría de CS para optimizar el producto.

¿Qué tipo de trabajo no requiere un ingeniero?

Si solo estás lanzando código. Eso significa escribir cualquier cosa desde la página web de la hermandad de mujeres de su madre hasta el código de front-end o incluso back-end para un producto comercial, ser programador sería suficiente, aunque cuanto más fuerte sea un programador, mejor será el producto. Esa es una declaración general, porque puede haber productos comerciales importantes que pueden tener requisitos muy complejos y estrictos.

En la última década más o menos, los programadores que se enorgullecen de su oficio han recurrido a llamarse a sí mismos artesanos, donde hacen el viaje de aprendiz a maestro artesano. La idea es que el software es más un oficio que una disciplina de ingeniería.

Línea de fondo

Dicho todo esto, la mayoría de las personas que codifican se ven envueltas en una gran pila intercambiable de codificadores, piratas informáticos (como en hackathon no como pirata informático), programadores, ingenieros de software, desarrolladores de software. El desarrollador y el programador son una ruta más segura para un título, pero si realmente es un ingeniero, adquiera el título de “Ingeniero de software”.

Para empeorar las cosas, todo esto causa aún más confusión para la gestión de recursos humanos y simplemente siguen su ejemplo con su comprensión de estas cosas. Como resultado, se convierte en un frenesí de autoalimentación donde la confusión crea aún más confusión. Así que ahí es donde comienzas a ver publicaciones para ingenieros de software, desarrolladores e incluso jornaleros y no hay una distinción clara.

PD

Érase una vez, el software que realizó su función principal fue lo suficientemente bueno. Ahorró tiempo y redujo el trabajo manual y fue bueno. Avance rápido muchas décadas después y esa eficiencia ha llevado a una gran dependencia del software para muchas otras cosas. Eso significa que hay mucho más en juego con respecto a la protección de todos esos datos. Las violaciones de datos pueden ser perjudiciales por muchas razones. Eso significa que con cualquiera de los roles anteriores, la seguridad del software es un gran problema, independientemente de si usted es un ingeniero de software, un desarrollador de software, un programador o cualquier otra cosa que decida llamarse a sí mismo.

No existe una definición formal, por lo que no puede saber cuál es la diferencia.

Microsoft (y algunos otros) tienen SDE: Ingeniero de desarrollo de software, que esencialmente combina los dos.

More Interesting

¿Cómo deben cuidar los ingenieros de software con niños pequeños para mantener sus trabajos, si se espera que codifiquen las 24 horas del día con poca antelación cuando sea necesario?

¿En Java es tan fácil manejar la interfaz de usuario como en JavaScript?

¿Puedo convertirme en un ingeniero de software empleable si tengo mala memoria?

Cómo aprender rápidamente a convertirse en un ingeniero de software senior con experiencia limitada

¿Qué cosa desearías haber hecho diferente cuando comenzaste como ingeniero de software?

Tengo miedo de estar sentado frente a una computadora por el resto de mi vida. Necesito acción, trabajo en equipo, estar afuera, etc. Me gusta la codificación y me resulta fácil, la lógica es fácil de entender. ¿Los ingenieros de software codifican todo el día?

¿Cómo es trabajar en la Fundación Wikimedia como ingeniero de software?

¿Cuál es la naturaleza del trabajo de un ingeniero de software en empresas como Deloitte, Goldman Sachs y similares?

¿Cuáles son algunos buenos trabajos disponibles para un ingeniero de software en UP East?

¿Necesitas ser bueno en matemáticas para ser ingeniero de software?

¿Por qué las compañías como Twitter y Facebook requieren tantos programadores si un solo buen programador puede hacer clones de estos sitios web?

Soy una persona INFP interesada en Informática y Programación. ¿Es bueno para mí si sigo interesado en CS, teniendo en cuenta el hecho de que este campo es menos conquistado por personas de mi tipo de personalidad?

¿Se está muriendo la ingeniería de software o hay algún futuro para ello?

¿Por qué algunos ingenieros de software no están dispuestos a aprender nuevas tecnologías y adaptarse?

¿Cómo les iría a los programadores científicos de alto rendimiento como ingenieros de software?