Reorganización de una casa de software: ¿cómo cambiar su perfil tecnológico y elegir una especialización en el mercado de TI?

Publicado: 2023-03-06

Cada empresa de software tiene su propio perfil tecnológico. Suele ocurrir que para los técnicos esto es más importante que el perfil de dominio de la empresa. Esto se debe a que los desarrolladores de TI prefieren verse a sí mismos a través del prisma de la tecnología en la que trabajan, por ejemplo, soy un programador de sistemas integrados en C#. Sin embargo, si están haciendo un proyecto para una empresa que se ocupa de la formación o la producción de cajas es de importancia secundaria. Por supuesto, el conocimiento del dominio siempre es útil para los programadores, pero no cambia su percepción de sí mismos a través de la dimensión tecnológica, dice Robert Marek, cofundador y CTO de FINGO.

FINGO es una casa de software polaca que brinda servicios de programación desde hace más de 20 años. En 2022, la organización cambió con éxito su perfil tecnológico. Además de los servicios de programación ofrecidos en tecnologías Java y .NET, agregó Node.js y ha completado todos los proyectos creados hasta ahora en PHP.

¿Por qué se hizo este movimiento? ¿Cómo es el proceso de cambio autoorganizado? Y cuál fue el resultado? Descúbrelo leyendo nuestra entrevista con Robert Marek.

Antes de comenzar a hablar sobre el proceso de cambio del perfil tecnológico en sí, ¿podría decirnos cómo era la empresa antes de su reorganización?

Si sigue la cartera de 20 años de FINGO, encontrará proyectos para los sectores financiero, inmobiliario, automotriz, comercio electrónico y muchos otros, que están más o menos relacionados entre sí. Es un poco una coincidencia: a lo largo de los años, han aparecido proyectos de este tipo y hemos estado desarrollando nuestro equipo. Pero este estado de cosas estuvo influenciado en gran medida por nuestro perfil tecnológico (Java, .NET, PHP), bajo el cual buscábamos más pedidos.

Sin embargo, sentí que no era bueno para nuestro negocio. Una gran difusión tecnológica generalmente no es buena para una casa de software del tamaño de FINGO. Puede ser más fácil encontrar un proyecto, pero más difícil asegurar la intercambiabilidad de las personas. Te daré un ejemplo. Suponga que necesita 5 desarrolladores para su proyecto. Hay 6 personas sentadas en el banco, pero solo 2 conocen la tecnología requerida en el proyecto. Este estado de cosas significa que todavía hay 4 especialistas muy bien pagados sin trabajo, para quienes debe proporcionar trabajo. Además de eso, debe familiarizar a 3 personas con la tecnología requerida para garantizar que el proyecto cuente con personal.

Sin embargo, la comodidad de tener un negocio que funcionaba bien nos impidió implementar los cambios. Teníamos proyectos, clientes habituales a largo plazo y programadores experimentados. En un entorno así, es difícil tomar la decisión de empezar a cambiar algo.

Entonces, ¿qué te hizo decidir cambiar el perfil tecnológico en FINGO?

Al comienzo de la pandemia, el mercado se congeló. Las empresas, sin saber lo que sucedería a continuación, se abstuvieron de continuar con los proyectos actuales o iniciar otros nuevos. Era una época en la que incluso los programadores temían perder sus trabajos. Nos preguntábamos qué hacer. No queríamos despedir a la gente, pero por otro lado, necesitábamos algo que nos hiciera destacar entre la multitud.

Alrededor de mayo de 2020, como propietarios de la empresa, descubrimos que sin tomar decisiones audaces, la situación puede empeorar. Teníamos la mayor cantidad de proyectos, y por lo tanto experiencia, en el sector financiero. Además, teníamos una parte de producto que ofrecía un software que permitía la implementación de informes obligatorios en el sector bancario. El sector financiero fue una elección natural para nosotros.

En ese momento, me parecía que era poco probable que FinTech y el sector financiero usaran PHP en sus proyectos. Entonces asumí que al enfocarnos en este sector, nos alejaríamos de PHP y nos quedaríamos solo con Java y .NET. Con esta información, salimos al equipo a la asamblea general de la empresa.

Entonces, ¿fue el estallido de la pandemia lo que os obligó a decidir cambiar el perfil tecnológico de FINGO?

