Cosa fare quando un cliente ha aspettative non realistiche? [chiuso]


23

Ho lavorato a un progetto negli ultimi sei mesi presso un sito client, dal momento che richiedono la riservatezza dei dati e non volevano che lavorassimo nel nostro ufficio.

Quando mi sono presentato da solo su questo sito client, mi è stato detto che dovevo finire il progetto in due mesi.

Dal momento che il client non è una società di software e, a causa di varie politiche, ci sono voluti circa 20-25 giorni solo per darmi i diritti sulla mia macchina per installare cose come Eclipse, Tomcat, ecc. Anche dopo il ritardo nella configurazione dell'ambiente, si aspettavano ancora che completassi il progetto nello stesso periodo di due mesi.

Non mi hanno fornito alcun documento sui requisiti, ma dal momento che sto lavorando sul sito del cliente, ci siamo incontrati regolarmente per discutere i requisiti.

Dopo sei mesi l'applicazione non è ancora terminata e tutti mi stanno incolpando, ma non riescono a rendersi conto che abbiamo aggiunto molte più funzionalità rispetto a quelle discusse nei primi incontri.

Ho dovuto rifare molte cose durante questo periodo, ad esempio separare un modulo in due sezioni; poche settimane dopo, mi hanno chiesto di unire nuovamente le due forme perché è confusa, e così via.

L'ambito dell'applicazione aumenta ogni giorno ma pensano ancora che sia un progetto di due mesi che è stato ritardato. Quando ho detto loro che l'ambito di applicazione è aumentato, mi chiedono perché all'inizio non ho richiesto requisiti.

Lavoro già 11-12 ore ogni giorno e viaggio 3-4 ore, e ora si aspettano che vada anche il sabato.

Devo fare tutto qui: prendere requisiti, design, codice e test.

Per favore, mi consigli cosa fare in questo caso?

Dettagli aggiuntivi: avevamo un elenco di risultati finali, ma poi hanno aggiunto alcune altre cose dicendo che anche questi sono importanti. Hanno anche cambiato alcuni risultati. Non hanno nemmeno il loro server UAT, testano sulla mia stessa macchina di sviluppo tramite il suo indirizzo IP.


11
In realtà lo farai più velocemente se lavori solo 8 ore al giorno e senza fine settimana. L'esaurimento sta indebolendo la tua produttività. alternet.org/visions/154518/...
HLGEM

10
Sembra che tu sia il capro espiatorio di qualcun altro

Potresti aggiungere una modifica che spiega come è stata risolta questa situazione? Può aiutare i futuri lettori se si trovano in una situazione simile.
Radu Murzea,

Dove hai trovato il tuo nuovo lavoro?
Mawg,

Risposte:


65

Questo è un fallimento del tuo manager . In quanto appaltatore, la vostra azienda non avrebbe dovuto trovarsi in una situazione con un termine così stretto senza una serie di requisiti precisi per iscritto. Niente di tutto ciò "hanno aggiunto funzionalità" in seguito senza senso - ogni volta che è successo, avrebbero dovuto firmare su un programma aggiornato che hai dato loro .

Il tuo manager, poiché sta pianificando di incontrarlo, deve ottenere dal cliente una serie specifica di requisiti: il progetto dovrebbe fare A, B, C, D ed E. E dopo, è completo. La firma del cliente deve trovarsi su quel documento accettando tale elenco. Avresti dovuto averlo dall'inizio.

Se il tuo manager non ti supporta e non ti supporta in questo - e non lo dico molto spesso - inizia a cercare un altro lavoro. Perché probabilmente finirai per essere il capro espiatorio di tutto il casino. E se sei disposto a lavorare per 11 ore al giorno e 3 ore di viaggio, è evidente che sei un individuo molto dedicato che merita di meglio.


Quando ne ho parlato con il mio manager, mi ha supportato. Ma tutto dipende da cosa succede nell'incontro ora :(
ashishjmeshram il

1
Nella mia esperienza, i programmatori sono molto veloci a incolpare la gestione di tutto ciò che va storto ... La prima parte in grassetto mi ha quasi scoraggiato leggendo questa risposta altrimenti molto buona. Se il manager non era a conoscenza del problema, è difficile biasimarlo completamente (anche se un buon manager "sa" cosa sta succedendo, qualunque cosa gli venga detto). Spetta a uno sviluppatore portare problemi come questo all'attenzione dei gestori prima piuttosto che dopo.
mattnz,

