El camino freelance, parte 6: libros recomendados

El camino freelance, parte 6: libros recomendados

Decidirse a comenzar el camino freelance no es fácil. A mi me llevó un buen rato, un par de años de hecho. La primera vez que lo consideré seriamente fue a fines de 2008 pero no di el paso hasta el 2012.

Allá por 2008 empecé a investigar hablando con algunos freelancers que conocía y leyendo algunos blogs, hasta que finalmente me compré un libro: The Principles of Successful Freelancing de Miles Burke. El libro valió la inversión, me ayudó a ver varias cuestiones que no estaban en mi radar en aquel momento.

Hoy, habiendo ya recorrido un par de años en el camino independiente vuelvo a recomendar el libro de Burke pero también he descubierto algunos otros que recomiendo con el mismo énfasis.

Soft Skills de John Sonmez y The Software Craftsman de Sandro Mancuso son dos libros excelentes y que recomiendo para todo programador profesional más allá de que trabaje de forma independiente o en relación de dependencia. Ser profesional es un valor que en el caso de trabajadores independientes es aún más valioso. El libro de Mancuso está enfocado en el desarrollo profesional. El libro de Sonmez también habla de desarrollo profesional pero es más profundo y llega a cubrir cuestiones concretas como técnicas de productividad, estrategias de trabajo remoto, marketing personal, la transición freelancer y cuestiones económico/financieras.

Los tres libros que mencioné  hasta el momento son libros para informáticos, el cuarto libro que quiero recomendar es mucho más genérico y posiblemente también más famoso: Los 7 hábitos de la gente altamente efectiva de Stephen Covey. Este libro nada dice sobre programadores ni trabajadores independientes, sino que básicamente habla de organización personal, algo fundamental para todo trabajador independiente.

 

El camino freelance, parte 5: dos prácticas de gestión

El camino freelance, parte 5: dos prácticas de gestión

Cuando uno es contratado para un trabajo es de esperar que uno realice su trabajo de forma correcta, o sea: si me contratan para programar entonces debería programar bien (además de asegurarme de estar programando lo que el cliente espera), pero más allá de eso creo que hay otra serie de cuestiones importantes particularmente cuando uno trabaja en un esquema time & materials. Entre todas esas cuestiones hay dos que aplico siempre porque me ayudan mucho en la ejecución de mis proyectos.

Visibilidad continua

Dado que el cliente estará pagando por el tiempo que nosotros dedicaremos al trabajo me parece una obligación dar visibilidad de las cosas que hacemos. Y cuando hablo de visibilidad no me refiero a un mail semanal con un resumen de lo que hice en las pasadas 40 horas. En algunos contextos eso puede estar bien, pero yo prefiero trabajar con una visibilidad más granular para así permitir a mi cliente accionar y corregir el plan de acción en caso de ser necesario. En ese sentido yo suelo reportar a nivel diario. Básicamente informo todos los días: que hice, en que estado está, y que voy a hacer a continuación.
Comparto aquí uno de mis mails de proyecto mostrando este tema de la visibilidad.

Hi guys,

