Video Summary and Transcription
Como desarrollador de software, la entrelazamiento entre las personas y el software que desarrollan es importante. El software heredado presenta desafíos debido a la falta de tiempo, comprensibilidad y optimización. Los sistemas heredados en el cuidado de la salud enfrentan desafíos similares. La evolución e innovación de Microsoft resaltan el valor del cambio. Desarrollar software adaptable y fácil de usar requiere considerar la interconexión de todos los actores.
1. Introducción a las personas y el desarrollo de software
Un amigo me preguntó por qué, como desarrollador de software, a menudo hablo de personas y equipos en lugar de solo programar. Esto me hizo pensar en la interrelación entre las personas y el software que desarrollan. En uno de mis proyectos de investigación, me encontré con un programa Fortran que era difícil de entender. Esto generó una conversación con mi profesor sobre reescribirlo en un lenguaje más moderno.
Hace un tiempo, no hace mucho, pero algún tiempo atrás, estaba charlando con una amiga mía y ella me preguntó, Rita, eres desarrolladora de software, pero en nuestras conversaciones a menudo hablas de personas, equipos, cómo se conectan, qué está mal, ¿no se supone que debes construir code? Y eso me quedó en la cabeza y me llevó a un estado de reflexión y de ahí viene todo esto.
Como ingenieros de software, se nos enseña el principio de separación de preocupaciones y lo hacemos muy bien en nuestro code. Codificamos, designamos nuestro code con el principio de que este módulo hace esto, ese módulo hace aquello, casi sin conexión entre ellos y estamos bien, estamos bien. Sin embargo, las cosas son un poco diferentes y en realidad creo que para este caso y para el desarrollo de software, hay una interrelación de preocupaciones entre las personas y el software que desarrollan.
Estudié física en la universidad, no una carrera de ingeniería en ciencias de la computación y hice astrofísica y al principio de uno de mis proyectos de investigación, me dieron la tarea de procesar algunos data y junto con esa tarea venía un programa de computadora en Fortran y era realmente, realmente difícil de entender y seguir, el lenguaje, los data en sí, así que era extraño y generó la conversación entre mi profesor y yo y fue interesante porque a él le gustaba mucho, estaba muy contento. Implementa cosas del artículo, es muy trivial. No es muy trivial, pero tengo una idea, ¿por qué no tomamos el code, tenemos el artículo, tenemos los data, hagamos una prueba de rendimiento, escribámoslo de nuevo en un lenguaje nuevo y más moderno que las personas nuevas puedan entender y seguir.
2. Desafíos con el Software Heredado
No hay tiempo para renovar el código. El código optimizado puede no ser fácilmente comprensible. En mi trabajo en una empresa de tecnología, tuvimos que readaptarnos y reaccionar al cambio durante el lanzamiento del satélite. El software en las fábricas es antiguo y no óptimo.
No, no, no, no, no, no vamos a hacer eso. No hay tiempo. Esto ha sido probado en batalla y demostrado por muchos, muchos estudiantes antes que tú y muchos, muchos estudiantes después de ti. Pero escucha, tenemos el code, tenemos las pruebas, tenemos cosas que podemos renovar y darle un nuevo aspecto, darle una nueva marca. No, no tenemos tiempo. ¿Okay, cuándo tendremos tiempo? ¿Sabes, pronto? Y adivinen qué, amigos. Pronto nunca llegó. Y cuando le conté esta historia a un par de amigos míos de diferentes departamentos en la universidad, dijeron lo mismo acerca de los suyos. Sí, sí, sí, es lo mismo para nosotros en matemáticas, es lo mismo para nosotros en física, lo que sea.
Y el code que solemos ver, está realmente, realmente optimizado. En ese momento, tenía que ser así debido a las limitaciones de las computadoras, las limitaciones de la memoria, etc. Así que si miras esto, sí, la función F hace algo aleatorio, luego llamas a la función principal, llamas al número. Pero con una refactorización muy simple, si lo cambio para calcular el factorial, ahora sabes de repente, calcula el factorial de un número, y lo buscas más tarde, ¿qué hace? Bastante justo.
Adelante. Empecé a trabajar en una empresa de tecnología. Era para ingeniería aeroespacial. Y mi primer trabajo fue construir no el satélite, gracias a Dios, sino construir el software que procesaría los data que el satélite recolectaba. El equipo era increíble. Y como puedes imaginar, construir un satélite significa que tienes muchas fases por las que tienes que pasar. Así que naturalmente, el proyecto siguió los métodos de cascada, y cada paso tenía que hacerse después del otro. Uno de los pasos más importantes en el lanzamiento, en el proyecto, fue el lanzamiento. Así que cuando se lanzó el satélite, al principio nos dimos cuenta de que algo no estaba funcionando en uno de los receptores, y tuvimos que readaptarnos, reajustarnos, react al cambio, crear nuevos algoritmos, implementarlos, validarlos y ponerlos en funcionamiento de nuevo. Y funcionó. Y funcionó gracias a estas personas increíbles que trabajaron juntas, conectadas, construyendo y ejecutando el producto del que nos ocupábamos.
Hace un par de años, me uní a Volkswagen Digital Solutions en Portugal, y para mi sorpresa, descubrí que parte del software que se ejecuta en las fábricas también es un poco antiguo. Un poco, digamos. Pero en su mayoría es software que se ejecuta localmente, escrito en COBOL, y las bases de datos son realmente, realmente antiguas. Y no es del todo óptimo. Digamos así. Y nuevamente, al hablar con mis amigos, dicen, sí, pero es lo mismo para nosotros en finanzas. Es lo mismo para nosotros en telecomunicaciones.
3. El Desafío de los Sistemas Heredados
Los sistemas de salud enfrentan desafíos similares. El conocimiento de los sistemas heredados está en riesgo. A menudo, la gestión se resiste a renovar sistemas que funcionan. La evolución e innovación de Microsoft demuestran el valor del cambio. Todos los actores involucrados en los sistemas de software están interconectados. Es posible desarrollar software adaptable y fácil de usar. Mantén en mente la interrelación de preocupaciones.
Lo mismo ocurre con nosotros en el health. De acuerdo, está bien. Pero no es que las cosas no funcionen. Las cosas funcionan. Pero ¿por qué funcionan? Y en nuestro caso, es un poco, y estoy seguro de que para otras industrias tecnológicas y otros lugares, es lo mismo. Las personas que construyeron estos sistemas ya no están, o están a punto de jubilarse, lo que significa que el conocimiento se perderá y será muy, muy difícil renovar y mantener las cosas en funcionamiento.
Estoy bastante seguro de que a lo largo de los años, un grupo de profesionales capacitados se ha acercado a la dirección y ha dicho: `Oye, ¿por qué no aprovechamos esto, y no tiene que ser la tecnología más nueva y brillante, pero por qué no aprovechamos la oportunidad y renovamos, modernizamos, cambiamos esto un poco? Y típicamente, la respuesta que la dirección da es: `Oh, pero funciona. Está funcionando. ¿Por qué gastar tiempo y dinero en reemplazar algo que funciona?`
Avancemos rápidamente a los primeros momentos de la historia. Con todo esto en mente, oh, porque tenemos un producto que funciona, y si tenemos un producto que funciona, no hagamos nada al respecto. ¿Verdad? Incorrecto. 1985. La primera edición de Microsoft Windows. ¿Se detuvieron ahí? No, continuaron. Y en 2021, lanzaron la última versión de su sistema operativo. Evolucionaron. Escucharon a los usuarios. Continuaron avanzando, impulsando el cambio y promoviendo la innovación.
Volviendo al tema. Y como ella dijo, es un corto período de tiempo. Creo que hay un rompecabezas. Hay un gran rompecabezas que está ahí. Las personas que construyen software, las personas que piensan en software, las personas que lo usan, las que lo mantendrán. Y las personas que pagan por el software. Y creo que no podemos separar las piezas, una de la otra. Creo que todas están conectadas. Y hay una interrelación de preocupaciones entre todos estos actores involucrados.
Esa es mi idea. Y cuando visité Autostadt en Wolfsburg, hay varios pabellones. Uno de ellos es el pabellón de Porsche. Ferdinand Porsche tenía una cita muy famosa en la que decía que no podía encontrar el coche de sus sueños, así que lo construyó. Sigue tus sueños. Realmente creo que es posible desarrollar sistemas de software que sean fáciles de usar y puedan adaptarse al cambio. Teniendo en cuenta a las personas que los mantendrán y usarán a lo largo de los años. Así que sé una de esas personas. Mantén esa interrelación en mente cuando estés trabajando.
Muchas gracias. Espero que hayan disfrutado. Gracias.
Comments