Diferencia entre el ingeniero de software y el desarrollador de software

12 de septiembre de 2018
Ingeniero de software vs. Desarrollador de software: una guía de reclutamiento técnico para diferenciarlos

Cualquier reclutador técnico que valga la pena debería ser capaz de diferenciar entre un codificador vs. programador o incluso un programador vs. desarrollador. Identificar la diferencia entre desarrollador de software vs. ingeniero de software es un poco más difícil.

Tanto los ingenieros como los desarrolladores de software son profesionales altamente cualificados que pueden construir software desde cero. Dicho esto, hay importantes diferencias entre los dos que debes recordar. Si los haces bien, podría ayudarte a hacer una contratación técnica increíblemente valiosa. Si lo haces mal, puedes terminar contratando a la persona completamente equivocada para el puesto.

Desarrollador de software vs. Ingeniero de software

Tengo que confesar que es un tema complejo. ¿Existe una diferencia entre un ingeniero de software y un desarrollador de software? Es un punto que está sujeto a debate. Por suerte hay algunos roles ampliamente aceptados que cada uno de estos tipos de empleados técnicos cumple.

Ingeniero de software contra desarrollador de software: ¿Cuál es la diferencia?Entonces, ¿por qué es importante saber la diferencia entre un desarrollador de software y un ingeniero de software? Por un lado, estos puestos tienen diferentes alcances y responsabilidades. Lo que es importante para un reclutador, también pueden tener expectativas salariales diferentes. Un rápido vistazo a la investigación de PayScale sugiere que en el momento de escribir este artículo, el salario medio de un ingeniero de software en los Estados Unidos es de $83,060mientras que el promedio para un trabajo de desarrollador de software es de $69,560.

Ingeniero de software

Ingeniero de software vs. Desarrollador de software: salario de ingeniero de software PayScale

vs

Desarrollador de software

Ingeniero de software contra desarrollador de software: salario de desarrollador de software PayScaleTambién se encuentra que los candidatos para estos roles deben tener diferentes conjuntos de habilidades. Y lo que es más importante, los candidatos también deberían tener diferentes enfoques para su trabajo. Entramos en los detalles a continuación, pero basta con decir que los desarrolladores tienden a ser más creativos mientras que los ingenieros tienden a ser más precisos. ¿A qué se debe esto? Bueno, primero tienes que entender lo que hacen ambos roles.

¿Qué hace un desarrollador de software?

En nuestro puesto "Programador vs. Desarrollador: una guía de reclutamiento para diferenciarlos...establecimos que un desarrollador es como un chef profesional. Pueden cocinar a un alto nivel y tomar un enfoque creativo para hacer nuevos platos. Comienzan por entender el gusto de sus clientes objetivo y luego crean platos que se adaptan a esos gustos. El trabajo de un desarrollador de software es esencialmente tomar el mismo enfoque para crear software de alta calidad que el chef toma para crear platos deliciosos.

Un desarrollador normalmente comienza el proceso de desarrollo de la aplicación hablando con los clientes y averiguando lo que su El software necesita son. Con estos criterios en la mano, pasan a diseñar y desarrollar los diferentes componentes de la aplicación que necesitarán trabajar juntos. Para realizar el trabajo, una gran parte de lo que hacen es gestionar el proyecto de principio a fin, asegurándose de que se mantienen en contacto constante con los principales interesados.

De acuerdo con Oficina de Estadísticas Laboralesun desarrollador a menudo trabajará de cerca con los programadores que podrían realmente ejecutar en el diseño del desarrollador. Pero a menudo, los desarrolladores usarán una variedad de habilidades incluyendo una buena comunicación, gestión de proyectos y experiencia técnica específica del dominio. De hecho, este último punto es crucial para entender la diferencia entre un desarrollador de software y un ingeniero de software. Como Felim O'Donnell, director de operaciones de Liberty IT dice,

La diferencia entre los ingenieros y los desarrolladores es que un desarrollador toma la especificación funcional y entrega el código requerido dentro de parámetros estrictos, esencialmente completando la tarea en forma aislada

Los desarrolladores tienden a hacer todo lo que los ingenieros hacen pero a una escala limitada. Esto les permite ser más creativos que un ingeniero, y encontrar soluciones a los problemas a medida que se presentan. Pero los ingenieros tienden a resolver problemas a una escala mucho mayor. Hay menos espacio para soluciones creativas y en cambio, necesitan ser más sistemáticos y están pensando.

¿Qué hace un ingeniero de software?

Un desarrollador debe ser capaz de construir un formulario de solicitud de principio a fin. De la misma manera, cualquier chef que se precie debería ser capaz de crear un menú que atraiga a los clientes y esté bien ejecutado. Y para la mayoría de los restaurantes, esto está muy bien. Pero en instalaciones más grandes como los hoteles, puedes tener una cocina que atienda a cinco restaurantes diferentes. El jefe de cocina debe ser capaz de ofrecer el mismo nivel de calidad que un chef que dirige un restaurante y al mismo tiempo satisfacer las necesidades de cinco. Esto significa que deben ser más sistemáticos en su enfoque.

ingeniero de software contra desarrollador de software: Futuro Ingeniero

El término ingeniero es un tema polémico. Mientras que algunos países exigen cualificaciones específicas, otros cuestionan su aplicabilidad a la informática. A pesar de estas objeciones, existe todavía un gran cuerpo de opinión que tiene una comprensión específica de lo que es un ingeniero de software.

Un ingeniero de software debe ser capaz de hacer todo lo que un desarrollador de software hace, pero con una filosofía de diseño diferente. Los ingenieros tienen una visión más amplia que los desarrolladores. Esto significa que necesitan estar más enfocados en el diseño de la estructura y eliminar la deuda técnica. En lugar de estar interesados en resolver el problema inmediato, están interesados en resolver ese problema mientras minimizan las compensaciones a otras partes de el sistema y su arquitectura.

