¿Qué harías? Básicamente retrasado en básicamente todo y ahora el cliente no hablará con usted [cerrado]

8

Asumí un proyecto bastante complicado como único desarrollador / gerente de proyecto y probador en algún momento del año pasado.

En noviembre del año pasado hubo una fecha límite para que se entreguen nuevas funcionalidades.

El sistema que asumí, que supuestamente estaba listo para ser utilizado, estaba lejos de estar listo.

Al sentarse con uno de los usuarios de nuestros clientes, se le ocurrieron nuevas características y requisitos que se requerían. A pesar de que se implementaron las características que solicitaron, argumentó que no se parecía en nada a lo que especificaban en los requisitos.

Así que tuve que volver al tablero de dibujo y hacer grandes cambios al sistema.

Promesa tras promesa, es culpa mía, no cumplí el plazo posterior debido a diferentes razones: planificación demasiado optimista en mi nombre, niños enfermos y otros problemas personales.

Y también ha habido fallas en el lado del cliente: solo pruebas cuando miro por encima del hombro y así sucesivamente.

Ayer acordamos que saldremos en vivo si sus usuarios aprueban la aplicación.

Por supuesto, aparecieron algunos problemas y hoy, cuando intenté llamar a nuestro cliente, colgó y no respondió a ninguno de mis correos electrónicos.

Esto realmente me está agotando, las horas y el tiempo que pasé en esto superan con creces las horas normales de trabajo y también han afectado a mi familia

Obviamente, hay cosas en esta situación que son específicas de este proyecto, pero no creo que el patrón general (múltiples problemas pequeños, que conducen al desglose del proyecto) sea poco común.

¿Qué harías en un escenario similar?

usuario17971
fuente
18
Si ya pagaran, no haría nada.
Pemdas
1
He hecho algunas ediciones para que sea un poco más genérico. Aquí hay detalles específicos que se aplican a este proyecto, pero creo que el patrón general (múltiples problemas pequeños que conducen a una falla general) es notablemente común y una buena pregunta.
Jon Hopkins

Respuestas:

8

EDITAR: Al volver a leer esto suena un poco duro, no se entiende de esa manera. Las cosas que describe son comunes y generalmente son causadas por factores entendibles (y luego exacerbados por su intento de ser útil). De todos modos, si parece duro, lo siento, no es señalar con el dedo, solo está tratando de decir "esto es lo que parece haber salido mal, y así es como lidiar con eso".

Lo que parece haber sucedido por lo que estás diciendo es:

  • Recibiste un código para trabajar con el que no estabas en el estado en el que te hicieron creer
  • Luego, los usuarios afirmaron que la aplicación no cumplía con los requisitos establecidos
  • Planes variados (en gran medida poco realistas) se hicieron y se perdieron
  • La prueba no se realizó correctamente
  • Ahora está tirando sus juguetes del cochecito de una manera pasiva agresiva.

Y, como resultado, el proyecto está fallando.

Mi primer punto sería que debes dejar de hacer lo que has estado haciendo hasta ahora (lo que parece continuar de manera optimista, suponiendo que si sigues adelante, todo saldrá bien). Eso no ha funcionado durante los últimos 3 meses, ¿por qué crees que va a funcionar ahora?

Esencialmente, cada uno de estos problemas debería haberse abordado a medida que surgían, tratando tanto el síntoma (por ejemplo, un plazo vencido) como la causa raíz (por ejemplo, el plan era demasiado optimista). Como esto no sucedió (no es raro), ahora está en una posición en la que hay varios problemas con los que lidiar.

En mi experiencia, cuando un proyecto se desvía significativamente de esta manera, lo mejor que puede hacer es involucrar a todos de nuevo y restablecer los requisitos y responsabilidades y volver a acordar un plan (realista) basado en estos, etc.

Su cliente necesita:

  • Confirme los requisitos de forma clara e inequívoca. Esto puede ser como una especificación, puede ser como una lista de desviaciones de lo que se implementa actualmente, sin embargo, debe ser completo y sin ambigüedades y comunicarse por escrito.

  • Acepte una fase de prueba que es suya para administrar al final de la cual informarán todos los defectos. Esto será contra lo que trabajarás. Probablemente también necesiten aceptar que habrá al menos una fase de prueba posterior para volver a probar los errores que saldrán de la primera.