Si y no. Después de compartir información sobre la especialización, designamos un equipo de trabajo compuesto por varios programadores experimentados con talento para los negocios. Su tarea era verificar cuáles son las tendencias, tecnologías y soluciones populares en países individuales en lo que respecta al sector financiero. Su análisis confirmó mis suposiciones anteriores, que PHP era una rareza en los proyectos financieros. Al mismo tiempo, recomendaron desarrollar competencias en Node.js, lo cual se valora, incluso en el mundo de las start-ups.

En nuestra empresa, valoramos el concepto de gestión turquesa, donde, entre otras cosas, consultamos abiertamente proyectos importantes para la organización con todo el equipo. Gracias a esto, las personas sienten el impacto en el desarrollo de la empresa, pero también sienten una corresponsabilidad por las decisiones tomadas.

Por lo tanto, la iniciativa de cambiar a Node.js, que surgió de abajo hacia arriba, aún tenía que ser aprobada por el resto del equipo de FINGO. Sin embargo, pronto resultó que había un fuerte deseo de desarrollarse en esta dirección. Quizás fue un momento especial en el que todos teníamos miedo al futuro en varias dimensiones (aspectos económicos, de salud, etc.). Paradójicamente, esto aumentó la aceptación de la decisión de asumir el desafío.

¿Cuántas personas tuvieron que adquirir nuevas competencias tecnológicas?

En total, el cambio involucró a 15 personas. Tenían que decidir si querían desarrollar como desarrolladores frontend o seguir siendo desarrolladores backend y crear soluciones en Java, .NET o Node.js.

Una de estas personas era un desarrollador full-stack que ya se había declarado desarrollador frontend, por lo que en su caso la decisión fue fácil. En consecuencia, 2 personas eligieron Java y las 10 restantes eligieron Node.js.

Dos probadores también participaron en la reorganización y también tuvieron que aprender la nueva tecnología. La política de nuestra empresa es escribir pruebas en la misma tecnología que el producto fabricado. Cuando el probador no está disponible temporalmente, este enfoque nos da una sensación de seguridad; El programador puede hacerse cargo temporalmente de las pruebas de escritura.

También hubo salidas, pero fueron decisiones individuales. Una persona renunció a FINGO con bastante rapidez, pero se debió al hecho de que estaba desarrollando la comunidad PHP en Wroclaw. Era natural que nuestras expectativas de cooperación comenzaran a divergir. Durante el proceso en curso, por diversas razones, 2 personas más abandonaron la empresa.

Tomar una decisión es solo el comienzo del camino.¿La empresa ayudó de alguna manera a los programadores a adquirir nuevas competencias?

Se creó un proyecto estratégico para ayudar a los desarrolladores a prepararse para la prestación de servicios más rápida posible en proyectos comerciales. Al principio, les pedimos que determinaran subjetivamente cuánto tiempo necesitarían para adquirir los conocimientos necesarios, de modo que les permita realizar con confianza trabajos para clientes externos, asumiendo 2 escenarios. El primero de ellos fue con el apoyo de un colega más experimentado, el segundo fue sin tal apoyo. En respuesta, obtuvimos varias estimaciones.

Algunos declararon que con el apoyo de un desarrollador experimentado de Node.js, podrían unirse a un proyecto comercial incluso después de solo un mes, y otros solo después de unos meses. Todo dependía de la experiencia previa (privada o profesional) que tuvieras y cuánto coraje tuvieras en ti mismo. También vale la pena señalar que también tuvimos experiencia con este entorno en FINGO. Así que teníamos una base.

Sin embargo, no les impusimos una forma de adquirir conocimientos. Todas estas personas son programadores experimentados que quieren aprender constantemente. Tienen sus propios estilos de aprendizaje preferidos. En general, la adquisición continua de conocimiento se inscribe de algún modo en la industria de las nuevas tecnologías. Por lo tanto, decidimos que la solución más razonable sería simplemente proporcionarles los recursos y el tiempo para aprender.

También reorganizamos la empresa. Se crearon gremios autoorganizados, donde las personas que trabajan en una tecnología determinada, pero no necesariamente en los mismos proyectos, intercambian los conocimientos adquiridos. Como parte del gremio Node, también se creó un proyecto interno, donde se podía probar el conocimiento recién adquirido. Se organizaron cursos externos para voluntarios.

