Como desarrollador web independiente, ¿debo facturar por mi curva de aprendizaje?

Estoy desarrollando un proyecto para un cliente en el que tengo un poco de experiencia en un marco del lado del cliente en particular, sin embargo, no tanto. Hay momentos en los que tengo que irme y pasar entre 10 minutos y varias horas investigando algo para entenderlo.

Le dije al cliente por adelantado que no era un experto en todas las tecnologías que usa el sitio. Sin embargo, siendo un programador 'normal', probablemente subestimé el tiempo que pensé que las cosas tardarían en salir bien, en otras palabras, cuando pensé que algo tardaría entre 5 y 10 minutos, en muchos casos he encontrado que ha tardado hasta una hora. (o incluso dos).

En una situación de tarifa por hora como trabajador independiente para solucionar una serie de problemas para este proyecto en particular, ¿debo mantener el medidor de facturación en funcionamiento mientras estoy aprendiendo sobre una función particular en un lenguaje de programación o debo pausar las cosas?

He editado el título para reflejar con mayor precisión su pregunta. Mientras lo leo, usted pregunta si debe facturar por su 'curva de aprendizaje' y no por 'investigación'. Cosas muy diferentes.
Esta pregunta es sobre una función de trabajo específica (Facturación) en lugar de ser sobre actividades generales del lugar de trabajo. Si bien me doy cuenta de que este es un problema común, está fuera del alcance de este SE.
@Stephen Sí, gracias por eso, puedo ver cómo eso lo hace más claro.

Respuestas (8)

Eso depende.

En su mayor parte, usted no factura por su educación. Su 'pago' por ello es el hecho de que ahora tiene más experiencia y un conjunto de habilidades más diversificado, eso es valioso en sí mismo.

Sin embargo, esto está condicionado a la popularidad del marco. Algunas personas terminan trabajando con tecnologías arcanas o muy especializadas, y la expectativa típica es que cuando comienzas a mirar ese tipo de código, tu tiempo de aceleración debe compensarse. El problema es que la línea entre las tecnologías de nicho y las principales suele ser borrosa. Esta es la razón por la cual, en mi humilde opinión, la mejor manera de hacerlo es ser muy explícito sobre lo que sabe y con lo que está familiarizado y luego facturar por cada hora de 'trabajo', donde el trabajo se define como cualquier tiempo dedicado a sacar el proyecto de donde está. ahora a donde el cliente quiere que sea. Esto es justo porque cuando se trata de desarrolladores experimentados y múltiples marcos, la probabilidad de encontrar a alguien con el conjunto de habilidades exacto es muy baja. La mayoría de los gerentes de contratación se conforman con 'chico/chica lo suficientemente cercano e inteligente'. Al final del día, cada proyecto requiere que un nuevo desarrollador se tome un tiempo para resolver las cosas. Esto es normal y, a veces, implica repasar los marcos, mientras que otras veces solo significa aprender los modelos y los flujos de trabajo.

Para terminar, me gustaría decir que esto es fundamentalmente una cuestión de poder de negociación. Cuando un cliente está buscando un desarrollador de .NET, la expectativa es que conozca bastante bien .NET y no venga a aprenderlo debido a la gran cantidad de desarrolladores de .NET que existen. Si el cliente está buscando a alguien con una lista de componentes de código abierto intercambiables improvisados, entonces, debido a la oferta y la demanda del mercado, la probabilidad de encontrar a alguien exactamente así es tan baja que se espera que los desarrolladores sean compensados. aprendiendo

