¿Cuál es la diferencia entre desarrollador de software e ingeniero de software?

Tengo que decir respetuosamente que la respuesta de Biprojit Bhattacharjee está verdaderamente copiada de Internet. Sin ofender aquí, pero creo que quora necesita sus respuestas y puntos de vista, en lugar de contenido copiado.

Mi respuesta: – No, no hay lo mismo.

La ingeniería de software incluye: –

  1. Recopilación y análisis de requisitos.
  2. Creación de arquitectura del sistema.
  3. Prototipos
  4. Desarrollo de software y codificación.
  5. Discusiones con clientes.
  6. Solución de problemas
  7. Despliegue
  8. Siguiendo
  9. Manejo de hardware y parte de redes también a veces
  10. Dando demostraciones
  11. Muchos más como pruebas, liderazgo de equipo, etc.

Básicamente contiene todos los demás procesos de software, incluido el desarrollo.

El desarrollador de software : –

  1. Crear el backend y la base de datos
  2. Crea el front-end
  3. Crea la capa media de software
  4. Dar sugerencias a los usuarios sobre el uso del software.
  5. Dando mejores alternativas a los requerimientos del usuario
  6. Integrarse con programas de terceros.
  7. Implemente la solución

Y también mencionaría que

Un programador : –

  1. Simplemente codifique según las instrucciones que le hayan dado y no aplique su mente para ofrecer mejores alternativas a la solución.

Entonces, la ingeniería de software incluye el desarrollo de software Many big things +.

Y, el desarrollo de software incluye muchas cosas + programación.

Aquí hay un ejemplo :-

En un negocio, las cuentas son manejadas por 3 personas diferentes, es decir

  1. El contador (el programador)
  2. El contador (el desarrollador de software)
  3. El contador público (el ingeniero de software)

Buena suerte y disculpas al Sr. Biprojit Bhattacharjee por señalar la respuesta, nada personal aquí.

Gracias

Para no quedar empantanado en los aspectos técnicos de la industria del software, usaré una analogía: para simplificarlo, comparemos el proceso de creación de software con el de crear una mesa de comedor y las personas necesarias para diseñarlo y construirlo:

Programador : este es básicamente el aprendiz en muchos sentidos, la persona que sabe barnizar madera, taladrar agujeros, usar una cinta métrica e incluso un calibrador Vernier. Sin embargo, alguien debe proporcionarle orientación sobre cómo construir una tabla. Un supervisor necesita decirle la longitud de la madera para cortar, qué tornillos usar y dónde perforar la madera. Al final del día, habrá podido crear una mesa con sus dos manos, pero no puede hacerlo sin orientación y supervisión. En el mundo del software, este es el tipo que conoce uno o más lenguajes de programación y puede aplicarlos para escribir una función o una clase, pero no puede imaginar y crear una aplicación completa de principio a fin sin supervisión. Con suficiente tiempo y trabajo duro, progresará para convertirse en un desarrollador / ingeniero / arquitecto de software.

Desarrollador de software : suponga que desea tener una mesa de comedor personalizada construida para su hogar. Como persona no técnica, tiene una idea de cómo le gustaría que se viera la tabla terminada, pero no sabe cómo construirla usted mismo. Entonces, sale y encuentra a alguien que puede construir una mesa personalizada desde cero de acuerdo con sus requisitos específicos, es decir, le dice al tipo más o menos qué tan grande es su habitación y la longitud de la mesa, la cantidad de sillas que desea hacer espacio para etc. El desarrollador de software es la persona que puede crear una aplicación personalizada de acuerdo con los requisitos del cliente. Debido a que él está a cargo del desarrollo del software, tiene cierta libertad creativa, pero en última instancia necesita hacer que el cliente feliz siguiendo los requisitos de un cliente específico.

Ingeniero de software : ahora suponga que usted es el dueño de una empresa que diseña y fabrica muebles. Este es un juego de pelota completamente diferente ahora porque ya no estás tratando de satisfacer las necesidades de un solo cliente, sino más bien un mercado completo en todo tu país. Entonces, en lugar de obtener una sola mesa diseñada y construida, está buscando obtener miles de mesas construidas. Para realizar el trabajo, necesitará una persona con un conjunto de habilidades completamente nuevo que vaya más allá de las habilidades del desarrollador de software. Los principios de ingeniería de software deben aplicarse al problema. Estos incluyen patrones y principios de diseño. El ingeniero de software tiene una visión más amplia pensando más adelante haciendo preguntas sobre el escalado y la reutilización. Al crear miles de mesas, uno debe pensar en crear un producto atractivo que no solo complazca a un cliente, sino que a muchos les encantará. Esta persona también piensa qué materiales son rentables y la durabilidad. Está bien y bien crear una tabla, pero esta persona también piensa en cómo duplicar el diseño una y otra vez para que cada copia se vea exactamente igual a la siguiente y tenga la misma calidad. El ingeniero de software es la persona que diseña y desarrolla software que se venderá no solo a una persona sino a muchas.

