Llegamos a ustedes gracias a:



Reportajes y análisis

5 cosas que a los desarrolladores les encantan de su trabajo y 5 cosas que no

[27/12/2022] La mayoría de los desarrolladores de software reconocerán el escenario que John McPherson, desarrollador principal de la empresa escocesa de diseño web, Media Surgery, describe como uno de los verdaderos puntos culminantes de su trabajo: esa sensación "cuando prueba la parte en la que ha estado trabajando durante días u horas, ¡y funciona! Uno se siente como si fuera una superpotencia imparable que puede hacer cualquier cosa. Una verdadera sensación de euforia. También reconocerán la otra cara: "Cuando uno ha estado trabajando durante días y horas y no funciona. Uno se siente inútil y se pregunta por qué tiene empleo. Uno se siente un fraude. O euforia o síndrome del impostor. Es un trabajo antiguo extraño, pero agradable -la mayoría de las veces.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

Les pregunté a los desarrolladores, reclutadores y gerentes que trabajan con ellos qué les gusta de su trabajo y qué no. Las respuestas variaron, pero hubo bastantes puntos en común. A veces, como con McPherson, resulta que los placeres y los dolores del desarrollo de software son lados opuestos de la misma moneda.

Resolver problemas vs. reinventar la rueda

Uno de los temas más frecuentes fue que a los desarrolladores les encanta resolver problemas. La programación de computadoras es solo una forma de rascarse esa picazón.

Percy Grunwald, ingeniero de software full-stack y cofundador del webhost, Hosting Data, con sede en el Reino Unido, lo resume: "no disfrutará desarrollando software si no le gusta resolver problemas. Jacob Mages-Haskins, ingeniero de software del personal de Contrast Security, también compara el desarrollo de software con la resolución de acertijos: "como desarrollador, me encanta el desafío de implementar nuevas funciones en el código. Es como si tuviera un nuevo acertijo para resolver todos los días.

Por otro lado, puede ser desalentador dedicar muchas horas a un problema solo para descubrir que ya existe una solución. "Una cosa que no me gusta es la necesidad constante de reinventar la rueda, afirma Zeeshan Arif, fundador y director general de la empresa de desarrollo de software, Whizpool. "Esto sucede mucho en la programación porque hay muchas formas de hacer las cosas, y cada forma tiene sus propias recompensas. Debe elegir qué recompensas valen la pena para su aplicación. Puede ser frustrante cuando uno se da cuenta de que lo que quería hacer ya lo había hecho otra persona, pero también es emocionante cuando uno descubre que hay otra forma de hacer las cosas, que parece encajar mejor con lo que se está tratando de lograr.

Saber que podría superar a sus compañeros desarrolladores puede ser un estímulo para la grandeza, sugiere Grunwald. "En el desarrollo de software, hay muchas formas de lograr la misma tarea, afirma, "y siempre es un desafío dar con la mejor. Estos desafíos son muy interesantes. Ser creativo y probar diferentes opciones es una de las mejores cosas sobre ser un ingeniero de software.

Artesanal versus proceso

La mayoría de los desarrolladores también expresaron una sensación de satisfacción por el proceso de creación de software. Como Arif, de Whizpool, lo expresa: "me encanta poder crear algo que otras personas puedan usar. Es como ser un artesano, pero con código. Alexey Sutyagin, quien tiene 10 años de experiencia como desarrollador y gerente de ingeniería, usa una metáfora aún más poderosa. "La parte más fructífera de ser un desarrollador de software es la sensación de magia cuando uno crea algo nuevo a partir del pensamiento puro, afirma. "Quería ser un mago en la infancia, y los desarrolladores parecen casi magos del mundo moderno.

De la misma manera que un artesano siente una satisfacción especial al mirar una mesa o un gabinete que construyó, los desarrolladores pueden sentirse felices al ver el producto final de su trabajo. "Ser capaz de comunicarse con las máquinas se siente como un superpoder, afirma Daniel Jianu, entrenador senior de ingenieros de front end en Toptal, una red de desarrolladores independientes, "lo he usado muchas veces para ayudar a los pacientes en el sistema de atención médica, para monitorear los niveles de radioactividad en la naturaleza y gestionar torneos de póquer con amigos.

"Para mí, el sentimiento más satisfactorio es ver a la gente usando su software, señala Nate Berent-Spillson, vicepresidente de ingeniería de la consultora de desarrollo de software Nexient. "Rara vez lo menciono, pero cuando entro en una tienda que ejecuta nuestro software y veo a la persona detrás del mostrador tocando en una pantalla que creamos, o veo a un repartidor o a un trabajador minorista usando una aplicación móvil que escribimos, es muy satisfactorio.

