La Entrelazamiento de Preocupaciones entre las Personas y el Desarrollo de Software

Rate this content
Bookmark

Recientemente me preguntaron: "Pero Rita, ¿no eres una Desarrolladora de Software? ¿No es tu trabajo escribir código? ¿Por qué sigues reflexionando sobre las personas?" Mi respuesta fue simple: "porque no es responsabilidad de una sola persona construir software de calidad. Se necesita un equipo".

El Desarrollo de Software y las Personas no pueden ser vistos como dos preocupaciones separadas por las empresas. Existe una entrelazamiento natural entre ambos que me gustaría explorar un poco en esta sesión.

This talk has been presented at C3 Dev Festival 2024, check out the latest edition of this Tech Conference.

Rita Castro
Rita Castro
8 min
15 Jun, 2024

Comments

Sign in or register to post your comment.

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

Short description:

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

Short description:

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.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Remix Flat Routes – Una Evolución en el Enrutamiento
Remix Conf Europe 2022Remix Conf Europe 2022
16 min
Remix Flat Routes – Una Evolución en el Enrutamiento
Top Content
Remix Flat Routes is a new convention that aims to make it easier to see and organize the routes in your app. It allows for the co-location of support files with routes, decreases refactor and redesign friction, and helps apps migrate to Remix. Flat Folders convention supports co-location and allows importing assets as relative imports. To migrate existing apps to Flat Routes, use the Remix Flat Routes package's migration tool.
Principios para Escalar el Desarrollo de Aplicaciones Frontend
React Summit 2023React Summit 2023
26 min
Principios para Escalar el Desarrollo de Aplicaciones Frontend
Top Content
This Talk discusses scaling front-end applications through principles such as tearing down barriers, sharing code in a monorepo, and making it easy to delete code. It also emphasizes incremental migration, embracing lack of knowledge, and eliminating systematic complexity. The Talk highlights the use of automation in code migration and the importance of removing barriers to enable smoother code migration.
Luchando contra la Deuda Técnica con la Refactorización Continua
React Day Berlin 2022React Day Berlin 2022
29 min
Luchando contra la Deuda Técnica con la Refactorización Continua
Top Content
This Talk discusses the importance of refactoring in software development and engineering. It introduces a framework called the three pillars of refactoring: practices, inventory, and process. The Talk emphasizes the need for clear practices, understanding of technical debt, and a well-defined process for successful refactoring. It also highlights the importance of visibility, reward, and resilience in the refactoring process. The Talk concludes by discussing the role of ownership, management, and prioritization in managing technical debt and refactoring efforts.
Construyendo equipos interculturales de alto rendimiento
React Day Berlin 2022React Day Berlin 2022
25 min
Construyendo equipos interculturales de alto rendimiento
The Talk discusses the importance of effective communication and collaboration in cross-cultural teams. It emphasizes the impact of culture on communication and performance evaluation. The speaker highlights the differences between low-context and high-context communication styles and the need to understand cultural nuances. It also explores the challenges of giving feedback in multicultural teams and suggests ways to improve communication and create a feedback culture. The influence of language on communication and the importance of transparency and honesty in feedback are also discussed.
Cómo hacer un juego web tú solo
JS GameDev Summit 2023JS GameDev Summit 2023
27 min
Cómo hacer un juego web tú solo
This talk guides you on how to make a web game by yourself, emphasizing the importance of focusing on tasks that interest you and outsourcing the rest. It suggests choosing a game engine that allows distribution on the web and aligns with your understanding and enjoyment. The talk also highlights the significance of finding fun in the creative process, managing scope, cutting features that don't align with the game's direction, and iterating to the finish line. It concludes by discussing the options for publishing the game on the web and leveraging unique web features.

