Video Summary and Transcription
La charla explora la entrelazamiento de preocupaciones entre las personas y el software que desarrollan, enfatizando la importancia de considerar a las personas y los equipos en lugar de solo enfocarse en la codificación. Destaca las limitaciones de tiempo a las que se enfrentan los desarrolladores y el potencial de optimización del código para mejorar la comprensión y utilidad. La charla también discute la importancia de renovar software obsoleto y adoptar la mejora continua en el desarrollo de software. Concluye enfatizando la interconexión entre los constructores de software, pensadores, usuarios, mantenedores y pagadores, y fomenta el desarrollo de sistemas de software amigables que se adapten al cambio y consideren las necesidades de todas las partes interesadas.
1. Introducción a la Entrelazación de Preocupaciones
Un amigo me preguntó, como desarrollador de software, por qué hablo tanto de personas y equipos en lugar de solo programar. Esto me hizo reflexionar sobre la entrelazación de preocupaciones entre las personas y el software que desarrollan. En uno de mis proyectos de investigación, me dieron un programa en Fortran que era difícil de entender. Sugerí reescribirlo en un lenguaje más moderno.
Hace un tiempo, no hace mucho pero algún tiempo atrás, estaba charlando con una amiga y ella me preguntó, pero 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? 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, nos enseñan el principio de separación de preocupaciones. Y lo hacemos muy bien en nuestro code. code, design 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 no se enfrentan unas a otras. Y en realidad creo que en este caso y en el desarrollo de software, hay una entrelazación de preocupaciones entre las personas y el software que desarrollan. Estudié física en la universidad. Así que no tengo un título en ingeniería informática. Y hice astrofísica y al principio, en uno de mis proyectos de investigación, me dieron una tarea para procesar algunos data. Y junto con esa tarea vino un programa de computadora en Fortran. Y era realmente, realmente difícil de entender y seguir, el lenguaje, los data en sí, era extraño y provocó la conversación entre mi profesor y yo. Y fue interesante porque él estaba muy emocionado, estaba muy feliz. 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, más moderno que
2. Restricciones de Tiempo y Optimización de Código
Nunca hay suficiente tiempo para renovar y rebrandear el código, a pesar de que tenemos el código, las pruebas y la capacidad de mejorarlo. Muchos estudiantes y colegas de diferentes departamentos enfrentan la misma restricción de tiempo. El código que solemos ver está altamente optimizado, pero una simple refactorización puede hacerlo más comprensible y útil.
nuevas personas puedan entender y seguir. 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. No, no tenemos tiempo, eso seguro. ¿Cuándo tendremos tiempo? Sabes, pronto. Y adivina 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 sobre 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 restricciones en las computadoras, las restricciones en la memoria, etc. Así que si miras esto, sí, funciones, 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 puedes consultarlo
3. Revamping Software and Continuous Improvement
Construí software para procesar datos de satélite, enfrentando desafíos y adaptándome al cambio. En diferentes industrias, incluyendo Volkswagen, se ejecuta software obsoleto porque las personas que lo construyeron ya no están disponibles. La renovación es esencial, incluso si funciona. Microsoft Windows es un ejemplo destacado de mejora continua.
más tarde. ¿Qué hace? Bastante justo. Adelante. Comencé 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, construir el software que procesaría los data que el satélite recopilaba. El equipo era increíble. Y como puedes imaginar, construir un satélite significa que tienes muchas fases por las que debes pasar. Por lo tanto, naturalmente, el proyecto siguió los métodos de cascada y cada paso debía hacerse después del otro. Uno de los pasos más importantes en el lanzamiento, en el lanzamiento, en el proyecto fue el lanzamiento. Así que cuando se lanzó el satélite, temprano nos dimos cuenta de que algo no funcionaba en uno de los receptores y tuvimos que reajustar, readaptar, react al cambio, crear nuevos algoritmos, implementarlos, validarlos y ponerlos en funcionamiento nuevamente. Y funcionó. Funcionó gracias a estas increíbles personas que trabajaron juntas, conectadas, construyendo y ejecutando el producto del que nos ocupábamos. Avancemos 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 funciona, en su mayoría es software que se ejecuta en las instalaciones, que está escrito en COBOL, que las bases de datos son realmente, realmente antiguas. Y es un poco no óptimo, digamos así. Y nuevamente, al hablar con mis amigos, dicen, sí, pero es lo mismo con nosotros en finanzas. Es lo mismo con nosotros en telecomunicaciones. Es lo mismo con nosotros en health. De acuerdo, 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 las otras industrias tecnológicas y para otros lugares, es lo mismo. Las personas que han construido estos sistemas ya no están, o están a punto de jubilarse, lo que significa que el conocimiento se perderá. Y será realmente, realmente difícil renovar y mantener las cosas en funcionamiento. Y estoy bastante seguro de que a lo largo de los años, un grupo de profesionales capacitados se ha acercado a la gerencia y ha dicho, oye, escucha, ¿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 gente recibe de la gerencia es, oh, pero funciona, está funcionando, ¿por qué reemplazar tiempo y dinero para reemplazar algo que está funcionando? Entonces, avancemos a las primeras partes de la historia. Entonces, con todo esto en mente, oh, porque tenemos un producto que funciona, y si tenemos un producto que funciona, no vamos a hacer nada al respecto. ¿Verdad? Incorrecto. 1985. La primera edición de Microsoft
4. The Entanglement of Software Development
En 2021, se lanzó la última versión de su sistema operativo, impulsada por la retroalimentación de los usuarios y el compromiso con la innovación. El rompecabezas radica en la interconexión entre los constructores de software, los pensadores, los usuarios, los mantenedores y los pagadores. Debemos reconocer la interrelación de preocupaciones entre estos actores. Al igual que Ferdinand Porsche, quien construyó el automóvil de sus sueños, podemos desarrollar sistemas de software amigables para el usuario que se adapten al cambio y consideren las necesidades de los mantenedores y usuarios. Abrace esta interrelación en su trabajo.
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 atrás, 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 usan software, las que los mantendrán y las personas que pagan por el software. Y creo que no podemos separar y no podemos separar las piezas, una de la otra. Creo que están todas conectadas y hay una interrelación de preocupaciones entre todos estos actores en juego. Y así, esa es mi idea. Y cuando visité Autostadt en Wolfsburg, hay varios pabellones. Uno de ellos es el pabellón de Porsche. Y Ferdinand Porsche tenía una cita muy famosa en la que dijo que no podía encontrar el automóvil de sus sueños, así que lo construyó. Así que sigue tus sueños. Realmente creo que es posible para nosotros desarrollar sistemas de software que sean amigables para el usuario 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é esas personas. Mantén esa interrelación en mente cuando estés trabajando. Así que muchas gracias. Espero que hayan disfrutado.
Comments