1
Penso che in questo caso sia stato messo in una situazione senza che fossero stati concordati i requisiti necessari con un livello di dettaglio sufficiente, o almeno, senza una chiara indicazione di quale autorità avesse a che fare con le modifiche del cliente all'ambito del progetto . Entrambi sono problemi di gestione. In quest'ultimo caso, se l'intenzione fosse quella di gestire il cliente, avrebbe dovuto essere chiaro a lui che era il caso e fino a che punto avrebbe potuto adattare le loro quotazioni e le date di consegna per il cliente.
GrandmasterB,

1
@GrandmasterB. Quasi una settimana dopo l'incontro, è stato detto molto sul fare le cose in modo più organizzato, ma nulla è cambiato. Ho cercato di elencare tutto ciò di cui abbiamo discusso nelle riunioni sui requisiti e via e-mail ai clienti. Nessuno si è preoccupato di leggerli e invece ho ricevuto questo dai clienti "Devi aver sprecato un'ora a scrivere questa email". :(
ashishjmeshram,

1
Sono curioso di sapere come sia andata a finire. Il tuo cliente è ignorante ed egoista. Non ti ascoltano perché non devono. Devi dichiarare fermamente che non puoi più lavorare in questo modo. Quindi sei andato via? O hai comunque completato il lavoro?
Forza,

21

L'importante in tali situazioni è costruire una traccia cartacea del CYA. Nulla dovrebbe essere fatto senza averlo scritto, soprattutto in una relazione d'affari complicata. Attenersi al programma iniziale, sebbene siano necessari 20 giorni per farti lavorare, è una grande bandiera rossa che diventerà complicata.

Tieni una riunione in cui sono richieste funzionalità aggiuntive? Scrivilo dopo, tagga "+ X giorni al programma attuale" su ogni articolo e spediscilo a tutti i soggetti coinvolti. Se si utilizza solo il sistema di posta interno del cliente, stamparlo ulteriormente, incluso l'elenco dei destinatari:: cc: e bcc: e archiviarlo accuratamente. Inoltre, come ha affermato GrandmasterB, il cliente dovrebbe firmare tali modifiche ai requisiti originali.

Se il programma richiesto non può essere mantenuto, scrivilo a loro. Se si verifica un cambiamento, scrivilo a loro, comprese le conseguenze. E così via.

Questo non è per "Te l'ho detto." quando il casino alla fine colpisce il muro, comunque non lo ascolteranno. Questa è la tua assicurazione quando il cliente ti fa causa perché pensa che tu non abbia adempiuto al contratto o quando la tua società fa causa al cliente perché nega il pagamento.


16

Da quello che descrivi, sembra che tu stia partecipando a un classico progetto della Marcia della morte :

Nella gestione dei progetti , una marcia della morte è uno dei diversi tipi di progetti patologici che coinvolgono un'analogia disphemistica, di umorismo oscuro con le marce della morte reali, ad esempio essere oberati di lavoro estenuante e (spesso e soprattutto) sovraccarichi di lavoro estenuante per motivi infondati in un progetto che è ovviamente ad alto rischio di esito negativo (es. fallimento del progetto e, eventualmente, minaccia di danni alla reputazione personale e di gruppo) . Pertanto, il nome "marcia della morte" può essere applicato a un progetto che alla fine ha successo ma implica un tratto domestico di superlavoro insostenibile o (forse più spesso) a un progetto che qualsiasi membro intelligente e informato può vedere è destinato a fallire (o è ad altissimo rischio di fallimento) ma che i membri sono comunque costretti a recitare dai loro superiori comunque ...

Fenomeno è ben noto e ci sono molte pubblicazioni su come procedere, incluso ovviamente il libro fondamentale di Edward Yourdon, Death March: The Complete Software Developer's Guide to Surviving 'Mission Impossible' Project .

L'articolo di Wikipedia citato sopra costituisce un buon punto di partenza per cercare ulteriori informazioni, ricerche e raccomandazioni per coloro che sono coinvolti / interessati ai progetti della marcia della morte .


Camminando nei tuoi panni, la prima cosa che prenderei in considerazione sarebbe passare un riferimento al precedente articolo al mio manager.

In questo modo farebbe sapere loro che sono consapevole di ciò che sta succedendo, e forse anche aiutarli a guidarmi in termini di quadro fornito per questa nozione, come "Guarda, il nostro stato attuale è vicino a quello descritto nel capitolo Xsu Yourdon. Controlla fuori, insieme al capitolo strettamente correlato Yecc ... "

