El poder de los pares

Rate this content
Bookmark

Los equipos de ingeniería a menudo enfrentan desafíos difíciles con recursos limitados. Si el trabajo requiere 1 ingeniero, asignamos uno al trabajo. Si requiere 2, dividimos los temas en partes accionables y los asignamos a individuos.


Pero hay varios beneficios de hacer las cosas en pares: ayuda a detectar errores y bugs, permite una mejor comunicación y colaboración entre los miembros del equipo y también puede llevar a un código más eficiente y de mayor calidad, ya que los ingenieros pueden desafiar las suposiciones de sus compañeros y sugerir enfoques alternativos.

21 min
09 Mar, 2023

Video Summary and Transcription

La programación en pareja es una técnica colaborativa de desarrollo de software en la que dos desarrolladores trabajan juntos en una estación de trabajo. Ofrece beneficios como un mantenimiento de código más fácil, revisiones de código más rápidas y una menor probabilidad de errores. Implementar la programación en pareja implica encontrar socios compatibles, establecer metas y establecer protocolos de comunicación claros. Para abordar los desafíos, brindar capacitación y apoyo, involucrar a los miembros del equipo en la toma de decisiones y seleccionar cuidadosamente a los socios. La programación en pareja puede ayudar a lograr objetivos como la colaboración, el crecimiento del conocimiento, la estabilidad del código y el mantenimiento.

Available in English

1. Introducción a la Programación en Pareja

Short description:

Hola, y bienvenidos al Poder de los Pares, una charla sobre programación en pareja. La programación en pareja es una técnica colaborativa de desarrollo de software donde dos desarrolladores trabajan juntos en una estación de trabajo compartiendo un teclado y un mouse. Los dos desarrolladores que participan en la programación en pareja son socios iguales, cada uno con sus propias responsabilidades.

Hola, y bienvenidos al Poder de los Pares, una charla sobre programación en pareja. Mi nombre es Octave y soy un ingeniero de software en Datadog. He sido ingeniero de software durante los últimos ocho años y esta presentación se basa tanto en mi experiencia personal como en algunos artículos e investigaciones disponibles en línea.

Comencemos con una breve introducción para aquellos que aún no están familiarizados con la programación en pareja. La programación en pareja es una técnica colaborativa de desarrollo de software donde dos desarrolladores trabajan juntos en una estación de trabajo compartiendo un teclado y un mouse. Los dos desarrolladores trabajan juntos para completar una tarea, como implementar una función, solucionar un error o escribir pruebas. Un desarrollador, el conductor, es responsable de escribir el código, mientras que el otro desarrollador, el navegador, revisa el código, brinda comentarios y sugiere mejoras. Los dos desarrolladores que participan en la programación en pareja son socios iguales, cada uno con sus propias responsabilidades. Es similar al equipo de un coche de rally, donde el conductor maniobra el coche con precisión, mientras que su compañero se enfoca en el mapa y le avisa sobre giros y otras especificidades de la carretera. Los dos roles se complementan entre sí y son igualmente importantes.

2. Beneficios y Desafíos de la Programación en Pareja

Short description:

Veamos ahora algunos argumentos convincentes sobre por qué podrías estar interesado en la programación en pareja en tus hábitos de equipo, así como también los contraargumentos. Hay muchas ventajas en la programación en pareja y estas variarán según las especificidades de tu organización. Sin embargo, aquí están algunos de los beneficios más comunes y buscados de la programación en pareja. Al revisar minuciosamente el código y construirlo combinando el conocimiento de dos ingenieros, es probable que sea más fácil de mantener y menos propenso a causar errores y fallos.

Veamos ahora algunos argumentos convincentes sobre por qué podrías estar interesado en la programación en pareja en tus hábitos de equipo, así como también los contraargumentos. Hay muchas ventajas en la programación en pareja y estas variarán según las especificidades de tu organización. Sin embargo, aquí están algunos de los beneficios más comunes y buscados de la programación en pareja.

