Mantenimento del supporto tecnico sull'ultima versione del software

4

Sono l'unico sviluppatore di software a mantenere un sottoinsieme di prodotti in una piccola azienda. Il prodotto principale di cui mi occupo qui è un'app Web che viene installata sui vari computer dei clienti, con un database e processi in background.

Apporto le modifiche necessarie per questo programma. Non è il prodotto di punta dell'azienda, non è il mio progetto principale, ma ha bisogno di manutenzione. Ho 2 tecnici di supporto e mezzo che rispondono alle domande dei clienti. Quando non sanno come aggiustare le cose, sono il loro supporto.

Poiché eseguo alcuni interventi di manutenzione qua e là, rilascio aggiornamenti in modo irregolare. Tuttavia, l'idea è che sto aggiustando il software e, su richiesta di un cliente, i tecnici di supporto possono aggiornare il software in questione per risolvere un problema o come misura (non c'è una funzione di aggiornamento integrata). I tecnici di supporto conservano anche una copia sulla loro macchina, o meglio, varie copie delle versioni precedenti. Questo è dove diventa brutto.

Ricevo, in modo irregolare, segnalazioni di bug per cose che potrei aver già risolto su versioni precedenti. Quando trovano un bug, i tecnici di supporto passano molto tempo andando indietro nelle versioni, cercando di ottenere una versione in cui il bug non è presente. A questo punto, o me lo gettano in faccia ("Perché l'hai rotto?") O installa versioni precedenti sui client. Che può ovviamente rompere altre cose .

Per risolvere questo ho:

  • li ha supplicati
  • ha pregato il proprio supervisore
  • ha chiesto il CEO
  • si è rifiutato di lavorare su versioni precedenti fino a quando non sono state installate nuove versioni, anche se dimostrano che il bug è ancora presente
  • minacciato di rimuovere del tutto il supporto (che è discutibile, dato che è ancora il mio lavoro)

Nessun dado.

L'ultima opzione che vedo è impostare qualcosa con SVN in cui possono solo ottenere l'ultima versione e non annullare (se è fattibile) ... E spero che non imparino a fare copie.

C'è qualche altro approccio, umano, organizzativo, tecnico o di altro tipo che possa aiutarmi e mantenere questi ragazzi nell'ultima versione?

    
posta MPelletier 13.02.2013 - 04:36
fonte

2 risposte

9

In primo luogo, dovresti provare a vederlo dal loro punto di vista: se c'è un bug serio, ei tecnici di supporto possono risolvere questo problema tornando a una versione precedente in 1 o 2 ore, il cliente ha una soluzione per il suo vero problema Il debugging e la correzione della vera causa del bug possono richiedere 1-2 giorni (quando hai abbastanza tempo), ma possono anche essere necessarie 1 o 2 settimane (forse hai altri compiti più importanti, forse sei in ferie, ecc.) aspettate che il cliente o i tecnici aspettino così tanto?

Quindi, cosa puoi fare per migliorare la situazione? Ecco alcuni suggerimenti:

  • scrivi un changelog dettagliato, ma non quello che scrivi nel tuo log SVN, ma dal punto di vista degli utenti , quale comportamento visibile hai cambia da versione a versione, quali bug hai risolto. Rendi questo changelog facilmente disponibile per i tuoi tecnici e i tuoi clienti. Quindi, quando i tecnici installano una versione precedente, loro e il cliente devono sapere esattamente quali bug più vecchi introdurranno, quali funzionalità non funzioneranno più e così via. Ciò fornisce loro una base migliore per decidere se andare a una versione precedente vale davvero la pena.

  • Evita di produrre versioni più recenti contenenti bug che non erano presenti nelle versioni precedenti. Sul serio! So che a volte questo sembra impossibile, ma se questa situazione si presenta regolarmente, il tuo QA deve essere migliorato . Forse i tuoi tecnici dovrebbero svolgere alcuni compiti di controllo qualità, quindi quando ti chiedono "perché hai rotto questo" puoi rispondere "non l'hai verificato con attenzione?". Inoltre, i test di regressione automatizzati possono essere di grande aiuto, almeno possono salvarti dall'introdurre lo stesso bug di nuovo dopo averlo risolto una volta.

  • Se la tua applicazione dipende da una determinata versione del database, assicurati che controlli quel numero di versione da qualche parte e si rifiuti di lavorare se il database non si adatta all'applicazione. Lo stesso consiglio per i componenti di terze parti da cui dipende la tua applicazione e per i quali la tua app si aspetta che venga installata una versione specifica. Ciò assicura che i tecnici non possano mescolare componenti che non si adattano tra loro. L'opzione IMHO migliore, tuttavia, è rendere la tua applicazione compatibile verso l'alto in una certa misura, quindi una versione precedente dell'applicazione viene eseguita senza difetti rispetto a una versione più recente del database (potresti distinguere tra minore e versioni principali). Ad esempio, quando è necessario modificare lo schema del database, aggiungere solo colonne facoltative (nullable) (almeno, tra rilasci minori). In questo modo, l'installazione di una versione precedente della tua applicazione (si spera) non causerà alcun problema tecnico, tranne quelli descritti nel tuo log delle modifiche.

Quindi, invece di lamentarsi dell'installazione di versioni precedenti, rendere questo lavoro in una certa misura, entro limiti chiaramente definiti. Ciò non significa che devi mantenere le versioni precedenti - se si verifica un errore, lascia che i tecnici installino una versione precedente come soluzione alternativa se pensano che risolverà la situazione. Nel frattempo, correggi il bug nella versione più recente (e solo lì) e assicurati che (dopo una fase di test) i tecnici non dimentichino di consegnare quella versione al cliente.

    
risposta data 13.02.2013 - 08:01
fonte
0

Se gli aggiornamenti sono pagati o se le versioni più recenti interrompono la vecchia funzionalità, non c'è nulla che tu possa fare. I clienti avranno versioni precedenti e quindi i tecnici dell'assistenza, quindi quei tecnici continueranno a cercare una versione precedente in cui alcuni bug non sono presenti e li spingeranno sulle macchine dei clienti.

Altrimenti, lavora sul processo di aggiornamento automatico:

  • Gli aggiornamenti dovrebbero essere inviati automaticamente ai clienti e ai tecnici non appena vengono rilasciati, quindi tutti useranno l'ultima versione in ogni momento,

  • I tecnici non dovrebbero essere in grado di installare la versione precedente né sui clienti, né sulle proprie macchine,

  • Il contratto utente deve specificare esplicitamente che il supporto tecnico è fornito solo per la versione più recente,

  • Ogni volta che il cliente contatta il supporto, la prima cosa che il personale di assistenza deve fare è verificare che il cliente abbia la versione più recente.

Si noti che il punto di accordo dell'utente è importante: anche se tecnicamente, si fa tutto il possibile per spingere l'ultima versione e anche se è gratuito, ci sarebbero ancora alcuni clienti che si troveranno con uno più vecchio, sia perché sono non connesso a Internet o perché hanno bloccato gli aggiornamenti automatici. Il personale di supporto dovrebbe capirlo e tenerne conto e convincere / aiutare i clienti a ottenere il software più recente.

    
risposta data 13.02.2013 - 05:59
fonte

Leggi altre domande sui tag