He trabajado durante 8 años en desarrollo web. Me gusta (tanto en la parte delantera como en la trasera), pero con la excepción de 2-3 años, nunca me dieron un trabajo interesante para hacer. ¿Espero demasiado de la ingeniería de software?

He sido testigo de problemas similares. Creo que hay demasiada complacencia y seguidores en demasiadas organizaciones involucradas en el desarrollo de software y no se enfoca lo suficiente en probar metodologías y evaluarlas científicamente con datos.
Con demasiada frecuencia, la respuesta a “¿Por qué debería usar X?” es “Porque la mayoría de las empresas están usando X ahora”. Muchos probablemente vean esta locura, pero eligen ignorarla.
Las empresas no quieren descubrir qué funciona mejor para ellas, por lo que todas saltan de una tecnología a otra como un rebaño de ovejas. Oculto en la locura hay un pequeño subconjunto de desarrolladores de software que se enfoca en lo que funciona para ellos, incluida la creación de sus propias herramientas cuando sea necesario. La mayoría de nosotros no escuchamos sobre ellos porque están en entornos propietarios y no nos importa lo que la corriente principal está haciendo actualmente (aparte de probarlo para la evaluación, no solo porque otros lo están usando). Hay muchos problemas abiertos con el desarrollo de software y la informática. No importa cuál sea su trabajo principal, debe poder concentrar parte de su tiempo en los problemas más importantes. Si no, es probable que sea hora de encontrar un lugar que le permita algo de tiempo. Concentra tus habilidades más en el backend. El trabajo frontend parece estar en una pendiente creciente hacia la parte inferior por calidad y compensación.

¿Has hablado con tus gerentes sobre asumir desafíos más grandes? En general, alguien con 8 años de experiencia debería poder apropiarse de un módulo en lugar de corregir los errores de otras personas.

Si no te han dado la oportunidad, ¿has preguntado por qué? En cualquier trabajo, debe tener una idea clara de cuáles son sus objetivos profesionales, y debe tener una discusión con su gerente sobre cómo lograr esos objetivos.

Su gerente debe poder decirle lo que necesita hacer para lograr esos objetivos. Quizás es entrenamiento. Tal vez está en los desafíos laborales

Y sí, tal vez su gerente cree que apesta, y él / ella debería decírselo a la cara. Si su gerente piensa que no podrá progresar en sus objetivos actuales, entonces debería ayudarlo a encontrar nuevos objetivos.

En general, este proceso se formaliza como parte del proceso de revisión anual. Al comienzo del año, su gerente debe establecer metas, y al final del año su gerente debe revisar su desempeño en esas metas. Esto debería determinar qué oportunidades están disponibles el próximo año. Aunque esto se hace formalmente una vez al año, usted y su gerente deben participar de manera informal en este proceso de manera continua.

Sus gerentes no deberían estar encadenados. En la industria del software, existe la expectativa de que uno de los beneficios del trabajo es el crecimiento profesional. Si cada trabajo que ha encontrado no le proporciona crecimiento profesional, entonces tal vez, la próxima vez que vaya a entrevistas, debería preguntarle a su potencial empleador sobre el crecimiento profesional.

Recientemente, leí un libro llamado Programador apasionado de Chad Fowler. Donde habla de “aprender a amar el mantenimiento”. Muchos ingenieros creen que trabajar en nuevas tecnologías / nuevos proyectos es algo genial; pero en realidad, la mayoría de las cosas funcionan manteniendo el software. Te sugiero que leas este libro si no lo has hecho.

Con las tareas de mantenimiento de software, mientras mantenga contentos a sus clientes / usuarios, puede trabajar en las nuevas características y cambios de arquitectura por su cuenta.

Dijo que Google permite que sus ingenieros trabajen un 20% en sus propias ideas y proyectos y que algunos de los mejores productos de Google han salido de allí. Creo que de esta manera mi empleador actual no me permite el 20% del tiempo. Pero después del trabajo puedo ir a casa y usar mi 20% (40 horas x 0,20 = 8 horas por semana) trabajando en mis propias ideas. (Todavía estoy trabajando en mi autodisciplina para pasar 30 minutos todos los días para mejorar mis habilidades de ingeniería de software después del trabajo, ya que el equilibrio entre la vida laboral y la salud es importante).