Al revisar minuciosamente el código y construirlo combinando el conocimiento de dos ingenieros, es probable que sea más fácil de mantener y menos propenso a causar errores y fallos. A medida que los desarrolladores pasan más tiempo compartiendo pensamientos y prácticas, así como presenciando las prácticas de sus compañeros de equipo, brindan oportunidades de crecimiento mutuo. Puede tener un impacto muy positivo en la moral, ya que los compañeros de equipo pasan más tiempo juntos y se unen a través de actividades profesionales. Puede implicar que un individuo intervenga en una parte del producto de la cual no es responsable, lo que le brinda la oportunidad de hacer preguntas y aprender al respecto. Por último, al analizar de manera integral la productividad, la programación en pareja tendrá frecuentemente un impacto positivo, y hablaremos de eso nuevamente más adelante en la presentación.

También existen desventajas y desafíos. Estos pueden tener un impacto importante en el resultado de tus sesiones de programación en pareja. El primer y, con mucho, el argumento más frecuente es que la programación en pareja no es rentable en términos de costos. Un estudio realizado por dos investigadores de Microsoft indica que había considerable escepticismo sobre si tener dos personas trabajando en una tarea es un buen uso de los recursos. Y más adelante, también se menciona que la aceptación de los gerentes también fue un desafío, con uno de los gerentes diciendo: si tengo opción, puedo contratar a un programador estrella en lugar de dos programadores que necesitan programar en pareja. Esto es algo de lo que hablaremos nuevamente más adelante en esta presentación, ya que puede ser discutible y hay diferentes cifras para analizar. Otro problema es encontrar socios que trabajen bien juntos. Los miembros del equipo pueden tener diferentes estilos de trabajo, preferencias, personalidades y culturas, lo que puede dificultar encontrar un socio compatible. La resistencia al cambio es otra. Algunos desarrolladores pueden resistirse al cambio a la programación en pareja y preferir trabajar solos. Esto puede ser un desafío significativo, especialmente si los miembros del equipo no están acostumbrados a colaborar estrechamente con otros. Por ejemplo, pueden sentir que están siendo observados o microgestionados cuando están en el asiento del conductor. Por último, la comunicación efectiva es crucial para la programación en pareja, por lo que también puede ser un desafío, especialmente si los miembros del equipo tienen diferentes estilos o preferencias de comunicación. Personalmente, he tenido experiencia con equipos multiculturales donde a veces aumenta el riesgo de no comunicarse correctamente, ya que es posible que no sean sensibles a las mismas palabras, significados y actitudes que la otra parte. Estos desafíos son argumentos válidos y más adelante en esta charla mencionaremos formas de abordarlos y tratar de mitigar su impacto.

Para agregar algo de contexto y cifras prácticas, aquí hay algunos comentarios recopilados en un estudio realizado en Microsoft en 2007. Estos son los 5 argumentos más mencionados a favor y en contra de la programación en pareja, con una puntuación que representa con qué frecuencia se mencionaron estos argumentos en el estudio. Este es, por supuesto, un solo estudio y otros pueden tener clasificaciones y elementos diferentes, pero creo que este te da una representación bastante precisa de cómo se sienten los desarrolladores en general acerca de la programación en pareja. Quiero dedicar un tiempo y abordar el argumento del costo. Como vimos que es, con mucho, la mayor preocupación. Primero, digamos que muy a menudo no se pasa un ciclo completo de desarrollo en una situación de programación en pareja.

3. Beneficios de la Programación en Pareja

Short description:

La programación en pareja es una práctica que vale la pena considerar cuando se tienen en cuenta los costos que se pueden evitar o reducir. Permite revisiones de código más rápidas, pruebas más rápidas y reduce la probabilidad de errores. También aumenta la familiaridad del equipo con la base de código y reduce los tiempos de mantenimiento y desarrollo futuro.