esta es la respuesta
+1, agregaría que si el cliente y el desarrollador tienen un historial de éxito en otros proyectos, no es inusual que el cliente continúe usando al desarrollador, incluso cuando sus habilidades son demasiado para el nuevo proyecto. Muchas veces, la familiaridad con el cliente y el dominio del problema triunfa sobre las deficiencias en el conocimiento sobre la plataforma tecnológica particular que se utiliza. En tales circunstancias, está "bien" facturar el tiempo de aceleración.
Sí, no quería agregar mi propia respuesta ya que esta es muy buena, pero realmente se reduce a tu relación con el cliente. Por lo general, cobro por el tiempo de aceleración si se sabe que tendré que aprender cosas, pero lo hago a una tarifa muy reducida o, alternativamente, tomaré el proyecto a un precio fijo para el proyecto si es lo suficientemente pequeño. para justificar un precio fijo. Mi razón para facturar a una tarifa reducida si todavía quieren por hora es para asegurarme de que tengan una idea de cuánto tiempo realmente les está pasando, así como para ayudar a desalentar las prisas antes de aprender lo suficiente como para hacerlo bien.
Voté esta respuesta como "la mejor", pero me gustaría señalar que una vía que no se ha considerado es simplemente discutir las inquietudes relacionadas con el proyecto con el cliente. ¿Perjudicará/mejorará/no afectará su relación con su cliente si explica claramente su situación? Es un excelente lugar para abrir un diálogo sobre cómo preferirían que usted manejara este tipo de facturación. Tal vez el cliente comprenda que sus requisitos tecnológicos son oscuros y que aprenderlos es un obstáculo para completar el proyecto, y está dispuesto a (¿ayudar?) pagar la factura.
Definitivamente no facture por su educación, pero... también asegúrese de facturar a una tarifa por hora que pueda sostener su negocio (que debe incluir una asignación de tiempo y dinero gastado en educación continua)
Si para un proyecto tengo que educarme sobre una tecnología que es anticuada, sin mantenimiento, lenta, mal documentada, que no disfruto y que con seguridad no voy a usar en el futuro, entonces definitivamente quiero ser pagado por eso. Por otro lado, podría descontar ese tiempo de aprendizaje, si lo que tengo que aprender es algo que me da valor para futuros proyectos. – En cualquier caso, (personalmente) estoy totalmente en desacuerdo con Definitely don't bill for your education; Yo creo que eso no es ni saludable, ni gratificante, ni sostenible.

No creo que deba facturar directamente por este tipo de cosas. Sin embargo, su tarifa por hora debe ser lo suficientemente alta como para permitirle dedicar tiempo a educarse para todos los clientes y para otro tiempo de inactividad (cuando no tiene trabajo o está realizando tareas administrativas como crear facturas o buscar nuevos trabajos). Así que suponga que desea ganar (números completamente inventados y no un reflejo de lo que realmente debería cobrar) $ 20 por hora. Normalmente en una semana podrías tener trabajo durante 30 horas. USTED puede pasar 7 horas en educarse y otras 3 horas haciendo tareas necesarias como crear facturas, buscar más trabajo, etc. Ahora también le gustaría poder tomarse algunos días libres sin dañar su bolsillo y necesita cubrir su propio prestaciones como la jubilación.

Entonces, por cada hora que realmente trabaje, debe cobrar 20 por la tarea, 7 para compensar el tiempo de trabajo no facturable (redondeado al dólar más cercano) y 3 para darle algo de dinero por adelantado para tomar algunos días de vacaciones y 7 para pagar por beneficios Así que su tarifa por hora es de $37. Ahora está facturando solo por el trabajo real, pero la tarifa es lo suficientemente alta como para cubrir todo lo demás.

+1 por asegurarse de que está facturando adecuadamente. En algunas industrias, para los autónomos, el 50 % de su semana laboral puede terminar siendo no facturable.

Parece que desea facturar al cliente por su falta de preparación inicial para asumir el proyecto. Desde la perspectiva de un cliente, esperaría que la persona que contrato posea las habilidades necesarias para completar el proyecto antes de comenzarlo. Incluso si no lo hicieran, al menos esperaría que el tiempo por el que me cobran sea el tiempo requerido para completar las tareas directamente relacionadas con el proyecto, no el tiempo que necesitarías para adquirir el conocimiento en orden para completar las tareas.

Dicho esto, si mis necesidades fueran únicas y usted revelara completamente que necesitaría la adquisición de un conjunto adicional de habilidades para completar el proyecto, lo que requeriría una compensación adicional de mi parte antes de comenzar a trabajar en el proyecto o subproyecto, entonces sería sea ​​mi decisión si te compensé por tu tiempo de aprendizaje o elegí no hacerlo. La clave es la revelación.

