← Volver a la lista de posts

Guía para trabajar como freelance en desarrollo Web

Un freelancer es una persona que ofrece sus servicios profesionales a empresas de forma independiente. Es una alternativa a un empleo con salario fijo que ofrece varias ventajas como flexibilidad horaria, capacidad de cobrar más por tu trabajo y no tener un jefe. Pero también presenta retos como encontrar clientes y cobrarles.

Varios ex-alumnos de Make it Real trabajan como freelancers y he recopilado las experiencias de ellos. Considera este post como una guía de lo que debes tener en cuenta para ser un freelance exitoso. No vamos a hablar sobre cómo conseguir clientes (ese es un tema para otro post), voy a asumir que tienes un cliente potencial que te ha solicitado una aplicación y quieres saber cuánto cobrarle y qué debes tener en cuenta para que el resultado sea exitoso.

Cuanto cobrar

La pregunta más común de un freelancer que está empezando es ¿cuánto cobro?

Existen dos modelos: por hora y por proyecto. Cada uno tiene sus ventajas y desventajas, pero mi recomendación es que empieces cobrando por hora. Un precio razonable para alguien que está empezando es de $10 a $20 dólares, pero ese precio puede aumentar rápidamente después de algunos proyectos exitosos.

Puedes hacer descuentos por volúmenes de horas. Por ejemplo, entre 20 y 100 horas la tarifa es X y más de 100 horas la tarifa cambia a Y. Utiliza una herramienta como Toggl para llevar el registro de tus horas y que tu cliente pueda ver el avance de tu trabajo. Intenta ser lo más transparente posible.

Aunque cobrar por hora es lo más razonable y la mejor forma de no perder dinero, es muy probable que el cliente igual te pida un estimado en horas o en dinero para organizar su presupuesto. Y eso nos lleva al siguiente punto.

Cómo estimar

Estimar un proyecto es difícil tanto para principiantes como para veteranos. El problema es que se trabaja con información limitada del proyecto y es muy posible que el mismo cliente no sepa qué es lo que quiere. O peor, que crea saber, pero que en el camino descubra que quería algo diferente.

Mi recomendación es que le propongas al cliente empezar con un producto mínimo viable y avancen de forma iterativa utilizando alguna metodología ágil de desarrollo como Scrum. Eso obliga al cliente a pensar en la funcionalidad más importante y facilita la estimación.

Define con el cliente los perfiles de usuarios y la funcionalidad que puede realizar cada uno. Para cada funcionalidad define qué datos necesitas pedir o mostrar. También define si tienen alguna preferencia en donde alojar la aplicación, a quienes se tendría que capacitar, etc.

Una vez que tengas esta información busca el apoyo de alguien con más experiencia que te ayude a estimar las horas. Y por último multiplica ese número por dos. La razón de duplicar las horas estimadas es que lo más demorado de un proyecto son los detalles que uno no piensa cuando lo está estimando.

Con ese precio habla con el cliente y pregúntale cuál es su presupuesto. Si el presupuesto es menor deberán limitar el alcance del proyecto. Trata de no reducir tu precio por hora. También aclárale que es un estimado y depende de varios factores.

El contrato