Un estudio de la Universidad de Utah mostró que el aumento general en el tiempo de desarrollo fue de aproximadamente un 15% en el conjunto de datos que tenían. Además, al igual que invertir en refactorización puede ser beneficioso para los beneficios a largo plazo de la organización y la base de código, la programación en pareja es una práctica que vale la pena considerar cuando se tienen en cuenta todos los costos que se pueden evitar o reducir. Por ejemplo, el tiempo adicional invertido en el desarrollo permitirá revisiones de código más rápidas, ya que el revisor estará más familiarizado con las partes que se están modificando. Testing los cambios también es más rápido, ya que los desarrolladores tienen más conocimiento sobre la intención detrás del código y pueden probar fácilmente los diferentes escenarios afectados por las modificaciones. También es menos probable que se produzcan errores, ya que el trabajo ha sido examinado minuciosamente y se han aplicado dos mentalidades diferentes. Por último, esta práctica aumenta la familiaridad del equipo con un alcance más amplio de la base de código y el producto. En consecuencia, se reducen los tiempos de mantenimiento y desarrollo futuro. Cuando se suman todos esos costos y se comparan con la inversión inicial que se hizo en la parte de desarrollo, pueden equilibrar el costo inicial o reembolsarlo por completo e incluso hacer que se gane tiempo. Esto hace que la programación en pareja sea una inversión que, al igual que invertir en profundidad técnica, beneficiará al equipo con el tiempo. Espero que esta parte sobre por qué deberías considerar probar la programación en pareja haya sido lo suficientemente convincente.

4. Implementación y Mejora de la Programación en Pareja

Short description:

La programación en pareja es una excelente manera de abordar tareas complejas, compartir conocimientos, integrar nuevos miembros del equipo y fomentar la colaboración. Para implementarla, encuentra la combinación adecuada, prepara las herramientas necesarias, establece metas y expectativas, planifica la sesión, rota los roles y establece protocolos claros de comunicación.

Ahora veamos cómo puedes implementar o mejorar la programación en pareja en tu organización. En primer lugar, debemos analizar cuáles son las buenas oportunidades para aplicar la programación en pareja y cuándo utilizarla. La programación en pareja puede ser una excelente manera de abordar tareas complejas o problemas que requieren mucho poder cerebral. Al trabajar en parejas, los miembros del equipo pueden intercambiar ideas, buscar soluciones y detectar errores antes de que se conviertan en problemas más grandes. Al emparejar a los miembros del equipo con diferentes áreas de experiencia, pueden aprender y desarrollar nuevas habilidades, convirtiéndose en desarrolladores más completos.

La programación en pareja puede ser una forma efectiva de compartir conocimientos y habilidades entre los miembros del equipo, y no solo para nuevos desarrolladores o programadores junior. De hecho, los desarrolladores experimentados también pueden beneficiarse de la programación en pareja, ya que puede proporcionar una nueva perspectiva sobre un problema y llevar a nuevas ideas y soluciones. La programación en pareja también es una excelente manera de integrar a nuevos miembros del equipo. Al emparejar a los nuevos miembros del equipo con miembros más experimentados, los nuevos miembros pueden aprender la base de código, las prácticas de desarrollo del lugar de trabajo y los flujos de trabajo mientras trabajan codo a codo con uno de sus nuevos compañeros de equipo. Por último, la programación en pareja simplemente se puede utilizar como una muy buena excusa para pasar más tiempo con los compañeros de trabajo. Pasar más tiempo juntos e invertir ese tiempo en un objetivo común ayuda a los equipos a construir camaradería, mejorar la comunicación y fomentar una cultura de colaboración y aprendizaje.

Aquí hay un par de pasos para iniciar tus primeras sesiones de programación en pareja. En primer lugar, debes encontrar la combinación adecuada para el tema en el que trabajarás. Hazlo en función de por qué decidiste hacer una sesión de programación en pareja, para lo cual mostramos ideas en la diapositiva anterior. Por ejemplo, si tu oportunidad para la programación en pareja es integrar a un nuevo miembro del equipo, es posible que desees elegir un compañero con un buen entendimiento del producto y un conocimiento más amplio de la base de código. Si decidiste trabajar en una tarea compleja, por otro lado, probablemente debas elegir personas con habilidades especializadas y un entendimiento profundo de la parte del producto en la que trabajarás. A continuación, prepara las herramientas necesarias para hacer el trabajo. Los equipos remotos pueden beneficiarse de una herramienta de conferencia como Zoom y de un IDE advanced con funciones de colaboración como Visual Studio Code y su función Live Share. Para equipos en el lugar de trabajo, necesitarás un espacio tranquilo, como una sala de conferencias, y debes aprovechar herramientas simples, como un pizarrón. Una vez que tengas todo esto, establece claramente las metas y expectativas. ¿Deberías tener una solicitud de extracción válida al final de la sesión? ¿O estás en una fase anterior de desarrollo en la que solo quieres sentar las bases y planificar? ¿Qué esperan ambas partes aprender de la sesión? Probablemente debas encontrar métricas clave de éxito para asegurarte de que no perderás tiempo ni te desviarás durante la sesión. Por último, planifica la sesión con anticipación y limítala a una cantidad razonable de tiempo. Una sesión generalmente debe durar de 30 a 60 minutos. Puedes usar la técnica Pomodoro para ayudarte a establecer la cantidad adecuada de tiempo y recordarte tomar descansos regulares. Para aprovechar al máximo la programación en pareja durante la sesión, es importante seguir algunas best practices. En primer lugar, rota los roles regularmente. Para asegurarte de que ambos miembros del equipo tengan la oportunidad de contribuir y aprender, es importante rotar los roles de manera frecuente. Esto permite que cada miembro del equipo experimente diferentes aspectos del proceso, como escribir el código o dar instrucciones, y también ayuda a asegurarse de que ambos miembros del equipo se mantengan comprometidos y eviten quedarse atascados. Establece protocolos claros de comunicación. La comunicación clara y efectiva es esencial para el éxito de la programación en pareja.