Sin embargo, lo que más me dio fue la oportunidad de sumarme rápidamente a los proyectos. El mejor ejemplo de esto fue uno de los pedidos en los que estábamos trabajando, donde necesitábamos todas las manos posibles. Después de obtener el consentimiento del cliente, se unió al proyecto un desarrollador de PHP experimentado, que también trabajaba en JavaScript, que no tenía experiencia con Node.js. Sin embargo, ya había programadores experimentados en el proyecto que pudieron apoyar a un colega y garantizar la calidad del código.

Hablemos un poco más de tus clientes.¿Cómo reaccionaron a su decisión de alejarse de PHP?

La mayor resistencia interna y tristeza que tuvimos fue con un proyecto creado para un cliente de 10 años. Es bastante divertido, porque uno de nuestros programadores había trabajado en él desde el principio. Naturalmente, sabía más sobre el sistema que muchos gerentes de esa empresa. Fue difícil para nosotros explicarles nuestra decisión. A pesar de que teníamos un aviso de un mes, queríamos cuidar bien a este cliente. Acordamos estar disponibles para ellos durante otros seis meses. Curiosamente, después de 3 meses, el cliente mismo finalizó la cooperación debido a una reorganización interna de la empresa. Esto también demostró que no debes detenerte demasiado en las cosas. Deberían hacerse y ya está.

Ha sido más fácil con otros proyectos. Como otros eventos, sucedió de forma bastante natural. Por ejemplo, teníamos un cliente que desarrollaba parte del sistema en Node.js. Acordamos que nuestros programadores, que previamente habían apoyado el proyecto en tecnología PHP, brindarían sus servicios a tarifas más bajas durante los primeros meses. En cierto modo, esto fue una compensación por la supuesta menor eficiencia del equipo que recientemente había cambiado de tecnología.

¿Cómo crees que los desarrolladores ven este cambio ahora?

Creo que están felices. A la gente de esta industria le gusta aprender. En ese momento, tenían el tiempo y el dinero para estudiar. Estudiaron a tiempo completo, recibieron un salario completo y pudieron beneficiarse de becas de estudio. Esto sin duda tuvo un efecto positivo en sus sentimientos.

¿Es Node.js mejor que PHP? Esto es, por supuesto, discutible. Ciertamente, esta tecnología es popular ahora, por lo que hemos entrado en un período de tendencia al alza.

Algunas personas inicialmente se arrepintieron de dejar un proyecto PHP a largo plazo. Pero después de un corto tiempo, admitieron que habían salido de cierto tipo de estancamiento. Y sintieron la brisa emocionante de nuevos desafíos. En general, creo que salió bien.

¿Cuánto duró el cambio?

Todo el proceso se prolongó en el tiempo. La verificación del mercado llevó bastante tiempo. Trabajar en la reorganización de la empresa y separarla de los clientes también tomó mucho tiempo. En total han pasado casi 2 años desde la creación de la tarea en Jira y su cierre.

Sin embargo, vale la pena señalar que la brecha más larga entre la transición de un desarrollador de un proyecto PHP a Node.js fue de solo 3 meses. Esto estaba relacionado con su declaración del tiempo que sentía que necesitaba para unirse al proyecto con colegas más experimentados.

¿Cuál fue el aspecto más difícil?

Creo que acaba de llegar a la decisión de que era hora de cambiar algo. Sin embargo, la conciencia de que si no cambiamos ahora, y en un año o dos no habrá nada que cambiar, ayudó significativamente a tomar la decisión más rápido.

También era difícil desprenderse de los clientes cuando no se veía claramente ninguna alternativa en el horizonte y la situación económica no era estable.

En todo este proceso, hemos querido cuidar a nuestros clientes de larga data, que encuentren con tranquilidad una alternativa, pero también cuidarnos a nosotros mismos. Asegurar la preparación de los programadores y su disposición para tomar órdenes rápidamente en la nueva tecnología.

Si el CTO de otra empresa viniera y te dijera que él también está pensando en cambiar el perfil tecnológico de la empresa, ¿qué 3 consejos le darías?

Ten una visión. Sepa por qué quiere hacerlo y déjele claro a su equipo hacia dónde va y por qué.

Coopera con tu equipo. Habla con la gente, adapta tus acciones a lo que escuchas y ten en cuenta sus capacidades. Hacer todo con la gente.

Haz todo consistentemente, a pesar de los momentos de vacilación.