Desde un punto de vista ético, te pintaste en un rincón con tu subestimación inicial. Puede absorberlo y atribuirlo a la experiencia (como en "Nunca volveré a hacer eso ") o puede agregar facturas posteriores para que este cliente cubra su educación. Independientemente de lo que elija hacer para este proyecto, le sugiero que se dé un poco más de margen al estimar proyectos futuros para cubrir este tipo de situación (y otras que quizás aún no haya experimentado).

Bueno, eso depende totalmente de si hubo una comunicación abierta en primer lugar con el cliente. Si no hay discusión sobre el presupuesto, la hoja de ruta, la introducción comercial o cualquier tipo de incorporación, entonces se debe facturar su tiempo de aprendizaje . Además, ¿no facturaría el tiempo que necesita (como ingeniero de software) para explorar el código base heredado/anterior, confiar en él, aprender las ventajas del proyecto específico, implícitamente información comercial y tecnológica del código ya presente? – Tu razonamiento tiene bastante sentido, pero exclusivamente para proyectos frescos/nuevos/greenfield.
Llamas a un electricista porque necesitas agregar algunos enchufes en tu casa. El electricista no le dice que nunca antes ha instalado un tomacorriente. Parte de su "educación" requiere que elimine algunos paneles de yeso para obtener ejemplos de cómo están cableados los otros enchufes en su hogar. Finalmente, el trabajo está hecho. El trabajo le tomó mucho más tiempo del que hubiera tomado un electricista experimentado, además él no hace paneles de yeso, por lo que tendrá que pagar esa factura de reparación además de los enchufes adicionales, porque, como dijo, su tiempo de aprendizaje se debe facturar. ¿Cómo te sentirías acerca de eso?
@NeilT, seguramente la diferencia es lo que la gente considera aprender el oficio en general y aprender la configuración particular de un cliente. Realizar trabajos eléctricos de forma comercial también está sujeto a regulaciones y requisitos de capacitación en muchas jurisdicciones. El software no está sujeto a dichos requisitos.
Es absolutamente necesario tener en cuenta el tiempo necesario para conocer los requisitos y el entorno del cliente, pero eso no es lo que publicó el OP. El OP quiere facturar por aprender sobre el marco en el que tiene experiencia, pero no lo suficiente para completar el proyecto. Si se trata de un marco patentado exclusivo del cliente, se entiende que facturará el tiempo de aprendizaje porque no hay otras opciones disponibles. Si voy a subvencionar su educación poniendo en riesgo mis plazos, al menos, me gustaría que me informaran con antelación.
Espero que un electricista sepa cómo cambiar un tomacorriente como habilidad básica : como escribir una clase; no es como aprender un marco o proveedor específico. Cada trabajo es variante, dependiendo del proyecto/infraestructura/heredado; un profesional no puede saber mágicamente todo lo que necesitas; especialmente en un campo como el software. En el caso de mi primer comentario, el cliente no proporcionó una presentación adecuada; como en el ejemplo de tu última frase, aquí es culpa del cliente no haber "informado con antelación" al profesional. No contratas a un abogado por un precio y solo después dices que necesitabas un especialista en asesinatos.

Aquí hay buenas respuestas, pero quiero agregar algo que no he visto mencionado. Un consultor/programador por contrato con el que conocí una vez me dijo que a veces cobraba la mitad de su tarifa habitual cuando aceptaba trabajos en los que necesitaba aprender una nueva tecnología. En estas circunstancias, fue sincero con el cliente sobre su (falta de) experiencia, por lo que sus expectativas se establecieron más bajas de lo normal. Además, solo hizo esto para las tecnologías que le interesaba aprender.

Sí, estar interesado en la tecnología que tienes que aprender para el proyecto es un factor importante para eventualmente descontar tu tiempo de trabajo. Si no hay un valor real para los trabajos futuros o ningún placer en lo que se aprende, entonces ese tiempo de educación debe pagarse .

Lo veo de la misma manera que veo contratar a un contratista para que trabaje en mi casa.

No me cobra por el uso del camión, ni por el uso de las herramientas. Pero me cobra lo suficiente por su trabajo para amortizar esos costos en un período de tiempo razonable.

