9 votos

Reutilización del código de los autónomos para futuros proyectos

¿Cuáles son las limitaciones éticas de la reutilización de código existente para un proyecto futuro de un cliente diferente? Estoy pensando sobre todo en código genérico de bajo nivel, no en características, algoritmos o diseños propios. Supongamos también que no se ha firmado ningún acuerdo de confidencialidad.

Por ejemplo, si eres un especialista en escribir código para crear "Widgets dinámicos", y creas una gran Fábrica de Widgets para un cliente, ¿es aceptable usar parte del código subyacente del widget para otro cliente que quiere hacer un Editor de Widgets que no compita con él? Supongamos que el segundo cliente te contrató porque tienes una gran experiencia en Widgets.

Además, si escribir un Editor de Widgets desde cero generalmente toma 10 horas para armarlo, pero debido a que puedes reutilizar parte de tu código anterior probablemente sólo tomará 5 horas - ¿deberías cobrarles por la estimación original o pasar el ahorro de tiempo del código reutilizado que has escrito previamente. Esto es para una estimación/coste basado en un proyecto o tarea que se da por adelantado, no para hojas de tiempo por hora.

5voto

Ryan Ahearn Puntos 3829

Esto tomará prestado mi conocimiento de esta pregunta porque creo que muchos de los conocimientos serían los mismos.

En primer lugar, desde que era un programador web independiente, usando PHP y MySQL (no hago diseño), gran parte del código era bastante sencillo, incluso las cosas personalizadas. Cuando investigaba cómo hacer algo, si podía ver cómo ayudaría a futuros clientes, no cobraba la tarifa completa de la investigación, y simplemente añadía el coste a los siguientes clientes que quisieran esa misma característica. Todo el mundo sale ganando.

¿Es ético? Yo creo que sí. Hay que pagar mi tiempo, pero no es la razón por la que me pagan. Me están pagando por mi experiencia. Sólo hay unas pocas formas de sumar dos números en un ordenador, la más común es x += 1 . Si utilizo esto para el cliente A, ¿significa esto que para el cliente B, tengo que utilizar x = x + 1 ? No parece lógico.

La cuestión principal es que se ha hecho casi todo. Para los que no se han hecho, probablemente no eres el primero. Si se te ocurre un método que sume dos números, sea impecable y funcione perfectamente sin importar cómo lo implementes, es estúpido para no usarla. Todos los clientes con los que he tratado entienden que me pagan por mi experiencia, no por mi tiempo. Conozco el proceso, sé lo que funciona, porque como autónomo, Soy el experto en mi campo . Esta es la actitud con la que hay que seguir adelante.

Al cliente que paga por proyecto no le importa si tarda 5 o 10 horas, sólo quiere que funcione. Si usted cobra $500 for the Widget Factory component, and the first time it takes you 10 hours, you're billed out at $ 50/hora. Si puedes reutilizarlo para el siguiente cliente, sin dejar de cobrar $500 for the component, and you can re-use old code and have it working in 5 hours, that's $ ¡100 por hora que estás cobrando! Te pagan por tu experiencia, no por tu tiempo.

¿El cliente le hace firmar un acuerdo de confidencialidad? A continuación, compruebe lo que cubre, a ser posible con un abogado. Si sólo se trata de la idea general del proyecto en su conjunto entonces deberías estar seguro de guardar fragmentos que te ayuden más. Pregunte antes de firmar el acuerdo. Lo último que quieres es meterte en un lío con una empresa que podría llevarte a los tribunales durante meses.

2voto

Knox Puntos 1979

Estos son los posibles escenarios

1) Si se contrata para facturar por horas, no sería ético hacerlo de otra manera. El hecho de que reutilices o no el código (suponiendo que estés legalmente autorizado a hacerlo), no es un factor.

2) Si ofrece un presupuesto fijo, si es capaz de ofrecer un alto valor por menos esfuerzo de su parte, tiene todo el derecho a hacerlo.

Ambos enfoques son válidos (facturación por horas o precio fijo) y la reutilización de su código (siempre que esté legalmente permitido) es un "hecho" en el mundo actual.

De hecho, trato de encontrar un término medio feliz repercutiendo algunos ahorros de costes, y mejorando mi $$$ por hora, adoptando el siguiente enfoque con los clientes:

"He hecho un proyecto similar antes y puedo reutilizar gran parte del código, así que puedo ahorrarte algo de dinero en el desarrollo".