5. Programación en Pareja Efectiva

Short description:

Los equipos deben establecer protocolos claros para la comunicación y un lenguaje común. Evitar distracciones y tomar descansos regulares para prevenir el agotamiento. Mantener una actitud positiva y abierta para fomentar la colaboración.

Los equipos deben establecer protocolos claros para la comunicación, incluyendo cosas como cómo pedir ayuda, cómo ofrecer retroalimentación y cómo manejar desacuerdos. También es importante establecer un lenguaje y terminología comunes para asegurarse de que ambos miembros del equipo se entiendan.

Evitar distracciones. Apaga las notificaciones y aplicaciones que puedan requerir tu atención durante la sesión. Asegúrate de que no se espera que respondas rápidamente a nada, como un problema en producción. El rol del navegador aquí también es asegurarse de que no se distraigan con algo en el código o el producto, y se mantengan en el camino. Si descubres algo que no está relacionado con el objetivo durante la sesión, toma nota y vuelve a ello después de la sesión.

Tomar descansos regulares. La programación en pareja puede ser intensa, y es importante tomar descansos regulares para evitar el agotamiento. Los equipos deben tomar breves descansos cada hora aproximadamente para descansar, estirarse y recargar energías. Esto puede ayudar a mejorar el enfoque y la productividad y prevenir la fatiga o el aburrimiento.

Por último, mantener una actitud positiva y abierta. La programación en pareja requiere una actitud positiva y abierta. Los equipos deben animarse mutuamente a mantener una actitud positiva y evitar críticas negativas o culpas. En cambio, enfocarse en encontrar soluciones juntos y aprender de los errores. Una actitud positiva y de apoyo puede ayudar a construir confianza y fomentar la colaboración, lo que lleva a mejores resultados. Y, por supuesto, esto no se limita solo a la sesión de programación en pareja.

6. Desafíos e Implementación de la Programación en Pareja

Short description:

Abordemos algunos desafíos comunes de la programación en pareja: encontrar compañeros compatibles, resistencia al cambio, habilidad y experiencia, y estructura de ingeniería. Para abordar estos desafíos, brinde capacitación y apoyo, involucre a los miembros del equipo en la toma de decisiones, seleccione cuidadosamente los compañeros y planifique las sesiones de programación en pareja con cuidado. La programación en pareja es solo una herramienta, pero si se elige, introdúzcala gradualmente, busque comentarios y reevalúe regularmente. Puede ayudar a lograr objetivos como la colaboración en equipo, el crecimiento del conocimiento, la estabilidad del código y el mantenimiento.

Abordemos ahora algunos desafíos comunes de la programación en pareja y cómo se pueden abordar. Encontrar compañeros compatibles. Uno de los mayores desafíos de la programación en pareja es encontrar personas que trabajen bien juntas. Los miembros del equipo pueden tener diferentes estilos de trabajo, preferencias o personalidades que pueden dificultar encontrar un compañero compatible. Para abordar este desafío, es importante brindar capacitación y apoyo a los equipos para mejorar sus habilidades de programación en pareja y ayudarlos a aprender a trabajar de manera efectiva con otros. También puede ser útil alentar a los nuevos miembros del equipo a probar trabajar con diferentes compañeros para encontrar una buena combinación.