Nel caso (non molto probabile) che il manager non sia a conoscenza di questo campo di studio, fare riferimento potrebbe fornire loro un sacco di spunti di riflessione per aiutare a identificare la situazione e decidere come gestirla.


11

Onestamente, se è possibile farlo, la soluzione migliore è smettere. Situazioni come questa sono tossiche per te e raramente migliorano con il tempo, non importa quanto ci provi.

Meglio tagliare le perdite e trovare un concerto diverso. Ma rifletti sulla tua esperienza e prendi i consigli dalle altre risposte su questo thread.


2
Questa non è una cattiva risposta, per favore non votarla senza una spiegazione. Sì, è come tagliare il nodo gordiano, ma a giudicare dalla situazione descritta da OP (e dalla sua disperazione) questa potrebbe essere la cosa migliore che possa fare. Lavoro + viaggio 14 ore più lavoro il sabato? Sembra che la tua salute fisica e mentale sia a grave rischio.
Tamás Szelei,

1
Per esperienza, questo tipo di situazione è in effetti dovuto alla cultura aziendale e richiederà persone che attualmente non soffrono della situazione. Sarà quasi impossibile cambiare tale cultura.
deadalnix,

Perché questa non è la risposta più evoluta e accettata? quit++;
Mawg,

11

È una cosa seria issue in project management . Sembra che Project Managerdovresti lavorare sulla lista dei risultati e dare la priorità al cliente.

La maggior parte importante , il vostro PM should discusse sono d'accordo con il Cliente il lasso di tempo (compresa la progettazione e l'analisi di problema / soluzione) nelle stime.

Avere clear estimation of your work loade consegnare gli articoli del progetto ti alleggerirà dallo stress, oltre a aggiungere tranquillità e fiducia nel tuo lavoro.

Prova ad usare l' approccio Agile consegnando i tuoi articoli in volata (2-3 settimane) e facendo UAT (test di accettazione dell'utente) con il cliente. Ricorda, fai sempre la tua pianificazione dello sprint prima di iniziare lo sprint.

inserisci qui la descrizione dell'immagine

Modifica: dai commenti è chiaro che questo è davvero un fallimento del project manager . Non avere un ambiente di test e / o sviluppo adeguato impostato per un progetto serio come il tuo è un grande buco per il projectprocesso SDLC.


2
Avevamo l'elenco dei risultati. Ma poi aggiungono alcune altre cose dicendo che anche queste sono importanti. Cambiano anche alcune cose nell'elenco dei risultati finali. Non hanno nemmeno il loro server UAT, testano sulla mia stessa macchina di sviluppo tramite indirizzo IP.
ashishjmeshram,

Questi sono uomini d'affari. Non capiscono le cose del design ecc. Inizialmente ho cercato di spiegare loro questo, ma tutti hanno detto che non ci importa come lo fai ma non lo facciamo come lo vogliamo.
ashishjmeshram,

2
+1 per l'approccio Agile. Fallo e atteniti ad esso, in ogni caso.
Bruno Schäpper,

1
@Vain Felloman - "+1" significa che hai votato a favore della risposta.
mouviciel,

@mouviciel Yap. no? Per quanto posso vedere, ho fatto ..
Bruno Schäpper,

10

Pur concordando sul fatto che si tratta di un errore di gestione, è anche un errore da parte tua. A questo punto sarà molto difficile da risolvere, quindi parte di ciò di cui hai bisogno per uscirne è come gestire i progetti futuri.

Innanzitutto, è necessario insistere su un documento di base dei requisiti all'inizio del progetto. Non deve essere elegante o formale, ma non è possibile creare correttamente nulla fino a quando il client non specifica cosa è previsto. Se non lo hai per iscritto, le probabilità che il cliente sia soddisfatto del risultato finale sono approssimativamente dello 0%. Quindi questo è di fondamentale importanza. È anche tuo compito cercare le ambiguità in questo documento e chiarirle al più presto. Quando ti imbatti in uno di questi e non sei sicuro di come interpretarlo, non indovinare cosa pensi che significhi, assicurati che tu e il cliente siate nella stessa pagina su cosa significhi. Sì, questo significa più parlare con le persone, più incontri e meno programmazione. Ma ci vuole molto meno tempo per chiarire un requisito poco chiaro che per codificarlo in modo errato e quindi è necessario ricodificarlo. Inoltre, spesso devi dare loro la ricodifica gratuitamente e questo non va bene per l'azienda per cui lavori.