Por otro lado, algunos desarrolladores mencionaron aspectos de su trabajo que están desconectados de su sentido del oficio. Las reuniones eran un punto doloroso frecuente. "Ser desarrollador de software incluye reuniones que a menudo son improductivas, repetitivas e irrelevantes, indica Grunwald.

Rajeev Bera, fundador del sitio de capacitación de TI, aCompiler, y desarrollador senior de una empresa de TI, estuvo de acuerdo: "la mayoría de las veces, estas reuniones no agregan ningún valor. De vez en cuando tengo que crear documentación, que es escritura no creativa; y para ser honesto, no me gusta mucho esto.

En general, más ambientes corporativos implican más procesos y más frustraciones para los desarrolladores. "Trabajar en una empresa corporativa a veces puede afectar la autonomía de su función, señala Kishan Patel, consultor ejecutivo de la firma de reclutamiento fintech, EC1 Partners. "La burocracia interminable deja al desarrollador con menos libertad para ser expresivo en su código, así como con menos flexibilidad. Berent-Spillson, de Nexient, anota que se frustra cuando "ve a equipos luchando con la política más que con el código.

Rafael Gatkowski, desarrollador seniorde la empresa de desarrollo de Python, STX Next, comenta que encontró el equilibrio: "Todos los procesos impiden el desarrollo, pero se requiere cierto nivel de proceso para crear un buen software. La clave en su mente era no dejar que los procesos se descontrolaran y ocuparan demasiado tiempo de los desarrolladores. "Convertir una reunión diaria del equipo, de quince minutos, en una reunión de estado multifuncional de una hora (o más) es el ejemplo más común de un proceso defectuoso, afirma Gatkowski.

La alegría del trabajo en equipo frente a la rutina de la colaboración

Gran parte del lado del "proceso del trabajo surge en el contexto del trabajo en equipo y la colaboración. Para muchos de los desarrolladores con los que hablé, la camaradería de trabajar con otros fue una de las mejores cosas de su trabajo. Por ejemplo, Caleb Chandzamarda Junior, desarrollador de Python e ingeniero de ciberseguridad, señala que algunas de las partes favoritas de su trabajo eran "pensar y hablar sobre el diseño, y sopesar los pros y los contras de cada uno para encontrar la respuesta correcta, y trabajar en productos geniales que nunca sería capaz de producir por mi cuenta.

"Específicamente, a nivel corporativo, la capacidad de trabajar de manera transversal con muchos tipos diferentes de profesionales puede ser particularmente gratificante e interesante, tanto para el desarrollo profesional diario como a largo plazo, indica Joe Guarascio, director de coaching de talentos y operaciones de talento en Toptal. "A nuestro talento le encantan las oportunidades de trabajar junto a, por ejemplo, gerentes de proyectos, gerentes de productos y operaciones comerciales.

Dicho esto, la realidad cotidiana de la colaboración puede consumir mucha energía que la mayoría de los desarrolladores preferirían gastar en codificación. "Como desarrollador corporativo, detesto cómo los costos de comunicación y coordinación crecen tan rápidamente cuando solo unos pocos equipos colaboran, afirma Mages-Haskins, de Contrast Security. "Como señaló el difunto Fred Brooks en The Mythical Man Month, a medida que aumenta la cantidad de personas involucradas en un proyecto, la cantidad de vías de comunicación entre esas personas explota, y esa ha sido sin duda mi experiencia en cualquier proyecto importante. Aun así, agrega, "se necesita a todos para asegurarnos de que las características sean útiles y brinden valor a nuestros clientes.

En el peor de los casos, lo que debería ser una colaboración se convierte en una relación más antagónica entre compañeros de trabajo. "En las grandes corporaciones, es un lugar común trabajar duro durante todo el año; pero al final, el proyecto que es de uno se cierra como algo sin importancia, o uno no recibe un ascenso porque el impacto fue demasiado pequeño, afirma Sutyagin. "Entonces, debe seleccionar los proyectos con cuidado. Si tiene un competidor en su equipo, debe convencerlo de que elija otra cosa. Podríamos decir que así es el mundo. Pero no es por eso por lo que nos convertimos en ingenieros de software.

Equilibrio vida-trabajo vs. Desequilibrio