Resistencia al cambio Algunos desarrolladores pueden resistirse a la programación en pareja y preferir trabajar solos. Esto puede ser un desafío significativo, especialmente en equipos donde los miembros no están acostumbrados a colaborar estrechamente con otros. Para abordar este desafío, es importante involucrar a los miembros del equipo en el proceso de toma de decisiones y brindar capacitación y apoyo para ayudarlos a sentirse más cómodos con la técnica. Puede ser útil comenzar con sesiones cortas y enfocadas, y aumentar gradualmente la cantidad de tiempo dedicado a la programación en pareja, una vez que se valide la práctica y se note que es bien recibida por el equipo.

La habilidad y experiencia también son un desafío. Este desafío se trata de asegurarse de que ambos miembros del equipo tengan las habilidades y experiencia necesarias para trabajar de manera efectiva con el otro. Esto se puede abordar seleccionando cuidadosamente compañeros con habilidades complementarias, como hemos mostrado anteriormente. Y brindando capacitación y apoyo para ayudar a los miembros del equipo a desarrollar las habilidades necesarias. Por último, la estructura de ingeniería. Es común en un departamento de ingeniería o producto dividir los equipos en grupos de trabajo dedicados a una inversión de producto específica. Y esta es una práctica muy válida para mejorar la productividad y ayudar a las personas a enfocarse en algunas tareas. Pero desde una experiencia personal, esto también crea compartimentos en los que es posible que no haya muchas oportunidades de programación en pareja. A menudo, solo tienes uno o dos ingenieros en tu especialidad trabajando en el mismo tema. Esto significa que deberás buscar personas que trabajen en otros temas e iniciativas para programar en pareja. Para hacerlo sin poner en riesgo su proyecto, debes planificar y limitar el tiempo cuidadosamente. También debes evitar hacerlo durante momentos difíciles, como situaciones en las que tienen una fecha límite muy ajustada. También puedes ofrecer hacer una sesión de programación en pareja a iniciativa de ellos después. Esto equilibrará las cosas y, al final, ambos desarrolladores estarán más conscientes de ambos temas.

Antes de dejarlos con los próximos oradores, me gustaría compartir algunos pensamientos finales. La programación en pareja, al final, es solo una herramienta. Puedes elegir usarla o no. Si eliges no hacerlo, deberás usar otras herramientas para lograr los mismos objetivos que estableces para tu equipo y organización, como construir una colaboración sólida en el equipo, aumentar el conocimiento y garantizar la estabilidad y el mantenimiento del código. Sin embargo, si decides usarla, debes presentarla como lo harías con cualquier otra herramienta. Primero deberás comunicarte claramente con tu equipo sobre lo que puede aportar y buscar su aprobación. Luego deberás implementarla gradualmente de una manera que funcione para ellos y para tu organización. Deberás buscar regularmente comentarios y reevaluar en el camino. Y si tienes éxito, entonces tu equipo tendrá una herramienta más en su arsenal que puede usar para escribir un mejor código y trabajar mejor juntos. Esta charla trató de ayudarte a tomar esa decisión con la creencia de que hay muchos escenarios en los que deberías intentarlo. Sin embargo, también te animo a que investigues por tu cuenta y leas algunos documentos disponibles en línea para prepararte para la tarea que tienes por delante. Espero que hayas disfrutado esta charla. Gracias por escucharla. Fue el poder de las parejas y ¡te deseo lo mejor para las próximas sesiones!

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

