Hace poco construí una aplicación para un cliente. Tiene un montón de nuevas características que quiere incorporar a la aplicación entregada en las siguientes versiones. Me pidió un contrato de servicio para la aplicación. No estoy seguro de si me pide un contrato de servicios para las funciones existentes en la versión ya entregada de la aplicación o un contrato de servicios que incluya el esfuerzo para las nuevas funciones. ¿Cómo se gestionan normalmente los servicios después de la entrega de un producto de software? ¿Hago un contrato de servicios para el conjunto de características existentes y considero las nuevas características para la versión dos como una nueva solicitud de aplicación en conjunto? Soy bastante nuevo en esto, me pregunto cómo manejan los autónomos/empresas con experiencia las fases posteriores de los proyectos de software.
Respuestas
¿Demasiados anuncios?¡Bienvenido a Freelancing!
Mi sugerencia es, sobre todo cuando no se conoce la fecha de finalización ni el producto final, facturar por horas. Hay muchas preguntas en el sitio sobre cómo determinar lo que se debe cobrar, y puedes utilizar esas fórmulas.
Asegúrese de protegerse: pago por adelantado (a menos que confíe REALMENTE en esta empresa a nivel personal), trabajo entregado a tiempo. Si dejan de pagar, dejas de trabajar hasta que bajen la facturación a 0.
El canadiense Luke tiene una buena respuesta, pero también se puede hacer la facturación en un sistema de "metas".
A medida que vas terminando tareas o funciones, te pagan antes de hacer más. Esto puede hacerse por hora o por tarea/característica.
Como eres nuevo en esto, hazlo cada hora. No tienes suficiente experiencia para saber cuánto tiempo y esfuerzo te va a llevar implementar estas características, o incluso los errores cuando aparezcan, así que cualquier precio que les des va a ser muy alto o muy bajo. Esto te perjudica a ti y a ellos, ya que es probable que pierdan la confianza en ti debido a la percepción de que estás cobrando de más, además de que tú sales perdiendo cuando algo tarda demasiado en estar terminado, lo que te cuesta dinero y reputación por no cumplir un plazo.
Para las tareas de mayor envergadura, puede tener objetivos más pequeños para alcanzar los pagos. Hay una gran variedad de sistemas, pero uno que recuerdo vagamente es el de los objetivos del 10%, 50%, 90% y 100%, que son más bien directrices que reglas estrictas. Esto significa que cuando consigues el 10% del proyecto, te pagan el 10%, y cuando alcanzas el 50% de la finalización del proyecto te pagan el 50%, etc. Es algo así como la idea de "50% por adelantado y 50% a la entrega", pero con un grano más fino. Puedes seguir utilizando el enfoque 50/50, ya que es totalmente válido en el mercado actual.
Esto sólo funciona si hay una característica específica y un objetivo concreto que alcanzar. Si se trata de un objetivo abierto, como "arreglar todos los errores", entonces definitivamente necesitas un plan por horas o un plan de servicio mensual. Incluso un plan de servicio mensual puede tener límites máximos. Puedes acordar arreglar hasta X bugs por semana/mes, pero si superas X, entonces te pagan más. Esto evita que te den todos los fallos en un solo mes y cancelen el contrato esperando que lo arregles todo en ese mes. Definitivamente, puedes negociar X, incluso mes a mes. Es una decisión totalmente subjetiva por tu parte. No te dejes intimidar para hacerlo o X siempre será negociable, pero sólo por parte de ellos.
"Bueno, veo que necesitas que te arreglen X+1 fallos este mes, pero como el mes pasado sólo me hiciste arreglar X-5 fallos, esta vez te voy a dar un pase en la tarifa extra. Pero sólo porque conozco tu presupuesto, hemos trabajado Y años juntos, y sé que necesitas que se haga ahora".
Y definitivamente deja de trabajar si no te pagan. No es una extorsión ni un chantaje, ya que deberías cobrar por lo que estás haciendo para ellos. A no ser que estés pidiendo un rescate por todo el sistema, la culpa es de ellos, sobre todo si reaccionas a lo que ellos han hecho primero. Están rompiendo el contrato al no pagarte, así que ya no tienes que seguir el contrato tú mismo. Una vez que empiecen a cumplir el contrato de nuevo, entonces tendrás que hacerlo tú, así que no te confíes y empieces a exigir en ese momento. Sólo puedes exigirles que cumplan el contrato, del mismo modo que ellos sólo pueden exigirte a ti que lo cumplas. Si alguno de los dos quiere más o menos, eso es un contrato diferente.
Y lo más importante de cualquier contrato es preguntar qué quieren en el contrato antes de firmarlo. Por lo que leo en tu pregunta, no estás seguro de lo que quiere tu cliente. Mi consejo es: pregúnteles a ellos, no a nosotros. Si no sabes exactamente lo que piden, pídeles que te lo aclaren. Si estás de acuerdo con esas condiciones, escríbelo en un contrato. Si no lo estás, negocia.
Y utiliza un abogado para redactar el contrato. Es muy probable que tu cliente recurra a un abogado para revisar el contrato. Ninguno de los dos quiere verse acorralado o en una actividad ilegal, ni siquiera accidentalmente. Un abogado puede asegurarse de que no estás haciendo algo tonto o estúpido, y evitar cualquier cosa que sea inaplicable. He hablado con un par de abogados y me han dicho que la "jerga legal" que la mayoría de la gente intenta utilizar no significa nada en los tribunales, y que hay que utilizar palabras sencillas para dejar las cosas completamente claras para todos. Si tú y tu cliente no podéis entenderlo, lo más probable es que un tribunal tampoco lo entienda, si es que se llega a ese punto.