Quizá lo más importante que debes aprender como desarrollador Web freelance es nunca trabajar sin un contrato, así sea una aplicación para alguien conocido. No tienes que involucrar abogados a menos de que el proyecto sea muy grande, pero si aclarar temas como:

  • ¿Quién se encarga del diseño gráfico y quién lo va a integrar a la aplicación? Muchos clientes asumen que los desarrolladores son diseñadores gráficos y es parte del costo. Esto es importante aclararlo.
  • ¿Qué pasa si el cliente decide cancelar el proyecto o simplemente no usarlo? Esto no es problema tuyo y debe ser claro que en caso de que suceda la empresa debe pagar igual.
  • ¿Cómo es el plan de pagos? Se debe cobrar el 50% del valor acordado (las horas estimadas) antes de empezar y el otro 50% cuando se cumplan las horas acordadas independientemente si se ha finalizado el proyecto o no.
  • ¿Qué pasa si se acaba el paquete de horas? Dejar claro que el cliente deberá adquirir un nuevo paquete independiente de si el proyecto se ha terminado o no.
  • ¿Qué pasa si el cliente no paga? Al menos se deberían cobrar algo de intereses.
  • ¿Qué pasa si el cliente pide cambios no especificados? Debe ser claro que esto generaría horas adicionales de trabajo.
  • ¿Quién va a recibir el proyecto? Debe existir un único punto de contacto con el cliente que debe ser el encargado de responder las preguntas y de hacer las revisiones en máximo dos días habiles (no quieres que te dejen esperando a que el cliente decida revisarlo 2 meses después). De lo contrario se entiende que el cliente acepta los cambios o la entrega del proyecto.
  • ¿Cuáles son los criterios de aceptación para el cierre del proyecto? Acá se deben especificar todos los requerimientos que se van a implementar.
  • ¿En dónde se va a publicar el proyecto? Algunos clientes tienen alguna preferencia de hosting, o tienen servidores propios.
  • ¿Qué pasa si ocurre un error en producción después de 1 año? Debe existir un periodo de garantía (mi recomendación es intentar que sea 3 meses, máximo 6) y solo aplica para errores, no para cambios o nueva funcionalidad.

Para el cliente también es importante saber:

  • ¿Qué pasa si no se cumple con la estimación? Dejar claro que se registrarán todas las horas de trabajo, pero que la estimación es solo eso, una estimación y la duración del proyecto puede variar ampliamente según los cambios solicitados, dificultades no contempladas, etc.
  • ¿Qué pasa si no cumples las horas establecidas y te estás demorando más de lo esperado? Para muchos clientes el tiempo es lo que más valoran. Si no cumples las horas en el tiempo establecido debería exitir una penalidad de tu lado. Esto lo puedes negociar y si el cliente no lo pide no tienes que incluirlo, aunque siempre intenta ser lo más responsable posible y trabajar las horas que te comprometes.

La comunicación

Lo más importante es mantener una buena comunicación con el cliente, mantenerlo informado de avances, problemas, retrasos, etc. Este tiempo es importante incluirlo en la estimación de horas de trabajo.

Intenta ser lo más puntual posible. Nada molesta más a los clientes que los desarrolladores cancelen las reuniones a último minuto.

Si te contacta el cliente intenta responder lo antes posible, así sea para decirle que en el momento estás ocupado y que lo contactarás en tanto tiempo.

Si surge algo imprevisto y no puedes completar las horas a las que te comprometiste, habla con el cliente, cuéntale lo que sucede y cuánto más te vas a demorar.

Sé profesional

Más que el dinero, lo que el cliente busca es que seas profesional. Si te vas a comprometer con un número de horas de desarrollo asegúrate que tienes el tiempo. Si tienes vacaciones planeadas asegúrate de dejar claro eso en el cronograma. Lo más importante es lograr iterar rápido, mostrarle avances al cliente y ser muy responsable con tu trabajo.

Otras preguntas que surgen son:

  • ¿Debo cobrar las horas en las que estoy aprendiendo? Sí. Tu precio por hora refleja que estás aprendiendo. Contabilízala y cóbrala.
  • ¿Qué pasa si el cliente no quiere firmar un contrato? Eso representa una bandera roja. Sé muy claro con él y dile que tu no trabajas sin un contrato firmado.
  • ¿Puedo poner mi firma en la aplicación? En general no. Si lo quieres hacer puedes darle un descuento al cliente (si es una aplicación muy visible te puede ayudar a conseguir más clientes y es un punto de negociación con tu cliente). Pero al menos deja claro que podrás publicar el proyecto en tu portafolio; si el cliente no lo desea le puedes cobrar un extra de 10% o algo por no hacerlo.

Por último, no olvides dejar todo por escrito ya sea a través de alguna herramienta o correo electrónico.

comments powered by Disqus