Estimar el costo de modificar el código de otra persona [cerrado]

8

Soy relativamente nuevo en el desarrollo web y aún no he tenido que proporcionar estimaciones para muchos proyectos grandes (mi último proyecto grande se pagó por hora sin una fecha límite o un presupuesto estrictos).

Un cliente me está pidiendo que proporcione una estimación de costos y tiempo para proporcionar una gran cantidad de cambios en el código de otro desarrollador para un sitio web (php / mysql backend).

¿Puede alguien proporcionar algunos consejos o enlaces sobre cómo analizar y estimar esto? El código es horrible (el sitio web fue subcontratado originalmente a la India hace años y años) y es difícil saber si de repente voy a superar obstáculos y eliminar mis estimaciones del agua.

    
pregunta nmford 05.05.2012 - 22:37

6 respuestas

4

Creo que no deberías nombrar un precio desde el principio. Si alguien habla con usted acerca de un proyecto, debe hacer suficiente trabajo gratis para averiguar qué quiere el cliente y cuánto podría costar. Ni 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 poner 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 empleado.

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

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

  2. solicite el pago final antes de entregar los archivos

  3. solicite un bloque de horas para el trabajo en curso o el trabajo que probablemente aparecerá con el tiempo

¡Buena suerte!

    
respondido por el appoll 05.05.2012 - 22:47
1

Pregunte por una tarifa por hora. No deje que se acumulen muchas horas antes de facturar.

    
respondido por el ddyer 05.05.2012 - 23:34
1

¡Ágil! No calcule un montón, especialmente si no tiene mucha experiencia en su haber.

  • Hable con su cliente y vea qué debe implementar / entregar.
  • 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)
  • Estimar 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 tu cliente entienda esto también!

Debes hacer entrega incremental. Dígale al cliente que priorice las historias de usuario 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 está trabajando en la siguiente historia de usuario.

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

¡Feliz codificación!

    
respondido por el šljaker 06.05.2012 - 00:56
1

Dado que usted es nuevo en la tecnología relevante y no está familiarizado con el código base de baja calidad con el que se le pedirá que trabaje, es probable que la estimación varíe en cierta medida en ambas direcciones. Pero déjele saber al cliente sobre la última razón :-P

Primero, enumere la gran cantidad de cambios / características que su cliente ha solicitado. Para cada requisito, haga una pequeña revisión del código e investigue 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: mejor caso (25% de probabilidad), promedio de caso (50%), peor de casos (75%). Por las 2 razones mencionadas en el primer párrafo, puede elegir la estimación del peor de los casos. Luego puedes agregar incluso un 20% de tiempo de búfer. Por ejemplo, para un requisito en 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 búfer, su estimación es de 6 días.

Tercero, no dé un punto de estimación fijo, 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 para la lista completa de cambios. En ese caso, puede sumar los mínimos y máximos de rangos para todos los requisitos. Luego proporcione una estimación final en el rango, digamos de 5 a 6.5 meses. Esto tiene la siguiente ventaja: puede exceder la estimación para un requisito, pero puede terminar otro requisito antes. En total, se anulan entre sí y la estimación final se mantiene.

Cuarto, a medida que termine cada requisito de usuario y entregue 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 inmediatamente y discuta el asunto.

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

    
respondido por el Programmer In Paradise 06.05.2012 - 11:57
0

Puede citar un total basado en las horas estimadas de trabajo, aclarando sus supuestos y el hecho de que se agregará cualquier tiempo adicional requerido. De esta manera, si te hundes (es poco probable) sales adelante.

Asegúrese de que la calidad del código existente sea clara para el cliente. Si son razonables, deberían 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 rescindir el acuerdo dos meses después. Perdí el dinero y quemé un puente porque no podía entregar.

    
respondido por el Robin 06.05.2012 - 04:45
0

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

Cárgales una tarifa de investigación por su tiempo inicial. Explique que el código está en un estado en el que posiblemente no puede darles una estimación precisa sin mirar más profundamente la situación actual. Asegúrese de que obtengan algo al final, como marca de fe, algo de documentación que podrían entregar a otro desarrollador si lo desean, para evitar que tengan que hacer el mismo trabajo.

Y luego, si es importante para usted que obtenga 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 puedes perder y a la gente le gusta obtener algo gratis.

    
respondido por el pdr 06.05.2012 - 16:45

Lea otras preguntas en las etiquetas