Personalmente, mi preferencia, como autónomo, son los proyectos de "precio fijo y alcance fijo" y me atengo a ello, así que si he hecho $50,000 worth of development work for one client, and it's going to take me 10% of the time, I'm not going to charge only $ 5.000 - Yo cobraría 12.500 dólares, y aquí está mi justificación:

1) El cliente sólo paga el 25% del coste de "desarrollo completo": se ahorra mucho;

2) Tus clientes están en el negocio para ganar dinero, tú también y no eres una "obra de caridad", mereces ganar por tu trabajo y por el "valor" que aportas.

(ASIDE: Por supuesto, hago excepciones especiales con las organizaciones sin ánimo de lucro y de caridad, y las ayudo cuando puedo).

Por otro lado, si consigo un proyecto pagado para desarrollar un código que sé que voy a poder reutilizar y revender, entonces podría cotizar mucho más bajo que el "coste por hora" real de desarrollo - es un movimiento comercial inteligente, porque ahora has añadido a tu biblioteca.

Entonces puedes ir a los clientes y decirles: "Acabo de desarrollar esto para el cliente XYZ y creo que puedo proporcionar estas 'actualizaciones' a su sitio por un coste reducido si quiere incorporar estos cambios".

Mientras seas honesto y transparente con tus clientes, no hay nada poco ético en estos enfoques, se entiende que así se hacen las cosas.

También se entiende que construir relaciones basadas en la confianza es fundamental para el éxito empresarial a largo plazo.

(ADVERTENCIA: Utilice el sentido común en este caso. Si utilizas este enfoque con un competidor directo del cliente, en mi opinión, estás siendo poco ético (y sórdido)), pero por ejemplo, si construyes una función de 'Localizador de tiendas' para un cliente que vende regalos para hombres, y tiene una pequeña cadena de 'Tiendas de Mascotas' - puedes utilizar con seguridad este enfoque).

Recuerda que, sobre todo cuando te metes a desarrollar "aplicaciones a medida", los precios son muy "arbitrarios".

Si cobra demasiado poco, es probable que sus clientes no respeten su nivel de experiencia.

Si cobra demasiado, sus clientes sentirán que se está aprovechando de ellos.

Si puede, intente hablar con el cliente de lo que cree que vale el proyecto, pregúntele. (te sorprenderá la frecuencia con la que te proponen una cifra mayor de la que tenías en mente) y busca un consenso.

Hay cierta "seguridad" en cobrar por hora -mucha gente lo prefiere-, pero estás limitando tu potencial para ganar dinero, y ser capaz de reutilizar el código y usar los repositorios de código, etc. debería permitirte ganar mucho más en general, a la vez que ofreces un mejor valor.

Por eso, preguntas como "¿Cuál era el presupuesto que tenía en mente para este proyecto?" son herramientas poderosas en su arsenal como autónomo que tiene que calcular los costes de los proyectos.

Si te dicen un precio con el que estás contento, sólo tienes que responder: "Sí, podemos hacerlo", rebuscar en tu biblioteca de códigos, ganar dinero y hacer feliz a tu cliente.

2voto

Dan Puntos 914

Mi punto de vista es diferente al de algunas de las respuestas actuales.

Si veo una solución general que puede ser mejorada y modificada para implementar una función personalizada para un cliente, crearé (o mejoraré) una solución general en mi tiempo libre y no facturaré por ella. Tal vez la ponga en un repositorio privado de Github. Por lo general, la gente no tiene ningún problema si incluyes el código desarrollado de forma privada (suponiendo que concedes todos los derechos de uso, etc.). Es conveniente que toques la base de este concepto desde el principio.

Entonces me encuentro en la posición de poseer otro fragmento/herramienta de biblioteca que mejora la productividad general y que puedo reutilizar en cualquier proyecto en el que resulte útil. Evidentemente, sólo dedicaría mi tiempo no remunerado a desarrollar este código de biblioteca privado si creyera que me va a aportar valor con el tiempo.

También es posible crear la solución generalizada digna de una biblioteca una vez terminado el proyecto, perfeccionando y reconstruyendo algo que no es específico del cliente. La vía elegida puede depender del alcance del esfuerzo realizado.

Aunque considero que el cliente paga por una solución, no veo que me pague por mejorar mi biblioteca a su costa. Mi biblioteca les proporciona una ventaja en términos de tiempo de desarrollo y en el uso de código previamente probado que puede integrarse rápidamente.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X