Necesitas:

  • Evalúe de manera realista los requisitos, calcule con precisión el trabajo (incluida una contingencia razonable) y elabore un plan para cumplirlo. La clave es precisa. Si crees que va a caer mal y luego difícil, los planes juntos para hacer felices a las personas que no reflejan la realidad no entregan software.

  • Entregar contra este plan.

En términos de contactar al cliente nuevamente, le recomiendo que elabore un enfoque propuesto en este sentido, indicando por qué y enviándolo. En este momento quiere saber cómo van a mejorar las cosas y eso es lo que necesita entregarle si va a reconstruir la relación.

Jon Hopkins
fuente
1
No estoy de acuerdo con casi todo esto, el OP obviamente no puede estimar con precisión la entrega, ¿cómo está haciendo más del mismo proceso en cascada que les ha fallado tan miserablemente que va a hacer otra cosa que conducir a un ciclo repetido de falla en este caso? ¡Necesito ofrecer un nuevo enfoque que represente un cambio!
@fuzzy, acortar la línea de tiempo aquí y hacer iteraciones ajustadas, lo acerca mucho más a un estilo scrum. Esta respuesta realmente no parece decir que todo esto debe hacerse como una larga "cascada".
cobarde anónimo
En cualquier caso, vea la parte sobre "reunir a todos" y llegar a un "nuevo" acuerdo, cualesquiera que sean los métodos que decida utilizar. Estoy de acuerdo con Fuzzy en que hacer las cosas en iteraciones cortas y hacer que el cliente sea el "propietario" (y un responsable responsable de establecer prioridades) es probablemente la mejor manera de subir ... pero es posible que nunca salga sin despedir al cliente .
cobarde anónimo
3
@fuzzy: creo que el OP podría hacer un mejor trabajo al estimar si cambia una cosa: su deseo de compensar sus errores diciéndole al cliente lo que quiere escuchar en lugar de la verdad. En mi experiencia, el error más grande que cometen los programadores es al masajear lo que creen que es verdad para representar más de cerca lo que esperan que sea cierto, lo que estoy bastante seguro de que es en gran parte lo que sucedió aquí.
Jon Hopkins
No creo que el "plan" propuesto para hacer un plan sea realista dado que hasta ahora no se ha hecho eso. Creo que el "plan" debería ser cambiar el proceso y hacer el plan, vamos a entregarle las cosas más importantes esta semana, luego las siguientes cosas más importantes la próxima semana y haremos al cliente responsable de la entrega. Haciendo un monolítico, este es el plan "del plan" que se está preparando para el mismo fallo nuevamente. Usted dice "la clave es precisa". No creo que el OP pueda estar a la altura de esa clave, no lo han podido hacer en el pasado, eso es lo que los
6

Lo mejor que puede hacer es comunicarse abierta y francamente sobre sus propios fracasos y pedir amablemente que se le exima de sus obligaciones.

No le ayudará a usted ni al cliente señalar todas sus fallas, y se sentirá mejor sin la obligación que se cierne sobre usted.

Tome esta experiencia como una clase dolorosa en la escuela de golpes duros y prepárese mejor para el próximo cliente.

John Weldon
fuente
Realmente me gusta tu respuesta y hubiera hecho esto si no fuera por el hecho de que soy el único desarrollador en nuestra oficina.
user17971
2
Asumí que había hecho el compromiso original con el cliente. ¿Eres un empleado o trabajas por cuenta propia? Si es un empleado, su empresa puede tener obligaciones contractuales que deberá cumplir.
John Weldon
Soy un empleado. No hice el compromiso original con el cliente. Solo trato de dar seguimiento a las promesas ya hechas.
user17971
5

Me he quedado atrapado en situaciones como esta antes.

Promesa tras promesa, es culpa mía, no cumplí el plazo posterior debido a diferentes razones: planificación demasiado optimista en mi nombre, niños enfermos y otros problemas personales.

