Estimación del costo de modificar el código de otra persona [cerrado]

8

Soy relativamente nuevo en el desarrollo web y todavía no he tenido que proporcionar estimaciones para muchos proyectos grandes (mi último gran proyecto fue pagado por horas sin un plazo o presupuesto estricto).

Un cliente me pide que proporcione una estimación de costo y tiempo para proporcionar una miríada de cambios a otro código de desarrollador para un sitio web (backend php / mysql).

¿Alguien puede proporcionar algún consejo o enlaces sobre cómo analizar y estimar esto? El código es horrible (el sitio web se subcontrató originalmente a la India hace años y años) y es difícil saber si voy a golpear obstáculos repentinamente y eliminar mis estimaciones del agua.

nmford
fuente

Respuestas:

4

Creo que no deberías nombrar un precio desde el principio. Si alguien te habla sobre un proyecto, deberías hacer suficiente trabajo gratis para descubrir lo que el cliente quiere y cuánto podría costar. No más ni menos que eso.

Dales una propuesta, que puede ser extremadamente breve, pero dales algo que describa lo que quieren y lo que entregarás. Puede establecer un rango si lo desea, e incluso podría decir que se trata de una "estimación de buena fe", pero que la cantidad final se basará en el tiempo dedicado.

Desde mi experiencia como profesional independiente, hay 3 pasos principales para hacer esto:

  1. solicite un pago inicial del 50% para comenzar a trabajar

  2. solicitar el pago final antes de entregar los archivos

  3. pedir un bloque de horas para el trabajo continuo o trabajo que probablemente aparecerá con el tiempo

¡Buena suerte!

aplastar
fuente
3
4. Apégate a tus armas cuando el cliente intente retroceder. 5. Prepárate para alejarte.
tzerb
ask for 50% downpayment to begin work... hm, ¿no es eso un poco alto? Prefiero decir 20%
šljaker
Creo que el 50% del pago final sería la mejor cantidad para pedirle al cliente. De esta manera, no se sentirá tentado a pedirle a otro programador que haga su trabajo (la mitad del dinero es bastante desperdiciado, ¿no? Mientras que un pequeño porcentaje es más fácil de renunciar) y se quedará estancado. Contigo hasta el final.
appoll
1

Solicite una tarifa por hora. No permita que se acumulen muchas horas antes de facturar.

ddyer
fuente
Si. "No dejes que se acumulen muchas horas ..."
Dinámico
1

¡Vaya ágil! No estimes un montón, especialmente si no tienes mucha experiencia en tu haber.

  • Hable con su cliente y vea qué debe implementarse / entregarse.
  • Para cada funcionalidad / unidad de trabajo, cree una historia de usuario (parte no técnica, escriba la descripción adecuada) y divídala en una o más subtareas (parte técnica)
  • Estime cada historia de usuario

Recuerde, la estimación por su definición siempre es incorrecta, de lo contrario se llamaría un número ¡Es muy importante que su cliente también entienda esto!

Debes hacer una entrega incremental. Dígale al cliente que priorice las historias de los usuarios y seleccione las que se entregarán en la primera iteración. Cada iteración debe durar 2 semanas o menos, ¡pero no más de 3 semanas! Cuando termine una historia de usuario (todas sus subtareas están cerradas), notifique al cliente y pídale que la verifique mientras trabaja en la próxima historia de usuario.

No tiene que cobrar por adelantado, puede hacerlo después de cada iteración.

¡Feliz codificación!

šljaker
fuente
1

Dado que usted es nuevo en la tecnología relevante y no está familiarizado con la base de código existente de baja calidad en la que deberá trabajar, es probable que la estimación pueda variar en cierta medida en ambas direcciones. Pero informe al cliente sobre la última razón :-P

Primero, enumere la miríada de cambios / características que su cliente ha solicitado. Para cada requisito, haga una pequeña revisión del código e investigue sobre cómo implementarlo y probarlo. Debe invertir este tiempo sin retorno antes de dar una estimación.

Segundo, haga 3 columnas para la estimación: el mejor caso (25% de probabilidad), el caso promedio (50%), el peor de los casos (75%). Por las 2 razones mencionadas en el primer párrafo, puede elegir la peor estimación de caso. Luego puede agregar incluso un 20% de tiempo de búfer. Por ejemplo, para un requisito particular, su mejor estimación de caso es de 2 días, el caso promedio es de 4 días y el peor de los casos es de 5 días. Agregando un 20% de tiempo de amortiguación, su estimación es de 6 días.

Tercero, no dé un punto fijo de estimación, sino un rango. Para el ejemplo anterior, puede decirle al cliente que la estimación es de 4 a 6 días. Su cliente puede insistir en la estimación de toda la lista de cambios. En ese caso, puede sumar los mínimos y máximos de los rangos para todos los requisitos. Luego proporcione una estimación final en rango, digamos de 5 a 6.5 meses. Esto tiene la siguiente ventaja: puede exceder la estimación para un requisito, pero puede finalizar otro requisito antes. En total, se cancelan entre sí y la estimación final se mantiene.

Cuarto, a medida que finaliza cada requisito de usuario y entrega de forma incremental, revise sus estimaciones anteriores para cada requisito. Este es un proceso continuo y debe ajustar / refinar la estimación a medida que avanza con el proyecto y su experiencia crece. Si ve que la diferencia entre su estimación refinada y su estimación inicial está fuera de control, siéntese con su cliente de inmediato y discuta el asunto.

Aprendí estas cosas del libro "Estimación de software: desmitificar el arte negro" de Steve McConnell. Le estoy agradecido

Programador en el paraíso
fuente
0

Puede cotizar un total basado en las horas estimadas de trabajo, aclarando sus suposiciones y el hecho de que se agregará cualquier tiempo adicional requerido. De esta manera, si caes (poco probable), saldrás adelante.

Asegúrese de que la calidad del código existente sea clara para el cliente. Si son razonables, deben adaptarse a la flexibilidad; de lo contrario, prepárese para alejarse.

Estaba en esta situación cuando comencé y desafortunadamente Stack Exchange no existía en ese momento. Cité un precio fijo y tuve que abandonar el acuerdo dos meses después. Perdí el dinero y quemé un puente porque no podía entregarlo.

Robin
fuente
0

Mira cómo lo hacen industrias similares. Un arquitecto no daría una estimación precisa de una extensión de garaje sin haber visto primero la propiedad.

Cobrarles una tarifa de investigación por su tiempo inicial. Explique que el código está en un estado en el que no puede darles una estimación precisa sin profundizar en la situación actual. Asegúrese de que obtengan algo al final, como una señal de fe, alguna documentación que podrían dar a otro desarrollador si así lo desean, para evitar que tengan que hacer el mismo trabajo.

Y luego, si es importante para usted obtener el trabajo de desarrollo real, dígales que si acuden a usted para el trabajo de desarrollo real, eliminará el 50% o incluso el 100% de ese cargo de la factura final. No se puede perder y a la gente le gusta obtener algo gratis.

pdr
fuente