El año pasado, mi gerente me pidió que actualizara nuestro servidor ftp debido a la vulnerabilidad bash (ese es el único servidor Linux que tenemos aquí). Así que me hice cargo de la aburrida tarea de configurar un nuevo servidor Ubuntu con Proftpd. Es mucho mejor para mí hacer programación en lugar de trabajar en tareas relacionadas con el administrador. Pero lo hice de todos modos. Noté que el nuevo servidor FTP es tan lento como antes. Busqué en Google y actualicé el proftpd.conf y comenzó a responder a toda velocidad.

Desde que configuré el nuevo servidor, todas las mañanas vengo a la oficina e inicio sesión a través de Filezilla y me aseguro de que esté en funcionamiento. Después de una o dos semanas, me doy cuenta de que es una gran pérdida de tiempo. Necesito automatizar este proceso. Viniendo con el trasfondo principal de Linux (mis dos empleadores anteriores estábamos usando Linux) Me gusta el script. No tenemos ningún otro sistema Linux, así que me quedé con el procesamiento por lotes o PowerShell Scripting. Pasando una tarde más o menos aprendiendo sobre PowerShell, escribí un script para iniciar sesión en el servidor ftp y enviarnos un correo electrónico en caso de falla. Puse ese script en el programador de tareas y ahora monitorea el servidor ftp cada 30 minutos. Mi gerente estaba muy contento porque el nuevo servidor ftp es rápido y tenemos algo que lo monitorea. Desde mi punto de vista, estaba feliz de haber aprendido el script de Microsot PowerShell.

Ahora estoy aprendiendo sobre msbuild para poder compilar todo nuestro proyecto desde la línea de comandos. Actualmente utilizamos Visual Studio para compilar proyectos con nsis script para distribuir el software. Quiero automatizar este proceso para que pueda ahorrar tiempo. Cuando le dije a mi gerente que paso un tiempo aprendiendo msbuild mientras no estamos ocupados con el nuevo desarrollo. Él me dio la oportunidad de aprenderlo, ya que cree que todo lo que aprendo en el lado ha ayudado al equipo a mejorar mejor.

Solo tienes que mirar el lado positivo y probar algo nuevo por tu cuenta. Una vez que sepa, comparta con el equipo básico y pruébelo en el trabajo.

¡Buena suerte!

Enlace del libro: El programador apasionado: crear una carrera notable en el desarrollo de software: Chad Fowler: 9781934356340: libros

Únase (o comience) a la brigada Code for America en su ciudad. Puede comenzar su propio proyecto o elegir un proyecto que le resulte interesante o desafiante.

Tal vez si toma la iniciativa: piense en un proyecto que beneficiaría a la empresa y que disfrutaría, sacará más provecho de la ingeniería de software. Cuantifique el valor que tendría para la empresa. Preséntalo a tu gerente. Buena suerte para ti.

More Interesting

¿Qué debo hacer después de la clase 12 en India para convertirme en ingeniero de software?

¿Cuál es mejor como el primer trabajo de administración de productos para un ingeniero de software que se está moviendo hacia la administración de productos: B2B o B2C?

¿Cómo difiere la mentalidad de un químico de un ingeniero de software?

Cómo determinar mi próximo paso en mi camino de ingeniería de software

Tengo 13 años y quiero convertirme en un ingeniero de software bueno y exitoso. ¿Qué puedo hacer para ser uno?

¿Debería pausar mi carrera de software para aprender conceptos de redes?

¿Qué conocimientos básicos debo tener para ser ingeniero de software en Google? Actualmente soy un estudiante universitario con 0 conocimientos de programación

¿Qué debería aprender este verano que me hará un mejor desarrollador de software?

¿Qué país tiene una buena oportunidad para realizar trabajos de prueba de software?

¿Cómo puede un ingeniero cambiar al perfil de finanzas?

¿Qué ventajas y desventajas tendrá un matemático si decide comenzar una carrera desarrollando software?

¿Debo ir a Microsoft (~ 110k) o Slack (~ 135k) para mi primer trabajo de ingeniería de software a tiempo completo, si mi objetivo es estar en la mejor posición financiera en unos 5 años? Ambos tienen grandes proyectos / equipos, y ambos ofrecen la misma ubicación.

¿Cómo puede un ingeniero de software perseguir su interés en astronomía y exploración espacial en su tiempo libre?

¿Los ingenieros de DevOps se consideran ingenieros de software o son diferentes?

¿Qué son las pruebas de software?