Su negocio necesita que esto se haga, y has roto promesa tras promesa. Debe dejar de hacer promesas demasiado optimistas. Cuando he estado en estas situaciones, me resulta extremadamente difícil recuperar credibilidad con el cliente . Cuando trabajas en un negocio, tu reputación es extremadamente importante. Si va a hacer estimaciones, debe acertarlas. Si sus hijos / familiares están enfermos en el futuro, ¿hay alguien que los ayude a cuidarlos como su cónyuge u otra familia? Busque avanzar hacia un futuro "sin excusas".

Por supuesto, aparecieron algunos problemas y hoy, cuando intenté llamar a nuestro cliente, colgó y no respondió a ninguno de mis correos electrónicos.

Quiere resultados, no excusas. Colgó porque no quería escuchar otra excusa más. ¿Qué puede hacer para volver a encarrilar el proyecto? ¿Qué puedes hacer para terminar este proyecto? ¿Cómo te involucraste en este proyecto en primer lugar?

Si fuera usted, pasaría tiempo hoy preparando la documentación para entregar este proyecto al siguiente tipo.

El sistema que asumí, que supuestamente estaba listo para ser utilizado, estaba lejos de estar listo.

He estado en situaciones como esta también. En el futuro, nunca gaste una energía significativa describiéndole esto al cliente porque suena como si fuera oro. ¿Por qué el tipo anterior lo dejó en el estado inacabado en el que se encuentra?

Y también ha habido fallas en el lado del cliente: solo pruebas cuando miro por encima del hombro y así sucesivamente.

Esta fue una de las partes más dolorosas del último proyecto en el que me quedé atrapado como el tuyo. El experto en la materia (que se jubilará este verano) no documenta nada, por lo que la mayoría de los errores son el resultado de mi memoria imperfecta de conversaciones con este tipo. Además, estaba acostumbrado a mantener todas las cosas en secreto para hacerse indispensable, y ese hábito ha sido extremadamente difícil de eliminar en sus últimos 2 años en el trabajo.

La otra falla crítica fue que no había un entorno de prueba. Durante el año pasado, todo el código que se probará se promovió directamente a la producción, donde los usuarios finales lo asignarían QAed.

La situación final fue que esta agencia federal no tenía ningún presupuesto para contratar a nadie, y estaba terminando este proyecto para salvar a mi amigo de ser demandado. Al final, me dejaron ir (¡sí!) Y usaron a alguien que trabajaba en un proyecto diferente (pero financiado). Pasó más de un año antes de que me involucrara, y aunque duplicaron su presupuesto para el proyecto, ese presupuesto se disparó cuando me involucré.

En el futuro, debe aprender a hacer mejores estimaciones. Algo así como el diario recomendado en PSP ( libro ). Este proyecto es un fracaso. Además, es posible que desee discutir cosas con sus amigos personales, ¿alguno de ellos tiene la habilidad y el ancho de banda para ayudarlo en futuros problemas como este? La próxima vez que te pases por alto, ¿repetirás esta falla o hay algo que puedas hacer para mitigar la falla la próxima vez?

Tangurena
fuente
Votado por dar tan bien al punto de vista comercial del cliente.
David Thornley
Esta es la primera vez que estoy en este tipo de problemas. Tengo otros proyectos que administro bien y he manejado diferentes proyectos bien en el pasado, nunca tuve ninguno de estos problemas. La diferencia clave para mí es que este proyecto que se está ejecutando ahora es un proyecto realmente grande con mucho código y muchas dependencias y probablemente el proyecto más complicado que he visto en mi vida.
user17971
3

Si ha escrito un software que será utilizado / implementado por el cliente, el cliente tiene la responsabilidad de pagar ese software y responder a las solicitudes. Parece que el cliente se ha lavado las manos del asunto, por lo que, a menos que esté preparado para ir a la corte por este problema, puede terminar tomando este en el asiento.

Debe tener documentación, contratos, requisitos por escrito, plazos, entregas y déficit. Si puede demostrar que hizo su diligencia debida para cumplir con el contrato y que el cliente no lo hizo, entonces tiene algo. Si no puedes, entonces es solo "Dijo que me pagaría por hacer esto, así que lo hice, y ahora no devolverá mis llamadas".