React Summit 2022React Summit 2022
27 min
Impact: Growing as an Engineer
Top Content
Becoming a web engineer is not easy, but there are tons of resources out there to help you on your journey. But where do you go from there? What do you do to keep growing, and to keep expanding the value you bring to your company? In this talk we’ll look at the different kinds of impact you can have as a web engineer. We’ll walk through what it means to take on bigger, more complex projects, and how to scale yourself, and grow the community around you. By driving our own development we can all grow our impact, and in this talk, we’ll discuss how to go about this.
TechLead Conference 2023TechLead Conference 2023
25 min
On Becoming a Tech Lead
Tech lead sounds like a lot of work. And not the fun coding kind either. Why would you ever want that? What does it feel like when you get it?In this talk Swizec explains why he took the step towards technical leadership, how his priorities changed, and why it means he’s doing more engineering than ever. A whole new world where writing code is the easy part.
TechLead Conference 2023TechLead Conference 2023
35 min
A Framework for Managing Technical Debt
Let’s face it: technical debt is inevitable and rewriting your code every 6 months is not an option. Refactoring is a complex topic that doesn't have a one-size-fits-all solution. Frontend applications are particularly sensitive because of frequent requirements and user flows changes. New abstractions, updated patterns and cleaning up those old functions - it all sounds great on paper, but it often fails in practice: todos accumulate, tickets end up rotting in the backlog and legacy code crops up in every corner of your codebase. So a process of continuous refactoring is the only weapon you have against tech debt.In the past three years, I’ve been exploring different strategies and processes for refactoring code. In this talk I will describe the key components of a framework for tackling refactoring and I will share some of the learnings accumulated along the way. Hopefully, this will help you in your quest of improving the code quality of your codebases.

React Day Berlin 2022React Day Berlin 2022
29 min
Fighting Technical Debt With Continuous Refactoring
Top Content
Let’s face it: technical debt is inevitable and rewriting your code every 6 months is not an option. Refactoring is a complex topic that doesn't have a one-size-fits-all solution. Frontend applications are particularly sensitive because of frequent requirements and user flows changes. New abstractions, updated patterns and cleaning up those old functions - it all sounds great on paper, but it often fails in practice: todos accumulate, tickets end up rotting in the backlog and legacy code crops up in every corner of your codebase. So a process of continuous refactoring is the only weapon you have against tech debt. In the past three years, I’ve been exploring different strategies and processes for refactoring code. In this talk I will describe the key components of a framework for tackling refactoring and I will share some of the learnings accumulated along the way. Hopefully, this will help you in your quest of improving the code quality of your codebases.
React Summit 2023React Summit 2023
26 min
Principles for Scaling Frontend Application Development
After spending over a decade at Google, and now as the CTO of Vercel, Malte Ubl is no stranger to being responsible for a team’s software infrastructure. However, being in charge of defining how people write software, and in turn, building the infrastructure that they’re using to write said software, presents significant challenges. This presentation by Malte Ubl will uncover the guiding principles to leading a large software infrastructure.
TechLead Conference 2023TechLead Conference 2023
36 min
Effective Communication for Engineers
Your communication skills affect your career prospects, the value you bring to your company, and the likelihood of your promotion. This session helps you communicate better in a variety of professional situations, including meetings, email messages, pitches, and presentations.

Workshops on related topic

Node Congress 2022Node Congress 2022
39 min
How To Design A Sustainable Freelance/Contracting Career
WorkshopFree
Ready to kickstart your freelance career or just getting started on your freelance journey? You’re in the right spot. Learn the tricks of the trade from the industry’s most experienced freelancers.
The independent talent movement is the future of work. If you’re considering leaving full-time employment for a career as a freelancer, now is the time to find your successful space in the independent talent workforce. More people are working freelance today than ever before, with the freelance marketplace now contributing $1.2 trillion to the US economy. Some of the most in-demand roles for freelancers right now are senior developers with professional experience in React, Python, Blockchain, QA, and Node.js.
This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing/contracting career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
React Advanced Conference 2021React Advanced Conference 2021
145 min
Designing A Sustainable Freelance Career
WorkshopFree
Would you like to pursue your passions and have more control over your career? Would you like schedule and location flexibility and project variety? Would you like the stability of working full-time and getting paid consistently? Thousands of companies have embraced remote work and realize that they have access to a global talent pool. This is advantageous for anyone who has considered or is currently considering freelance work.>> Submit your interest on becoming a freelance engineer with Toptal and get a call with Talent Acquisition specialist <<

Freelancing is no longer an unstable career choice.

This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
Table of contents

Module 1: Dispelling common myths about freelancing
Module 2: What does freelancing look like in 2021 and beyond
Module 3: Freelancing choices and what to look for (and what to avoid)
Module 4: Benefits of freelancing from a freelancer + case study
BREAK
Module 6: How to get started freelancing (experience, resume, preparation)
Module 7: Common paths to full-time freelancing
Module 8: Essentials: setting your rate and getting work
Module 9: Next steps: networking with peers, upskilling, changing the world
Module 10: Freelancer AMA