Today I completed the OAuth integration (story#7533). Unless you have a different opinion I will move it live today 5 PM (EST).

Next Steps: I will continue with story#7536 that was reported today as urgent.

Regards,
NicoPaez

Acción por defecto

Si bien siempre es bueno tener el OK del cliente antes de avanzar con una tarea, no todos los clientes responden rápidamente lo cual puede ocasionar que uno quede bloqueado, cruzado de brazos por horas o incluso días.  Si me quedo cruzado de brazos si cobrar ese tiempo, pierdo plata, pero si lo cobro el que pierde plata es mi cliente, lo cual a largo plazo también también me perjudica a mi. Para evitar esto lo que suelo hacer es pedir validación y proponer una acción defecto en un determinado tiempo límite.

 Hola Ale,

Te cuento que ya tenemos todo el código y datos listos para correr las pruebas de stress (ticket#362) y estaríamos en condiciones de comenzar con su ejecución mañana mismo.

Tal como hablamos la semana pasada, para ejecutar estas pruebas necesitamos una cuenta en ABCDE. En teoría la cuenta iba a estar disponible el lunes, pero aún no lo está. Entonces si la cuenta no está para mañana lo que haremos de cara a evitar retrasos en el proyecto es correr las pruebas con mi propia cuenta y luego arreglamos entre nosotros el pago.

Saludos,
NicoPaez

Me parece importante destacar que estas prácticas pueden resultar útiles en muchísimos contextos distintos, pero creo que cobran mayor relevancia en el caso particular de contratos time&materials.

El camino freelance, parte 4: contratos

Muchas veces cuando trabajamos como ingenieros/programadores en un esquema de relación de dependencia no le prestamos mayor atención a las cuestiones contractuales. “Alguien” consigue los proyectos ya sea canalizando pedidos/necesidades de otras áreas (si desarrollamos software in-house) o bien vendiendo a algún cliente (si somos una software factory). Pero si vas a trabajar por tu cuenta deberías al menos tener algunos puntos presentes para encarar tus proyectos.

En términos generales y de forma muy simplificada existen dos tipos de contratos: los llave en mano y los Time&Materials.

En un contrato llave en mano, se define el proyecto completo antes de comenzar fijando el alcance del software a entregar y uno cobra un monto fijo también establecido al comienzo del proyecto por entregar la pieza de software en cuestión. Esta forma de contratación es muy común en construcciones civiles pero llevada al software muchas veces suele traer algunos inconvenientes por el simple hecho que suele resultar complejo determinar el alcance en forma temprana e incluso cuando se logra hacerlo siempre aparecen cambios y de la mano de ellos la necesidad de revisar el contrato.

En un contrato Time&Materials no hay un alcance fijo, sino que el alcance se ajustar sobre la marcha pero lo que se fija es un precio/hora. De esta forma el manejo de cambios es mucho más simple. El tema con esta forma de contratación es que uno como proveedor debe trabajar mucho más enfocado pues el cliente está pagando por cada momento que invertimos en el proyecto y por ello en cierto modo tenemos una responsabilidad mayor en asegurar que nuestras actividades agregan valor. No es que trabajando llave en mano uno no tenga responsabilidad, pero justamente al ser llave en mano, todo riesgo de retrasos lo estamos asumiendo nosotros (típicamente) sin impactar en los costos del cliente.

Estas dos modalidades representan dos extremos en los distintos esquemas de contratación dando lugar en el medio a infinitos posibles esquemas más cerca de uno u otro extremo.

Personalmente (freelance o no) me inclino a trabajar en un esquema Time&Materials. Más aún, desde que trabajo en forma independiente todos mis trabajos hasta el momento han sido con un esquema Time&Materials. Ahora bien, para que un proyecto en esta modalidad llegue a buen puerto creo que hay un par de puntos fundamentales que trataré en el próximo post.

Continuará…

El camino freelancer, parte 3: la mejor parte

Cuando empecé a recorrer este camino lo que más valoraba era la libertad horaria. Con el correr del tiempo comencé a valorar otros aspectos, todos ellos relacionados con la posibilidad de elegir: elegir mis proyectos, elegir mis clientes, elegir mis compañeros de trabajo, elegir la fecha y extensión de mis vacaciones.

Obviamente a la hora de elegir uno debe poner diversos factores en la balanza: expectativas económicas, motivación, finanzas, valor estratégico, diversión, seguridad, probabilidad de éxito, etc, etc. Lo bueno es que es uno mismo quien realiza la ponderación de cada uno de esos factores.

En este sentido si estas pensando en comenzar tu camino freelancer podrías ir pensando cuales sería tus criterios para elegir tus proyectos.

Continuará…

El camino freelancer, parte 2: las cosas no tan lindas

El trabajar de forma independiente trae de la mano ciertos beneficios pero también algunas cuestiones no tan “lindas”, algunas de ellas conocidas y otras no tanto, sobre todo cuando uno viene de trabajar en relación de dependencia.

Debes encargarte de conseguir tus propios trabajos, ya no hay una organización que lo haga por ti. Este punto es posiblemente la mayor barrera para muchos que tienen la intención de iniciar el camino independiente. Personalmente creo que se percibe esta cuestión como mucho más difícil de lo que realmente es.

Debes encargarte de las cobranzas y finanzas. Cuando trabajas en relación de dependencia en general tu sueldo llega a comienzo de cada mes sin que tengas que enviar recordatorios ni andar persiguiendo a nadie. Cuando trabajas como independiente, dependiendo de quienes sean tus clientes puede que:

  • La persona que te contrata no es necesariamente la que te paga. Si tu cliente es una empresa puede que quien te contrate sea alguien del área de sistemas pero indefectiblemente quien te pagará será un área de proveedores o compras, gente que seguramente no te conozca y para quien serás posiblemente un proveedor más.
  • Los pagos los recibas en diferido, hay empresas que tienen políticas de pago a 30 días, o sea que: trabajas durante todo marzo, facturas a fin de marzo/comienzo de abril, pero cobras recién en mayo.

Debes encargarte de las cuestiones impositivas/legales, generalmente al trabajar en relación de dependencia tu empleador se encarga de la mayoría de estas cuestiones (al menos en Argentina), pero al ser freelancer estas por tu cuenta. Deberás contactar un contador para que te ayude con estas cuestiones o al menos para que te asesore inicialmente y luego llevar el tema tu mismo.

Debes planificar tus vacaciones siendo consciente de que puedes tomarte todas las vacaciones que gustes pero sabiendo también que durante ese período no generarás ingresos.

Se que todas estas cosas pueden sonar un poco abrumadoras, pero no lo son tanto y para que no pinte el bajón, en el próximo post prometo buenas noticias.

Continuará…

El camino freelancer, parte 1: motivación

Recurrente recibo consultas, tanto de alumnos como de colegas, sobre cómo hacer para comenzar a trabajar de forma independiente (freelance) y es por ello que finalmente he decido poner por escrito lo que he contestado ya muchísimas veces. Como un único post podría llegar a resultar muy extenso, he decidido escribir un conjunto de posts, cada uno de ellos enfocado en una cuestión particular. Este primer post lo voy a dedicar las motivaciones para trabajar independiente.

Cada vez que recibo una consulta de este tipo lo primero que hago es consultar al interesado cuales son sus motivaciones para querer trabajar de forma independiente. Esto es central pues dependiendo de la motivaciones de cada uno puede que el trabajo independiente no sea lo más apropiado.

Muchos me dicen que quieren trabajar como independientes para tener así mayor flexibilidad horaria. Bien, es cierto, en teoría el trabajar de forma independiente permite tener mayor flexibilidad horaria, pero ojo porque mayor flexibilidad no significa trabajar menos. Conozco muchos trabajadores independientes que trabajan muchas más horas que el promedio de los trabajadores en relación de dependencia que hacen el mismo tipo de tareas.  Al mismo tiempo, creo que hoy en día los esquemas de trabajo se han flexibilizado muchísimo (al menos en el mundo de la informática)  con lo cual es perfectamente factible trabajar en relación de dependencia con un acuerdo de homeworking casi completo y/o con un límite inferior a 40 horas semanales. Dada esta realidad, si lo buscas es flexibilidad horaria una opción a considerar antes del trabajo independiente, es trabajar en relación de dependencia en una empresa con “políticas flexibles”.

Otro argumento común que suelo escuchar es “libertad”: “quiero tener la libertad de trabajar desde la playa o cualquier otro lugar”. Este argumento es en un punto análogo al anterior, no hace falta trabajar de forma independiente para tener este tipo de libertad, existen hoy en día muchas empresas dispuestas que sus empleados trabajen en forma remota desde cualquier lugar. En general esperan que uno esté disponible en determinada banda horaria, lo cual es completamente razonable y al mismo tiempo es algo que también suele ocurrir a los freelancers.

Algunos me dicen que les gustaría trabajar utilizando determinadas tecnologías. Aquí la cuestión del trabajo independiente puede tener más sentido. En general las empresas trabajan con un conjunto determinado de tecnologías y no es común que vayan cambiando muy frecuentemente ante las modas del mercado. Incluso en aquellas empresas donde se trabaja con múltiples tecnologías, no suele ser tan simple moverse entre proyectos de distintas tecnologías si uno no tiene el mismo nivel de experiencia/seniority en todas ellas. Aún así creo que hay que distinguir dos escenarios: una cosa es querer trabajar con una determinada tecnología y otra distinta es querer poder cambiar de tecnología “frecuentemente”. Lo primero bien puede resolver con una cambio de empresa, mientras que los segundo es más complejo, incluso trabajando de forma independiente.

Algunos otros argumentos comunes que suelo escuchar son:

  • Poder elegir en qué proyectos participar
  • Poder elegir cuando y cuanto vacacionar
  • Construir algo propio

Creo que todas son razones válidas y el trabajo independiente puede satisfacerlas, pero antes de mandarse hay que tener en cuenta algunos puntos “no tan felices” del trabajo independiente, pero ello será parte del siguiente post.

Continuará…

El placer de trabajar con quien uno gusta

Varios son los beneficios de trabajar de manera independiente, pero dudo que alguno sea más gratificante que el hecho de poder elegir con quien trabajar.

En este sentido ayer tuve  el gusto de compartir una mañana de trabajo con Pablito Tortorella (@pablitux). Pablo y yo estamos trabajando en un cliente, Pablo enfocado en cuestiones de adopción de Scrum y mejora organizacional y yo en cuestiones de integración continua y pruebas automatizadas. Si bien son temas distintos, tienen puntos de contacto y complementación. Ayer en particular estuvimos trabajando armando la infraestructura de prueba con un equipo que está físicamente distribuído.

Fue una mañana intensa, trabajamos todos juntos sentados frente a dos pantallas: una con el Hangout (teníamos miembros del equipo conectados en forma remota) y otra con el código del proyecto.

Logramos el objetivo que nos habíamos propuesto (tener una prueba corriendo sobre la nueva arquitectura), aprendimos, la pasamos bien y acordamos repetirlo la semana próxima.

¡Gracias Pablitux!