Debe observar el costo total de su empleo y establecer su tarifa por hora en todos los trabajos de manera que pueda recuperar estos costos.

Suponga 2000 horas de trabajo al año y un ingreso deseado de $50,000. Eso es $25 por hora.

Ahora ponga 50 horas de aprendizaje, 200 de administración y hemos reducido las horas facturables a 1750, lo que significa que nuestra tarifa por hora ahora debe ser de $28.50 para obtener los mismos ingresos.

Miro la tasa de facturación. Como contratista, tomo una variedad de proyectos. Los proyectos varían en lo interesantes que son y la tasa de facturación.

Si decimos que 1,0 es la cantidad típica que facturo, me encontraré en proyectos que pagan entre 0,7 y 1,8.

Entonces, cómo me siento acerca de la facturación por incremento tiene mucho que ver con la tasa de facturación. En proyectos típicos (1.0) asumo un incremento de 2 semanas a 1 mes. Pero espero tener la mayoría de las habilidades técnicas necesarias.

En un proyecto en el que estoy facturando 1.3-1.8 me siento bajo el arma para ser perfecto, sobre el rendimiento e incluso bajo factura si no estoy orgulloso de mi trabajo.

En un proyecto que paga 0.7, estoy completamente relajado acerca de aprender en el trabajo. De hecho, probablemente tomé el concierto para aprender.

¿Alguien me paga para ir a la escuela?

Si soy un asistente de investigación o un doctorado y hago un trabajo innovador, entonces sí. De lo contrario, no, el costo de la educación es individual.

Ya sea que su educación sea en una universidad típica o mediante programas vocacionales, esto sigue siendo el mismo.

Si las necesidades tecnológicas del cliente ya no se enseñan y no pueden encontrar a nadie más para hacer el trabajo, entonces pagan por su tiempo para investigar la solución.

He visto varias empresas grandes que pagan los cursos de capacitación y educación de los empleados porque significa que obtienen empleados mejor educados. Los programas de MBA a menudo son pagados por empresas que esperan mejorar las habilidades de sus gerentes, por ejemplo.
El contexto de la pregunta era como desarrollador independiente. Una corporación con personal de W2 está desarrollando las habilidades de 'su familia': un empleado independiente es un servicio separable que la empresa entiende como limitado en el tiempo. La única zona gris está en torno a las leyes laborales que intentan proteger a las personas de las corporaciones que usan esto como una táctica para reducir los beneficios.
Ese no es el punto. Lo facturable o no depende exclusivamente de cuáles sean los acuerdos y expectativas iniciales. Si tiene que aprender algo que no va a reutilizar para proyectos futuros, entonces se le debe pagar por aprender eso; de lo contrario, está regalando su tiempo de trabajo a su cliente (que potencialmente es el que requiere que aprenda algo que no le devuelve valor profesional ).

Para agregar mi valor de 2 centavos: cuanto más genérico sea el problema, es menos probable que facture el tiempo. Si alguien dijera que quería que escribiera un sistema y me dijera que lo hiciera en Ruby on Rails, estaría "fuera de horario" mientras aprendía los fundamentos de ROR. Primero, esto se amortizará en todos los proyectos futuros, ya que tendré que saberlo para hacer más trabajo de ROR. En segundo lugar, prácticamente habría aceptado el proyecto porque tenía la intención de aprender ROR. El cliente tenía en mente un precio razonable, y mis cargos superarían significativamente ese precio si facturara mis horas educativas.

Un cliente me pidió algo en C# y me di cuenta de que la forma correcta de hacerlo implicaba codificar un 'comparador personalizado' para ordenar elementos en una colección. Esto no necesariamente se amortizaría en otros proyectos, y podría haberlo hecho de otra manera que podría haber hecho el trabajo pero hubiera sido más torpe. Le facturé al cliente por este tiempo, que en este caso fue de aproximadamente una hora. Si lo hubiera hecho por medios que ya entendía, podrían haber ahorrado media hora, al menos al principio. No puedo especular si esto les hubiera costado al menos tanto más tarde en algún problema de mantenimiento.