Successivamente, dici loro quanto tempo ci vuole per fare il lavoro e questo fissa la scadenza. Non accetti mai una scadenza basata su qualcosa di diverso dalla quantità di ore che ci vorrà per fare il lavoro per soddisfare i requisiti. Se lo fai, sarai di nuovo in una marcia della morte. Mostra loro come non è possibile rispettare la scadenza avendo una spiegazione dettagliata delle ore che ci vorranno. Non puoi adattare 200 ore di tempo di sviluppo in una settimana con un solo sviluppatore, non importa quanto lo desideri il cliente. A quel punto quando la scadenza è inamovibile, chiedi quali elementi dovrebbero essere spostati alla successiva iterazione.

Non dimenticare che il tempo di sviluppo è solo una piccola parte del tempo del progetto quando si effettuano le stime del tempo del progetto. È inoltre necessario tenere conto di riunioni e comunicazioni e-mail / telefoniche, test, implementazione, documentazione, configurazione fisica di server, workstation, software. Inoltre, nel pianificare la scadenza, puoi solo presumere che tu abbia a disposizione 6 ore al giorno e non 8. Questo è per tenere conto di ferie, lutto, tempo di malattia, ritardo inevitabile (come quando devi aspettare che ti ottengano le autorizzazioni sulla rete, ecc.), formazione, lavori non relativi al progetto (schede, riunioni delle risorse umane, ecc.). Uno dei maggiori motivi per cui le persone non rispettano le loro scadenze è che fanno il presupposto che faranno lo sviluppo e lavoreranno solo 8 ore ogni giorno. Questo semplicemente non è un presupposto realistico.

E ogni volta che aggiungono un altro pezzo, dici loro quanto tempo ci vorrà e quanto lavoro aggiuntivo sposterà la scadenza. Non chiedi di spostare la scadenza, dici loro che si sta muovendo a causa del nuovo requisito. Ora dovresti consultare il tuo manager per questo, ma è prima di tutto la tua responsabilità di assicurarti che il tuo manager sappia ogni volta che il requisito viene modificato e quanto verrà aggiunto al progetto. Assicurati che tutto ciò sia scritto, quindi puoi difenderti se necessario.

Successivamente, non permettere a te stesso di essere abusato di lavorare giorni e fine settimana di 11 ore. Questo è OK a breve (di meno di 1 settimana ogni sei mesi circa), ma a lungo termine non è semplicemente accettabile. Le persone stanche programmano più lentamente e fanno più errori. Puoi fare di più con una qualità superiore lavorando regolarmente 8 ore anziché regolarmente 11 ore. e nei fine settimana.


1
Grazie per la risposta. Ottimi punti da esaminare.
ashishjmeshram,

+1 per "Non chiedete di spostare la scadenza, dite loro che si sta muovendo a causa del nuovo requisito." Ciò sottolinea che la scadenza non è qualcosa che hai inventato, ma una proprietà intrinseca del progetto.
sleske,

1
you need to insist ona a requirements baseline document at the start of the project, Next, you tell them how long it takes to do the work and that sets the deadline., And every time they add another piece on, you tell them how much longer it will take and how much the additional work will move the deadline. Ottimi consigli ma essendo in una situazione del genere, una volta sono stato licenziato in meno di un mese per essere impossibile lavorare con a quanto pare. La situazione reale è come la definiscono gli altri, questo tipo di società vuole capri espiatori e scuse, non sviluppatori di software realistici e produttivi.
maple_shaft

4

Ho scoperto che i grafici di Gantt possono essere molto validi in questo tipo di situazioni. Possono illustrare ai clienti il ​​programma attuale e possono essere utili per illustrare l'effetto dell'aggiunta di nuove funzionalità / modifiche. A volte dire a un cliente che la funzione x effettuerà la consegna entro y giorni non si registra con loro. Avendolo chiaramente su un grafico possono capirlo meglio.

Idealmente, ciò dovrebbe essere fatto dall'inizio del progetto. Potrebbe non essere utile spiegare i " ritardi " fino a questo punto, ma potrebbe essere d'aiuto per il futuro del progetto.

Da Wiki :

I diagrammi di Gantt illustrano le date di inizio e fine degli elementi terminali e degli elementi di riepilogo di un progetto.


Se questa risposta non è stata votata, per favore fatemi sapere perché. Grazie.
Aidan,

1
+1 - I diagrammi di Gantt possono essere di vecchia scuola ma sembra che il cliente non stia facendo acquisti nel progetto, quindi qualcosa di semplice come un diagramma di Gantt può mostrare loro l'effetto dei loro requisiti extra.
Dave,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.