Mi recomendación para usted es ponerse en contacto con el secretario / asistente de este cliente / lo que pueda para programar una reunión cara a cara con él. No pierdas su tiempo, no andes por las ramas. Dígale que aprecia la oportunidad que le ha brindado para trabajar en este proyecto y que reconoce que ha habido algunas deficiencias en las expectativas. No nubles el problema con excusas o argumentos quid-pro-quos. A la larga, los enojarán a ambos y no les darán nada.

Pregúntele al cliente qué acción es necesaria para que esto funcione de la manera que le gustaría. Considere sus capacidades, estado, disponibilidad, todo. Se honesto contigo mismo. Sea lo que sea que se te ocurra en cuanto a costo / tiempo / etc., DOBLATE. Si eso no cae dentro del área de compromiso, entonces debe cortar el cebo y separarse.

Esta es probablemente una conclusión inevitable, ya que parece que el cliente está bastante tocado, pero puede convertirse en una experiencia de aprendizaje. Parece que necesita mucha preparación adicional en varios asuntos relacionados con contratos de esta naturaleza:

  1. Consíguelo por escrito. Hazlo firmar. Averigüe lo que el cliente realmente quiere, y consígalo por escrito.
  2. Si hay cambios en el camino, escríbalos como cambios en un documento, haga que el cliente lo lea y lo firme. Incluya cualquier cambio en los entregables, horarios, costos.
  3. Aprende a estimar mejor tu tiempo. Realmente necesita saber qué tan rápido puede desarrollar ciertos tipos de proyectos, cómo reconocer al cliente necesitado que agotará su tiempo, el cliente desatento que lo desperdiciará.
  4. Presupuesta tu tiempo y recursos mejor. Cuando esté estimando un proyecto, sea lo más honesto posible con el tiempo que le tomará hacer algo. Si no lo sabes, toma un botín. Cualquiera sea el resultado, duplíquelo (o al menos increméntelo a la mitad). Esto le dará margen de maniobra cuando las heces golpeen el modulador de aire oscilante.
  5. Consígase un área de trabajo tranquila y sin molestias con menos distracciones. Suena como si estuvieras trabajando en casa por mucho de esto. Debe tratar esta vez como si estuviera en una oficina corporativa. Cuando estás "en el trabajo", estás en el trabajo. Su esposa no está en la otra habitación, sus hijos no están sentados en el piso junto a usted gritando por atención. Si no puede satisfacer esta necesidad básica de trabajo, no está preparado para satisfacer las expectativas de nadie.
  6. Aprenda a elegir a sus clientes más sabiamente. Reúnase con ellos, observe su comportamiento. Bríndeles pequeñas cositas para responder y evaluar sus reacciones. Los clientes que son imposibles de complacer son los más fáciles de detectar. Puedes ver esto durante el almuerzo porque nada estará bien en la mesa. Los clientes que son demasiado exigentes estarán en su teléfono mucho más de lo que deberían. Los clientes que no responden claramente no están interesados ​​en sus servicios o en mejorar esa área de su negocio. Estos clientes deben ser abandonados ceremoniosamente. No lo hagas infantilmente, simplemente sé directo. Honre todos los contratos existentes y simplemente niegue cualquier contrato futuro. Indique su razón sin rodeos, "No tengo los recursos para satisfacer sus necesidades continuas".
  7. Si este es un problema recurrente del cliente (que no responde, falta de pago, etc.) que no se puede evitar, establezca una relación con una agencia de cobranza cercana (están en todas partes). Abre una cuenta, haz un amigo. Tener un tercero capaz de apoyarse en deadbeats es un recurso muy útil.
  8. Si vas a dedicarte a una profesión, sé profesional. No hay niños enfermos o problemas personales en el mundo de los negocios. Esa es una declaración fría, pero es un hecho. No trabajamos para los ositos de goma y las barras de caramelo, trabajamos por dinero.