A menudo encuentras a los ingenieros de software divididos en dos categorías. los ingenieros de aplicaciones son algo parecido a los desarrolladores. Tienden a diseñar, construir, instalar y mantener aplicaciones, generalmente a gran escala. Los ingenieros de sistemas, en cambio, mantienen la infraestructura informática de una empresa. En lugar de trabajar en una aplicación específica, los ingenieros diseñan, construyen y mantienen los sistemas que dan soporte a las aplicaciones con la consideración de todos los interesados involucrados.

Diferencias clave

  • Un desarrollador de software suele iniciar el proceso de desarrollo de aplicaciones hablando con los clientes y averiguando cuáles son sus necesidades de software.
  • Los desarrolladores de software tienden a hacer todo lo que los ingenieros de software hacen pero a una escala limitada. Esto les permite ser más creativos que un ingeniero, y encontrar soluciones a los problemas a medida que se presentan.
  • Un ingeniero de software debe ser capaz de hacer todo lo que un desarrollador de software hace, pero con una filosofía de diseño diferente.
  • Los ingenieros de software tienen una visión más amplia que los desarrolladores de software, lo que significa que están más enfocados en el diseño de estructuras y la eliminación de la deuda técnica.
  • Los ingenieros de software están interesados en resolver los problemas inmediatos, minimizando las compensaciones a otras partes del sistema y su arquitectura.

Así que si reclutas para estos puestos es importante entender la diferencia, pero esto plantea otra pregunta:

¿Cuál es la diferencia entre ver a un ingeniero de software o a un desarrollador de software en un currículum?

De muchas maneras, un ingeniero de software y un desarrollador de software pueden hacer cosas similares. Pero lo que encontrarás es que un desarrollador de software tiende a centrarse en resolver los problemas de un usuario o conjunto de usuarios mientras que un ingeniero se centrará en los problemas de todos los usuarios. Este video hace un gran trabajo al explicar las diferencias:

Lo que es importante recordar cuando se contrata para uno de estos puestos es no depender demasiado del título del trabajo específico. Estos pueden variar de una compañía a otra. Como usuario de Reddit SwabTheDeck dice,

Mi carta de aceptación decía "Desarrollador de Software", pero un día, decidí cambiar el título de mi trabajo en nuestro sitio web a "Ingeniero". Eso fue como hace 2 años y nadie se ha dado cuenta y/o se ha preocupado.

En cambio, es una buena idea mirar las habilidades que el candidato posee. Un desarrollador de software tenderá a tener conocimientos específicos del dominio. Por ejemplo, verá muchos desarrolladores de Java o Ruby. Los ingenieros tienden a tener una experiencia mucho más amplia. De manera similar a lo que verías con un desarrollador de pila completa, podrías ver a un ingeniero de fondo o a un ingeniero de sistemas. Se espera que tengan experiencia en un número de dominios diferentes.

Cuando se contrata también, la actitud y los rasgos que buscas en un ingeniero de software vs. un desarrollador son diferentes. Para un papel de ingeniero, busca a alguien que tenga matemáticas de alto nivel y que aborde los problemas de una manera muy lógica. No busques a alguien que acepte la ambigüedad. Un ingeniero debería ser capaz de ver cómo sus acciones podrían crear problemas en el futuro.

Cuando se busca un desarrollador, se quiere ver un mayor énfasis en la resolución creativa de problemas. El ámbito técnico de los desarrolladores tiende a estar más enfocado, por lo que quieres a alguien que esté más interesado en encontrar soluciones que en preocuparse por la deuda técnica a largo plazo.

¿Cómo puedo poner a prueba las habilidades de un ingeniero de software frente a un desarrollador?

En realidad es bastante fácil probar a un ingeniero de software y a un desarrollador. Puedes darles los mismos tipos de tareas y pruebas de muestra de trabajo. Lo que quieres ver es cómo abordan el problema y toman decisiones sobre la solución.

Como Aaron Sempf, Jefe de Tecnología en el Tribal Melbourne dice,

Los rasgos que busco en los individuos al desempeñar un papel de ingeniero o de desarrollador pueden ser bastante diferentes, sin embargo, las tareas o pruebas que doy a ambos son las mismas, pero evaluadas de diferentes maneras.

Usando una plataforma como DevSkiller, puedes fácilmente dar una tarea que refleje el tipo de trabajo que el candidato hará cuando empiece a trabajar para ti. Dependiendo del candidato, la misma tarea puede ser abordada de diferentes maneras. Cuando buscas un ingeniero, quieres a alguien que produzca una solución limpia y eficiente que no entre en conflicto con el resto del sistema. Cuando busques un desarrollador, busca a alguien que pueda resolver problemas de manera eficiente usando todos los recursos disponibles.

Las diferencias entre un ingeniero de software y un desarrollador de software se reducen principalmente a la forma en que abordan las tareas y el alcance que manejan. Aprender estos términos le ayudará a entender qué habilidades debe buscar para contratar a las personas adecuadas.

Antes de que te vayas

Revise nuestros otros recursos integrales dedicados a las diferencias entre los distintos puestos de trabajo:

Crédito de la imagen: Mimi Thian en Unsplash

Compartir correo

Es más que un simple boletín de noticias

Reciba información útil directamente en su bandeja de entrada y aprenda más sobre la contratación de tecnología.

Verificar y desarrollar las habilidades de codificación sin problemas.

Vea los productos DevSkiller en acción.

Certificaciones de seguridad y cumplimiento. Nos aseguramos de que sus datos estén seguros y protegidos.