Workshops on related topic

Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
React Summit 2024React Summit 2024
92 min
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
Featured Workshop
Vivek Nayyar
Vivek Nayyar
Sumérgete en el mundo de la IA con nuestro masterclass interactivo diseñado específicamente para desarrolladores web. "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" ofrece una oportunidad única para cerrar la brecha entre la IA y el desarrollo web. A pesar de la prominencia de Python en el desarrollo de IA, el vasto potencial de JavaScript sigue siendo en gran medida inexplorado. Este masterclass tiene como objetivo cambiar eso.A lo largo de esta sesión práctica, los participantes aprenderán cómo aprovechar LangChain, una herramienta diseñada para hacer que los modelos de lenguaje grandes sean más accesibles y útiles, para construir agentes de IA dinámicos directamente dentro de entornos JavaScript. Este enfoque abre nuevas posibilidades para mejorar las aplicaciones web con funciones inteligentes, desde el soporte al cliente automatizado hasta la generación de contenido y más.Comenzaremos con los conceptos básicos de LangChain y los modelos de IA, asegurando una base sólida incluso para aquellos nuevos en IA. A partir de ahí, nos sumergiremos en ejercicios prácticos que demuestran cómo integrar estas tecnologías en proyectos reales de JavaScript. Los participantes trabajarán en ejemplos, enfrentando y superando los desafíos de hacer que la IA funcione sin problemas en la web.Este masterclass es más que una experiencia de aprendizaje; es una oportunidad de estar a la vanguardia de un campo emergente. Al final, los asistentes no solo habrán adquirido habilidades valiosas, sino que también habrán creado funciones mejoradas con IA que podrán llevar a sus proyectos o lugares de trabajo.Ya seas un desarrollador web experimentado curioso acerca de la IA o estés buscando expandir tus habilidades en áreas nuevas y emocionantes, "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" es tu puerta de entrada al futuro del desarrollo web. Únete a nosotros para desbloquear el potencial de la IA en tus proyectos web, haciéndolos más inteligentes, interactivos y atractivos para los usuarios.
De Ingeniero a Líder: Un Masterclass para Líderes Tecnológicos Primerizos
TechLead Conference 2024TechLead Conference 2024
144 min
De Ingeniero a Líder: Un Masterclass para Líderes Tecnológicos Primerizos
Workshop
Andrew Murphy
Andrew Murphy
Transicionar de un rol de contribuidor individual a una posición de liderazgo, especialmente en la industria tecnológica de ritmo acelerado, es enormemente desafiante. La mayoría de los nuevos líderes no reciben ningún tipo de capacitación en los primeros 10 años de sus nuevas responsabilidades.Nuestro completo masterclass está diseñado para ayudar a los nuevos y emergentes líderes tecnológicos a comprender sus nuevos roles y adquirir las habilidades para convertirse en líderes seguros, felices y efectivos.
Managers Are From Mars, Devs Are From Venus
TechLead Conference 2024TechLead Conference 2024
111 min
Managers Are From Mars, Devs Are From Venus
Workshop
Mo Khazali
Mo Khazali
Una Guía para Desarrolladores sobre Cómo Comunicar, Convencer y Colaborar Efectivamente con los Stakeholders
Es una historia tan antigua como el tiempo: la colaboración entre desarrolladores y stakeholders de negocios ha sido durante mucho tiempo un desafío, con una falta de comunicación clara que a menudo deja a ambas partes frustradas. Los mejores desarrolladores pueden comprender profundamente las necesidades de sus contrapartes de negocios, comunicar efectivamente la estrategia técnica sin perder a la audiencia no técnica y convencer al negocio de tomar las decisiones correctas. Trabajando en una consultoría, he fallado y tenido éxito en arquitectar y “vender” visiones técnicas, aprendiendo muchas lecciones en el camino.Ya sea que trabajes en una empresa de productos, seas consultor/freelancer, o quieras aventurarte más allá de ser solo un desarrollador, la capacidad de convencer y comunicar claramente con los stakeholders puede diferenciarte en la industria tecnológica. Esto se vuelve aún más importante con el auge de GenAI y el mercado de desarrolladores cada vez más competitivo, ya que la resolución de problemas y la comunicación efectiva son clave para posicionarte.En esta masterclass, compartiré ejemplos del mundo real, tanto buenos como malos, y te guiaré a través de poner la teoría en práctica mediante dojos.
Fuera de la sartén, al fuego: Guía para gerentes sobre cómo ayudar a los nuevos desarrolladores a prosperar
TechLead Conference 2024TechLead Conference 2024
35 min
Fuera de la sartén, al fuego: Guía para gerentes sobre cómo ayudar a los nuevos desarrolladores a prosperar
Workshop
Andrew Coleburn
Andrew Coleburn
Integrarse a un nuevo proyecto puede ser difícil, sin importar tu experiencia y antecedentes. Pero puede ser especialmente desafiante para los nuevos desarrolladores recién salidos de la escuela o de un bootcamp de programación. Basándose en su experiencia personal como graduado de un bootcamp y consultor de JavaScript, esta charla discutirá consejos y estrategias para que los gerentes ayuden a los nuevos desarrolladores de sus equipos a familiarizarse con un código desconocido, para que puedan tener un impacto más rápido y efectivo.
Cómo crear experiencias de edición que tu equipo amará
React Advanced Conference 2021React Advanced Conference 2021
168 min
Cómo crear experiencias de edición que tu equipo amará
Workshop
Lauren Etheridge
Knut Melvær
2 authors
El contenido es una parte crucial de lo que construyes en la web. Las tecnologías web modernas aportan mucho a la experiencia del desarrollador en términos de construir sitios impulsados por contenido, pero ¿cómo podemos mejorar las cosas para los editores y creadores de contenido? En este masterclass aprenderás cómo usar Sanity.io para abordar la modelización de contenido estructurado, y cómo construir, iterar y configurar tu propio CMS para unificar los modelos de datos con experiencias de edición eficientes y agradables. Está dirigido a desarrolladores web que desean ofrecer mejores experiencias de contenido para sus equipos de contenido y clientes.