Lo último que puedo recomendar para el futuro es ser honesto contigo mismo. Si no puede cumplir los requisitos de un cliente de manera profesional, no intente hacerlo. Cuando llamo a un plomero para que venga a arreglar mi fregadero con goteras, no quiero escuchar sobre sus hijos enfermos o cómo él no sabía que arreglarlo iba a tomar 7 horas. Lo quiero arreglado. Pagaré por el tiempo extra si él me puede mostrar que era necesario y no solo él metiéndose en mis tuberías. Sus clientes tienen expectativas. Si promete el 1 de mayo, hágalo el 1 de mayo. Si algo del cliente se interpone, hágalo por escrito que la fecha se retrasará debido a la solicitud del cliente. Consíguelo por escrito. Si es algo de tu parte, arréglalo. Si sabe que va a causar un problema y la fecha límite simplemente no se cumplirá, Se honesto y admítelo. Entonces prepárate para ofrecer un descuento de algún tipo.

Joel Etherton
fuente
Creo que esto es bastante duro. Aunque estoy de acuerdo con usted en teoría, nunca es tan claro como esto, especialmente cuando usted es el único desarrollador / gerente de proyecto / tester / gerente de cuenta en el proyecto y cuando las cosas suceden habrá un efecto directo. a pesar de las duras palabras, creo que es lo que necesito leer / escuchar. +1
usuario17971
@ user17971 - Es bastante duro. Pero 2 cosas que leí en su pregunta indicaron que podría ser necesario. El cliente estaba colgándote y parecías estar dando excusas. He estado allí. Perdí clientes por razones similares, y fue un contratista experimentado que me curó con una franqueza similar. He heredado una tonelada de situaciones horribles de desarrolladores anteriores (tanto de forma independiente como mientras trabajaba para empresas), y estos conceptos me han dado el poder para recargarlos a todos.
Joel Etherton
2

He estado exactamente en la misma situación. Tenía un cliente que quería mucho más de lo que podía proporcionar y estaba cambiando las expectativas cada semana. Al principio fue un trabajo simple, pero se agregaron muchas cosas ... Perdí mucho sueño y afectó mucho otros aspectos de mi vida.

Lo mejor que puede hacer es apagarlo y seguir adelante. Los proyectos fallidos solo ocurren a veces y es mejor para ambas partes reconocer los signos y detectarlos temprano. Una vez que comienza a entrar en su vida personal, ha ido demasiado lejos.

Aprende de ello e intenta no repetir. Serás mucho más feliz.

WalterJ89
fuente
¿Cuál sería la mejor manera para que el OP "simplemente lo apague" para que puedan "seguir adelante" con esta situación?
Chris
1
"Dejé" tal vez? ¿O "Dejar el estrés"? En mi situación, elegí "Renuncié" porque ese cliente era terrible (y muy barato).
WalterJ89
1

Pregúntele al cliente qué quiere. Si cae dentro del presente contrato, haga eso, de lo contrario renegocie el contrato. De cualquier manera, asegúrese de tener una comprensión clara de lo que el cliente realmente quiere en un documento en el que firman para que luego no puedan decir que se perdió algo que quería.

Stephen Paulger
fuente
1

El factor clave aquí, según lo veo, es que los requisitos no fueron acordados.

No sé cómo estabas facturando. Si se trata de un contrato de precio fijo, con requisitos flexibles, es posible que no tenga ningún recurso. Nunca entre en un contrato donde le pagan X cantidad sin un sólido acuerdo por escrito sobre lo que debe suministrar. Si tiene que hacer algo como esto, divida el proyecto en fases, y no realice la fase N + 1 hasta que se apruebe la fase N (si no se paga realmente). Siempre especifique las responsabilidades del cliente y las suyas.

En este caso, su predecesor aparentemente aceptó requisitos adicionales sin una renegociación del contrato. Eso es malo. Si un proyecto cumple con los requisitos acordados, las adiciones a eso deben negociarse como parte de los cambios al contrato. No necesariamente tiene que cobrar más, pero obviamente en este caso la fecha límite debe restablecerse.

Puede tener requisitos flexibles, siempre que no tenga un precio fijo o una fecha de finalización.