Diga lo que quiera sobre el desarrollo de software, pero no es como trabajar en una línea de montaje. "El desarrollo de software se presta bien al trabajo independiente, así como al trabajo remoto, afirma Guarascio, de Toptal. "La libertad de trabajar en una variedad de proyectos, desde cualquier lugar del mundo, es muy atractiva para muchos de nuestros talentos.

Y en los últimos años, esa flexibilidad solo ha crecido. "Tenemos suficiente libertad para asignar nuestro tiempo durante el día como nosotros queramos, sostiene Tina Liu, ingeniera de software senior en la empresa de analítica de atención médica, LeanTaaS: "La pandemia de Covid-19, que cambió la forma en que nuestro equipo y nuestra empresa cooperan y se comunican, nos permitió adoptar el trabajo remoto. Recientemente tuve un bebé, en mayo del 2022, y me siento afortunada de poder trabajar desde casa. Puedo controlar y cuidar al bebé durante los descansos o entre reuniones. Tengo la flexibilidad de recuperar tiempo y terminar mis tareas de desarrollo durante la noche, cuando el bebé duerme. La libertad que tengo hace que mi madre se ponga celosa, porque no tenía ese tipo de flexibilidad en su carrera y no podía verme durante el día cuando estaba en el trabajo. Ella me comentó 'esto es vivir una vida de verdad'.

Pero si bien no tener un horario estricto de 9 a 5 puede ser bueno, también puede ser una carga. "Los desarrolladores de software tienen mucha carga de trabajo. Hacen malabarismos con una cantidad abrumadora de proyectos y realizan múltiples tareas continuamente, saltando de una tarea a otra, anota Grunwald. "Están obligados a trabajar horas extras constantes y horarios de oficina no tradicionales, como noches, fines de semana y días festivos. Burak Özdemir, fundador de Character Calculator, agrega que, en muchos casos, "nos encontramos trabajando muchas horas frente a una computadora, con poca interacción humana. Y podemos sentir que nuestro trabajo nunca está realmente terminado, ya que siempre hay algo nuevo para aprender o algo que se puede mejorar.

Y aunque el desarrollo de software no es el trabajo más exigente físicamente, tiene sus problemas, señala Özdemir. "La ergonomía también puede ser un desafío, ya que a menudo pasamos nuestros días encorvados sobre un teclado, afirma.

"Si hay algo más que odio, es que tengo que mirar la computadora todo el día y eso es duro para los ojos, los músculos del cuello y la parte superior de la espalda, algo que realmente no se puede evitar, indica Liu. "Así que a menudo me doy recordatorios para tomar un descanso y hacer algunos ejercicios para aliviar mis ojos y liberar la tensión muscular.

El trabajo tecnológico soñado vs. el trabajo real

Al final, gran parte de la experiencia que tendrá como desarrollador no estará determinada por las generalidades, sino por los detalles de dónde aterriza, y eso puede tener un gran impacto en su felicidad y bienestar. "No todas las organizaciones o departamentos son iguales, sostiene Jared Ledbetter, CEO de la firma de diseño web y SEO, Carbon Digital. "Si está en un departamento que está compuesto solo por desarrolladores, entonces tiene una mayor probabilidad de ser un lugar decente. Son los que no son desarrolladores, en puestos gerenciales, con los que discrepo. Los que quieren que todo se haga ahora, pero no quieren definir o establecer un proceso. Si recomiendo que utilicemos un sistema de gestión de proyectos como Jira o Azure DevOps, estos gerentes -que no entienden- lo rechazan y apuntan hacia MS Word/Excel/PowerPoint. O, si recomiendo que necesitamos utilizar un proceso como metodología ágil/scrum, se acepta como una buena idea, pero aún está obligado a trabajar en modo cascada.

Chandzamarda expresa frustraciones similares y señala que es estresante tener compañeros de trabajo o gerentes "que no tienen una visión de futuro -se trata de ahora y no de cómo visualizamos este producto en el futuro. Deberíamos pensar qué pasos podemos tomar ahora para establecer una dirección hacia ese camino futuro.

Aun así, el desarrollo de software es una habilidad de alta demanda y, como STX Next Gatkowski afirma: "la ventaja incuestionable es el hecho de que es muy fácil encontrar trabajo. Los trabajos en tecnología también pagan bastante bien, como señaló Patel, de EC1, "las recompensas financieras y la progresión profesional de trabajar en desarrollo de software son insuperables. Con un poco de tiempo y esfuerzo, la mayoría de los desarrolladores pueden encontrar un trabajo que les permita hacer más de lo que aman y menos de lo que no.