Mi primera semana en el mundo de las aplicaciones médicas
Desde el lunes que me presenté a mi nuevo empleo en una pequeña empresa local dedicada a estudios de neurociencia he experimentado la semana más burocráctica así como una de las más sorpresivas y gratificantes de mi vida laboral.
Todo comienza con la acreditación de la empresa bajo el estándar ISO 13485 para dispositivos médicos que especifica una serie de procedimientos, documentos y recomendaciones que permiten rastrear todo lo que se ha integrado en la aplicación desde el primer momento. Este rastreo es necesario dado que una aplicación médica representa una influencia directa sobre la salud de las personas y por tanto, si esta entra en riesgo, se debe conocer el trasfondo, desde la investigación que promovió la idea hasta la implementación, y detectar y erradicar los fallos ocurridos.
Es bastante importante y relevante mantenerla dado el enfoque de trabajo.
La cuestión está en que lamentablemente la velocidad de reacción ante errores en el sistema es demasiado lenta debido a que el estándar no permite liberar versiones sin antes haber pasado por una serie de pruebas y haber rellenado varios formularios. Esto emplea a toda la organización por al menos diez horas. Dicho de otra manera: si el bug no es de riesgo para la salud entonces puede esperar.
Es más, el estándar también “prohíbe” lanzar automáticamente la actualización desde un flujo en Gitlab dado que quieren evitar el riesgo de que el hash del último cambio no sea el mismo que se ha probado. Esto es algo que estoy realmente dispuesto a debatir ya que pienso que podemos probar de varias maneras que dicho hash es el mismo usando correctamente meta-etiquetas (tags) en el lanzamiento. La “prohibición” vino directamente de la persona que ayudó a implementar el estándar en la organización y tengo la sensación de que hay omisión de conocimiento en su interpretación.
Además de presenciar la parte final de una liberación de hotfixes que duró más de una semana también tuve que realizar varios entrenamientos con su correspondiente exámen posterior, todo para certificación interna. Para el siguiente mes debo haber completado la lectura y evaluación de una larga lista de documentos variando entre 20 y 5 páginas cada uno 😑.
Pero donde realmente vino mi gran sorpresa es en la pobreza del proceso de ingeniería de software que hasta ahora se ha estado llevando a cabo. No sólo las prácticas más básicas se quedan cortas, como un buen manejo de las ramas en Git y su correspondiente integración, sino también la calidad de los artefactos. Gran parte de la problemática reside en el hecho de que por ahora todo el trabajo de desarrollo está siendo subcontratando a tres equipos, con diferentes niveles de experiencia y sin comunicación relevante entre ellos.
Yo soy el primer ingeniero contratado directamente por la empresa.
Aunque lo anterior suene negativo personalmente siento todo lo contrario: es un reto muy bueno y me entusiasma poder lograr buenos resultados.
He comenzado con la documentación e implementación de prácticas, así como la organización de las ramas para Git y eliminación de permisos para promover que las malas prácticas sean difícil de lograr. Pronto estaré incrementando el trabajo que harán por nosotros los runners de Gitlab y así poco a poco establecer un pulso para el equipo y tratar de mantener una buena salud.
Al mismo tiempo hemos ya comenzado la búsqueda de desarrolladores que tendré a cargo y poder así tener retroalimentación directa y acción pronta que, según entiendo, hace bastante falta.
El equipo actualmente de planta es también un gran factor para mi entusiasmo. Me agrada la forma de trabajar y en poco tiempo hemos establecido bastante confianza, lo que considero extremadamente relevante para poder promover los cambios.
Ha sido una semana muy larga pero gratificante 😅💦.