Sus problemas de estimación son típicos en la industria, pero trate de aprender de ellos. Problemas inesperados aparecerán con bastante frecuencia, así que nunca le des a nadie cifras sobre la mejor estimación posible.

David Thornley
fuente
Intenté hacer que aceptaran un contrato cuando me hice cargo del proyecto, pero se negaron a aceptarlo porque ya habían creado esta lista. Semanas después encontré esta lista en una hoja de Excel. Requisitos muy muy vagos / no especificados. Lamento todos los días que no hice frente a muchas de mis convicciones y formas de hacer la gestión de proyectos a este cliente en particular.
user17971
1

Necesita un mejor proceso , las metodologías ágiles, SCRUM en particular, ofrecen una mayor transparencia, interacción forzada con el cliente al hacer que el cliente sea un interesado y un miembro del equipo, así como los evaluadores como miembros del equipo, todos se hacen responsables de las entregas, no solo el desarrollador.

Permite ciclos de entrega más cortos, de esa manera cuando va a faltar y la fecha límite es solo Sprint de 1 o 2 semanas y tanto usted como el cliente saben que lo van a perder mucho antes del final del Sprint.

Si va a fallar, ya que solo planea un Sprint de 1 a 2 semanas, falla rápidamente, pequeño en lugar de tarde y grande.

SCRUM también hace que la aceptación final de la entrega sea responsabilidad del Propietario del producto (cliente), lo que significa que si siguen cambiando los requisitos y qué no, es transparente para todos los que están causando los retrasos y están muy bien documentados.

Se completan y prueban y aceptan más cosas al 100% antes de trabajar en nuevas características. Imagina que tienes una lista de 100 características. ¿Con qué estaría más feliz el cliente?

¿El 80% de las características más importantes está 100% completo, probado y aceptado como libre de errores?

o

100% de todas las características 80% completo, no probado y con errores?

Procesos como SCRUM obligan al cliente (Propietario del producto) a priorizar las funciones para usted, por lo que solo entrega lo que está pidiendo para el Sprint actual. El trabajo más importante para el Propietario del producto se realiza primero, otras cosas que son menos importantes tal vez nunca se realicen, pero a decisión del cliente, eso no es valioso.


fuente
Soy el único recurso en este proyecto. Hacer SCRUM es difícil con eso en mente. Utilizo algunos métodos ágiles, tratando de hacer que el cliente acepte alguna responsabilidad, pero es un desafío ...
user17971
1
ser el único desarrollador en el proyecto hace que el proceso sea aún más importante y le da una posición para negociar
1
si. Estoy muy orientado a los procesos, pero por alguna razón este proyecto solo está decidiendo tener vida propia. Gracias por tus ideas, me estás diciendo exactamente lo que necesito escuchar.
user17971
1

Aprender de ello. El mejor consejo que obtuve sobre dar estimaciones de tiempo fue: calcular lo que crees que tomará, luego duplicarlo y agregar un 10%. :)

Felicitaciones, ha aprendido una valiosa lección sobre gestión de proyectos de software. Trate de evitar estar tan obsesionado por satisfacer a su cliente que termine haciéndolo aún más molesto.

Esto no es exclusivo de la industria del software. ¿Qué esperarías si fueras a un restaurante y el servidor tardara una hora en traer tu comida? Y cuando lo conseguiste, ¿no era lo que esperabas? Querrías un descuento o una disculpa, ¿verdad?

Ofrezca lo que pueda al cliente y simplemente continúe. A veces esa es la única opción que tienes.

Editar: Buscaría en Scrum o alguna otra metodología ágil en estos días para reducir la insatisfacción del cliente.

davidhaskins
fuente
0

Llámalo una experiencia de aprendizaje. La próxima vez, cuando el usuario intente cambiar los requisitos sobre usted, renegocie la línea de tiempo y póngala por escrito.

Puede enviar una factura si se siente justificado. Suena como si no lo hicieras.

Edward extraño
fuente
En realidad no pagan nada por el proyecto. Pagan una tarifa de licencia mensual por la aplicación que a su vez ni siquiera paga mis salarios.
user17971