¿La mayoría de los ingenieros de software solo están haciendo mantenimiento de software?

Si.

Si observa la industria en general, la gran mayoría del trabajo de software consiste en soluciones y mejoras a los sistemas existentes.

A veces, estas mejoras representan una ingeniería profunda y significativa, como cuando Microsoft lanza nuevas características grandes de SQL Server o Windows. Más a menudo son un equipo de TI en una corporación que actualiza las integraciones internas de la compañía y actualiza el software interno para tener en cuenta los requisitos de los nuevos clientes, las nuevas regulaciones, la corrección de errores, etc.

La oportunidad de comenzar desde cero en una nueva iniciativa de software importante no es demasiado común, fuera de las startups, que es una razón por la que muchos de nosotros amamos las startups. Estoy saliendo de la construcción de mi tercera implementación nueva de un motor de acceso a datos SaaS multiempresa y la oportunidad de comenzar de nuevo y aplicar todo lo que he aprendido de la experiencia anterior a una nueva es pura alegría. Casi no estoy descontento con esta tercera iteración, que está ayudando, en su pequeña forma, a que mi compañía supere la marca de ingresos anuales de $ 100 millones. ¿Me puede dar un lío?

Como otros, solo ofreceré mi informe individual; ojalá todos se sumen para dar una idea de si predomina el mantenimiento o el desarrollo de campo verde.

En mi trabajo actual, la mayoría de los días estoy haciendo un nuevo desarrollo, o arreglando errores en un desarrollo bastante reciente. Nuestro producto está en vivo y genera ingresos para la empresa, pero también está creciendo muy rápidamente.

En mi trabajo anterior, los primeros dos años fueron pesados ​​en nuevos desarrollos, ya que completamos un CMS grande y complejo utilizado por cientos de propiedades de medios diferentes.

Pero luego las cosas cambiaron al modo de mantenimiento, a medida que comenzamos una transición lenta a sistemas de terceros que iban a reemplazar al construido en casa. Se agregaron nuevas características cada vez con menos frecuencia. La mayor parte de mi trabajo en el último año o dos fue actualizar nuestras integraciones con servicios de terceros (cuando las API o los productos que utilizamos se cerraron), solo para mantener el funcionamiento. Mantenimiento.

Antes de eso, tenía un trabajo donde dirigía un departamento de software de dos personas, y donde había sido el primer desarrollador interno. Creamos muchos sistemas nuevos, pero también fui una de las únicas personas capaces de soportarlos y mantenerlos después del lanzamiento.

Entonces, en general en mi carrera hasta ahora, diría que se trata de una división equitativa. Esperemos que esa relación se mantenga.

En mi trabajo actual, tenemos un CRM heredado con unos ~ 10 desarrolladores trabajando en él y sus “extensiones” a tiempo completo.

Cuando se contratan nuevos desarrolladores, comienzan a trabajar el 80% del tiempo con mantenimiento. Habrá algunas características pequeñas, como un nuevo filtro en algunos informes, pero esto representa solo el 20% de su tiempo.
Seguirán haciendo esto durante unos meses hasta que alcancen la madurez suficiente para manejar nuevos proyectos.

Cuando la empresa exige nuevos proyectos, los desarrolladores involucrados lo iniciarán desde cero y lo mantendrán a tiempo completo hasta que se considere estable … o hasta que se asigne a un nuevo desarrollador la tarea de realizar el mantenimiento de dicho proyecto, mientras que a los demás se les asignan nuevos proyectos. .

Creo que depende de la naturaleza de la empresa para la que trabajas. Algunas compañías ya tienen su software y sistemas existentes y contratan ingenieros de software para realizar mantenimiento regular, mejorar el rendimiento o corregir algunos errores. Las compañías de ventas pueden contratar a otras compañías para crear un sistema o software que atienda a su negocio que los Ingenieros de Software desarrollan.

En términos de donde resido (Filipinas), casi todas las grandes empresas tecnológicas con sede aquí tienen su software existente, lo que significa que la mayoría de los ingenieros de software contratados se inclinan por el mantenimiento del software.

Depende de la empresa que lo contrató. En mi trabajo anterior, mi función necesitaba que yo realizara el mantenimiento y el desarrollo de nuevas características al 60% frente al 40% porque la compañía ya tenía un producto bien desarrollado, mientras que en mi trabajo actual necesitaba que yo hiciera el desarrollo de nuevas características en aproximadamente el 80% porque El producto es bastante joven y todavía hay mucho margen de mejora.

En mi sincera opinión, amo tanto el mantenimiento como el nuevo desarrollo por igual porque el nuevo desarrollo me permite investigar nuevas tecnologías mientras que el mantenimiento me enseña cómo crear un sistema robusto.

More Interesting

Como ingeniero de software experimentado, ¿qué tipo de conocimiento debo obtener, que no será obsoleto para 2031?

¿Por qué Linux tiene tantos errores?

¿Trabajar los fines de semana es algo normal como ingeniero de software sin pago adicional, se espera / requiere?

¿Qué piensan los ingenieros de software de Google sobre la declaración de Peter Norvig de que ganar concursos de programación se correlaciona negativamente con ser bueno en el trabajo?

¿Hay escasez de talento en ingeniería en Silicon Valley?

¿Es cierto que algunos desarrolladores profesionales pueden llegar a dominar cualquier lenguaje de programación en solo 48 horas?

¿Debo obtener una pasantía en una startup (desarrollo web y de aplicaciones) o corporativa (algún proyecto paralelo en C, C ++)?

¿Qué le daría un trabajo más rápido en ingeniería de software, un título o mostrar algo que haya hecho antes?

¿Cómo puede un ingeniero de software escribir un currículum vitae para Google?

¿Es posible transferir internamente de un genio de Apple Store a un ingeniero de software de Apple?

¿Qué debo hacer si quiero pasar de la ingeniería de software a la ingeniería de sistemas?

Como ingeniero de software que solo trabaja en secuencias de comandos Python, ¿debería cambiar mi trabajo ya?

¿Cuál es la diferencia entre ingenieros de software y programadores de computadoras?

¿Cuántos lenguajes de programación debes conocer con fluidez para ser considerado ingeniero de software oficial?

¿Alguna vez has oído que los ingenieros deberían aprender a diseñar? ¿Si es así, donde?