Come pianificare il tuo progetto software se lavori dipende dal risultato richiesto con data di consegna inaspettata

3

Ho lavorato per molti progetti software in cui sto sviluppando soluzioni software per il cliente in cui ho bisogno di integrarmi con il cliente back-end utilizzando il servizio web fornito dal cliente per recuperare informazioni, ecc ...

Il problema è che il cliente potrebbe non fornire il servizio web richiesto in tempo. Oppure potrebbe fornire servizi Web in una sequenza diversa rispetto al piano.

La mia domanda è come pianificare il progetto in modo che la mia codifica e implementazione inizieranno in base ai servizi Web richiesti? Dovrei considerare l'utilizzo agile? un modo di usarlo in quel caso?

E come affrontare il rischio di ritardare il cliente?

La soluzione può essere divisa in fasi e può essere consegnata in base alla prontezza del servizio web.

Supponiamo che io abbia bisogno di 16 servizi Web. Se il cliente ne consegna tre ora posso implementare parte del progetto e andare a vivere con esso. Dopo, se il cliente sviluppa altri due servizi Web, posso essere pronto a implementare un'altra parte del progetto. e così via Come inserirlo nella struttura del piano?

    
posta Abdurrahman Khamis 12.05.2015 - 04:40
fonte

3 risposte

2

L'importante è sviluppare una relazione aperta, trasparente e fiduciosa con il cliente. Il cliente ha bisogno di capire quali sono le tue sfide - e costi - a lavorare nel modo in cui sei costretto a lavorare. Allo stesso tempo, devi capire perché il cliente non può consegnare in modo prevedibile. Una volta che vi sarà un apprezzamento per entrambe le parti, emergeranno di solito soluzioni che soddisferanno entrambe le parti.

Ma ci vuole tempo per arrivare con il cliente. Ci sono alcune cose che potresti fare per rendere più facile avere una tale discussione:

  1. Configura una scheda Kanban che evidenzia e visualizza il lavoro svolto dal cliente e da te. Un semplice esempio è quello mostrato di seguito:

Lalavagnavisualizzailprocessoutilizzatodaentrambelepartieillavorovienesvoltoinqualsiasimomento.InumeriaccantoalleintestazionidellecolonnesonoilimitiWIP(work-in-progress)-ilnumeromassimodilavorichepossonoessereeseguitiinqualsiasimomentoeinqualsiasimomento.Seseil'unicolavoratoredellatuasquadra,adesempio,illimiteWIPperl'interasecondarigadovrebbeessereidealmenteparia1.Perora,ignoraquestinumeriemettisemplicementelaschedaconlatuaelaproceduradelclientecosìtueililclientepuòvederecosastasuccedendo.

  • Stabilire un accordo con il cliente sul numero minimo di servizi Web che dovrebbero essere sempre disponibili nella coda di input. Quindi, ad esempio, l'ultima colonna nella prima riga (Customer - Done) deve avere almeno 2 o 3 servizi Web ( minimum limite WIP), quindi quando finisci di lavorare su uno, hai un la seconda sempre disponibile per iniziare. Quindi, inizialmente, potresti avere un po 'di ritardo aspettando che il cliente completi almeno 203 servizi web, ma da quel momento in poi dovresti sempre avere del lavoro da fare.

  • Il sequenziamento generale dei servizi Web dipende dal tuo progetto generale e quando ti servono i servizi in generale. Questo deve essere fatto inizialmente, con un certo margine di discrezionalità per le variazioni nella consegna effettiva che sei venuto a sperimentare.

  • In base a tale progetto, è possibile identificare inizialmente l'insieme di servizi Web necessari per distribuire ogni 'funzione' o 'MVP' (prodotto minimo vitale) che è possibile dimostrare di funzionare.

    Il vantaggio dell'utilizzo della scheda Kanban è che puoi usarlo per mostrare al cliente il problema che stai affrontando in modo molto più efficace di quanto non lo descrivi semplicemente: un'immagine vale più di 1000 parole - e probabilmente 100 di 1000 di dollari! Per costruire la scheda, puoi utilizzare una scheda fisica con stickies o una scheda Kanban elettronica, in particolare se il cliente si trova in una posizione remota.

    Spero che questo aiuti.

        
    risposta data 12.05.2015 - 20:16
    fonte
    2

    Bene ... questo succede sempre, e andare agile non risolverà il problema, piuttosto potresti definire le definizioni / i contratti del servizio web finalizzati. A questo punto potresti effettivamente iniziare a costruire il tuo sistema con il mocking del servizio web del client usando alcuni strumenti come SOAPUI.

    Una volta che il servizio clienti è attivo e funzionante, è possibile testarlo. Ovviamente questa non è la soluzione ideale ma, se non si hanno altre cose che possono essere fatte durante questo periodo, questo potrebbe effettivamente risparmiare un po 'di tempo.

        
    risposta data 12.05.2015 - 07:05
    fonte
    0

    ...how to plan the project so that my coding and implementation will start according to the delivered required web services?

    Sembra che tu stia già pianificando una simile pianificazione, ma che a volte il cliente torni in ritardo o fuori sequenza.

    Should I consider using agile?

    Sì, dovresti considerare "usando agile". Che tu abbia scelto o meno di adottare pratiche agili, o uno Scrum in particolare, dovrebbe dipendere dall'attenta considerazione delle tue circostanze ... e non solo dal problema che hai descritto qui.

    ...how to use it in that case?

    and

    ...how to deal with the risk of the delaying from customer?

    Qui, sarebbe più facile rispondere per il caso di un metodo particolare, come Scrum, piuttosto che principi agili in generale.

    Con Scrum, l'obiettivo è quello di fornire incrementi di alta qualità di una soluzione consegnabile. Scrum dà priorità alla qualità del deliverable, piuttosto che alla sua tempestività. Con Scrum, in sostanza, è accettato il rischio e la conseguenza dei ritardi. Il cliente e il team che fornisce il componente da cui si dipende, dopo tutto, dovrebbero far parte del team di Scrum.

        
    risposta data 09.07.2015 - 03:42
    fonte

    Leggi altre domande sui tag