En la superficie, el desarrollador de software puede parecer muy similar a un ingeniero de software, pero en mi opinión, las principales diferencias entre los dos son sus personalidades o las circunstancias que se les imponen, es decir, no se trata tanto de habilidades técnicas. El desarrollador de software suele ser un tipo de acceso directo o una persona que busca soluciones rápidas y acumula muchos departamentos técnicos. Esto se debe en parte a las rígidas limitaciones de tiempo y presupuesto con las que trabajan los desarrolladores de software porque facturan por hora. Además, cuando está desarrollando un producto y facturando por hora, ese producto solo será tan bueno como debe ser, es decir, “¿realmente necesitamos esta función, cuánto va a costar? ¿Podemos encontrar una solución rápida? para ese problema al no gastar más tiempo y dinero, etc. “.

Por último, un desarrollador de software generalmente trabaja en varios proyectos al mismo tiempo, lo que significa que su enfoque está disperso y sus prioridades cambian día a día. La falta de enfoque y priorización da como resultado el desarrollo de productos de menor calidad. Por otro lado, un ingeniero de software generalmente trabaja en un solo proyecto a la vez y se le asigna un presupuesto mayor sin tener que cronometrar horas. Un presupuesto mayor también permite más tiempo para concentrarse en la estrategia y el diseño del producto en lugar de simplemente trabajar sin pensar, es decir, correr como pollos sin cabeza.

Arquitecto de software: continuando con nuestra analogía, la empresa de muebles no solo tendrá un solo comedor como producto, sino muchos tipos diferentes de productos. Esto requiere que una persona técnica supervise el diseño y la creación de cada producto, lo que conlleva una serie de desafíos adicionales. Esta persona necesita pensar en la reutilización, por ejemplo, ¿podemos usar el diseño de la tabla A cuando estamos trabajando en la tabla B tal vez modificándola un poco? Esta persona también puede ser responsable de pensar en los costos generales, por ejemplo, o qué proveedores de madera deberíamos usar para crear los mejores / más baratos productos, etc. El Arquitecto de software es la persona que piensa en todos los productos que se están diseñando y se pregunta cómo estos productos encajar en el panorama general de la empresa. En empresas muy grandes que tienen productos muy grandes, se puede asignar un Arquitecto de Software para supervisar solo un producto y se pueden asignar ingenieros a los componentes de los productos grandes.

Para resumir; La diferencia entre todas estas personas es el alcance de su visión y responsabilidades en el proceso de diseño y desarrollo de software. Por supuesto, hay muchos otros títulos (especialmente los de gestión) en esta industria, pero elegí centrarme solo en los muy técnicos.

More Interesting

¿Qué cambios verá el campo de desarrollo web entre 2015 y 2025?

Estoy en una bifurcación importante en el camino. Necesito elegir entre trabajar en una startup y en una conocida empresa de software. ¿Me pueden ayudar a elegir?

¿Cuál es una mejor opción profesional para recibir capacitación como ingeniero con Oracle o SAP?

¿El desarrollador de software es un trabajo aburrido?

¿Cómo puede un desarrollador de productos hacer la transición a un rol de gerente de producto?

Tengo un perfil de prueba. ¿Debería cambiarme a otra compañía como siempre quise para trabajar como desarrollador o continuar el mismo trabajo en las pruebas?

¿Cuáles son algunos buenos proyectos para un nuevo programador? ¿Con qué idioma debo comenzar?

¿Qué habilidades necesita dominar un estudiante de ingeniería eléctrica antes o después de la graduación, para que se destaque de los demás cuando solicite su primer trabajo?

Cómo encontrar un trabajo como ingeniero de software en Canadá desde India

¿Conseguiré un trabajo de desarrollo de software sin experiencia en pasantías?

Sin un B.Tech. o BE grado, ¿cómo debo construir mi carrera en la industria del software?

¿Cuántos desarrolladores de software debe administrar un gerente?

¿Los rusos pagan bien a los ingenieros de software extranjeros?

¿Qué trabajo tiene un futuro mejor: un ingeniero de desarrollo de software en Microsoft o un asociado en Morgan Stanley Advantage Services?

¿Cuáles son las diferentes técnicas para mejorar la calidad de un proyecto de software?